『アストロボット』は「The Game Awards 2024」をはじめ、数々の賞を受賞
登壇したソニー・インタラクティブエンタテインメント Team ASOBIのプリンシパル ゲームプレイ プログラミング リード 山田真之氏
2024年9月にリリースされた3Dアクション『アストロボット』には、さまざまなギミックやアニメーション、サウンド、ハプティクスなどのインタラクションが用意され、高い評価を得ています。
本講演では、本作の開発中に使用されたプロトタイピング手法を紹介。ゲームの核となる部分を見つけ出すプロトタイピングのフローと、そこから製品版へと磨き上げられていくプロセスを解説します。プロトタイピングは単に効率的であるだけでなく、ゲームデザイナーやアーティストと協力するチームビルディングにも繋がっています。
Team ASOBIは当初40名未満だったが、65名のチームへと成長した
プロトタイピングは2週間のサイクルで
プロトタイピングはゲーム開発初期の最も重要なフェーズで、多くの時間を費やしたとのこと。試行錯誤しながらゲームプレイの核となる部分を見つけます。
プログラマーはこの段階でパワーアップアイテム、敵キャラクター、あるいは全く新しいゲームメカニクスといった、ゲームの基本的な構成要素となるプロトタイプを数多く作成します。
プロトタイピングは、ゲーム開発全体をスムーズにし、データ制作のプロセスにも大きな影響を与える
プロトタイピングは2週間のサイクルで行います。
月曜日に次の2週間で何を達成するか話し合い、次の日から開発を行います。
プロトタイピングのワークフロー
- プログラマーが簡単な形状のモデルと簡素なアニメーションで実装
- ゲームデザイナーがそのプロトタイプのゲームプレイを改善
- アーティストがアセットやレベルを修正
2週間のサイクルの最終日となる金曜日はチーム全体が集まってレビューを行います。このレビューでは、プログラマーが作成したプロトタイプ、デザイナーがそれらを組み合わせたユースケース、アーティストが作成した初期のアセットなどが共有され、参加者全員が率直なフィードバックを行います。
このような定期的なフィードバックループ は、早期に問題点を発見し、方向性を修正できるため、開発の効率と品質の向上に役立ちました。
プログラマーがモデルからサウンドエフェクトまで何でも作るプロトタイプの作成段階
プロトタイピングはチーム全体のブレインストーミングセッションから始まります。さまざまな分野のメンバーが参加し、付箋を使ってアイデアを共有します。
これらのアイデアに基づいて、デザイナーが仕様を作成します。この仕様は詳細なものではなく、ざっくりとしたスケッチや紙の図で作成します。
コーディングに入る前に、ゲームプレイを実装するための時間を確保します。
実装を始め、必要なアセット、予期せぬ事態が起きた場合のバッファの時間も洗い出して確保しておきます。
月曜日の時点でタスクが多すぎる場合は、優先順位を調整し、優先度の低いタスクを削除。目標はあくまで各アイデアの核を2週間のサイクルで実現することだ
初期プロトタイプでは、アイデアの本質的な面白さを迅速に検証するための、必要最小限の機能と視覚表現を備えていることが重要だと山田氏。洗練されたグラフィックや複雑なアニメーションは必要ありません。
この段階では、プログラマー自身が、モデル・アニメーション・基本的なサウンドエフェクトといったアセットを仮で作成することが多かったとのこと。これはプログラマーが自らアセットを作成することで、ゲームプレイのアイデアを迅速に具体化し、テストするのに有効です。
アセット制作にかける時間は1~2日。ゲーム体験の重要な要素はプログラマー自身が直接行ったほうが迅速に行える
アニメーションもサウンドもまとめて紐づける「ゲームオブジェクト」
プログラマーによって作成されたアセットは、ゲームオブジェクトとして登録されます。本作のチームでは、ゲームオブジェクトはアニメーション、サウンド、ハプティクスなどのリソースを統合するハブとしての機能を持ちました。
ゲームオブジェクトには2つのレイヤーがあります。
1つは、モデルやアニメーション、サウンドなどのリソースを管理するGameObjectです。もう1つは、ロジックやレベルのデータを持つLevelObjectです。
これらは個別に更新可能で、相互に作用します。
制作はGameObject、LevelObjectの順で行っている
プロトタイプのプログラミングには「ホットリロード」と「パラメーター調整」の機能が重要
コードは、社内エンジンの「ASOBI」上でC++で記述しています。
スプリントはわずか2週間であるため、限られた時間内でイテレーションを速く回すことが、コードを書く上で非常に重要です。これを実現するためには、ビデオゲームプレイの微調整に不可欠なパラメーターの調整と、ゲームを再起動することなくロジックを更新できるホットリロードの機能が重要となります。
レベルのカスタマイズ段階でゲームデザイナーが可能性を模索できるよう、プロトタイプのさまざまなパラメーターはレベルエディター内で参照できるようになっている
パラメーター調整
満足のいくインタラクションを作成するには、多数のパラメーターを微調整する必要がありますが、調整のための工程が多すぎると、面倒になって、そのプロセスをスキップしてしまう可能性があります。
これを防ぐために、本作ではパラメーターを使用した議論を可能な限り簡単にするシステムを設計。これにより、ハードコーディングが必要なパラメーターがなくなり、保守性が向上した他、さまざまな動作を簡単に切り替えることができます。
例えば「敵の移動速度を微調整したい」「ジャンプの高さを少しだけ高くしたい」といった細かな要望にもその場ですぐに対応できます。試行錯誤のサイクルを劇的に短縮することで、最適なゲームバランスやプレイ体験を効率的に見つけ出すことが可能になりました。
右側にあるのはその変数の定義。パラメーターの追加やデータの書き込みが簡単にできる。一度定義すると、再利用も可能
『アストロボット』では核となるパラメーターが5万以上存在する。これらはデバッグメニューに階層化して表示できる。パラメーターの値はファイルから読み書きしており、ゲームプレイ中でも調整可能
ホットリロード
「ホットリロード」 は、ゲームを再起動することなくプログラムコードの変更をリアルタイムでゲームに反映する技術です。プログラマーはちょっとしたバグの修正や新しい機能の追加、あるいはゲームロジックの実験的な変更などを、ゲームを中断することなく、シームレスに行うことができます。これは、開発の生産性を大きく向上させました。
例えば、「特定のアイテムを取得した際に、新しいエフェクトを表示する処理を追加したい」といった場合でも、コードを記述し、保存するだけで、ゲームを停止させることなくその変更が即座に反映され、動作を確認できます。これにより開発の中断時間を大幅に削減し、開発の勢いを維持することができました。
このホットリロードの機能は、単に開発効率を向上させるだけでなく、チーム内でのアイデアの共有や議論を活性化させる効果もありました。例えば、「この新しいメカニクスを試してみませんか?」という提案があった場合でも、すぐにコードを記述し、その場でゲームに実装して見せることができるため、言葉だけでは伝わりにくいアイデアを具体的に共有し、建設的な議論を促進できました。
左のコードから右のコードへゲームを再起動することなく変更できた
プログラマーによるレベル作成はMayaベースの内製ツールで
アイデアの検証が終わると、プログラマーはサンプルレベルを作成します。使用したのはMayaベースの内製レベルエディターです。ゲームオブジェクトの配置とグループ化、カメラの調整などを行います。
特定のクラスの値はリアルタイムでLevel Editorに同期されます。位置はリアルタイムで調整でき、変更は即座にゲームに適用されます。
ジャンプボードを使ったレベル作成の例。適切なジャンプの高さを見つけようと試行錯誤していて、追加したオブジェクトはリアルタイムでゲームに反映されている
レビューに向けて、プログラマーはプレイできるレベルを用意します。プログラマーがレベルを設計・テストすることで、オブジェクトのインタラクションの不具合や、追加すべきパラメーターの不足といった問題点を発見できます。
また、サンプルレベルはゲームデザイナーにとって貴重なフォーマットとなります。説明を聞くだけでなく、レベルを見ることでギミックの使い方の理解が早まります。
スプリント最終日のレビューは全員で行うことでチームワークを強化
スプリント最終日のレビューでは、チーム全員の前で各プロトタイプが披露され、チームメンバーからフィードバックを受けます。
チーム全員がレビューに参加することは非常に重要であり 、より面白いものを作ろうというモチベーションにもつながります。また、大きなチームの中でそれぞれの担当箇所が全体の中でどんな役割を果たしているかを把握するのにも役立ちます。
ゲームデザイナーのプロトタイピングプロセス
ブレインストーミングや仕様書作成を経て、ゲームデザイナーはプログラマーとは異なる方法でプロトタイピングを進めます。
ゲームデザイナーはプログラマーが作成したプロトタイプを組み合わせてユースケースを作成し、新しいゲームプレイの可能性を探求します。
これらのユースケースは小規模ですが、デザイナーはプロセス全体を通じて幅広いアイデアを探求します。レベル作成は良いユースケースを作成した後に行います。
銃で撃つスイッチと隠しドアの組み合わせなどのユースケースが試された。このユースケースでは、パワーアップして地下エリアに入り、サウンドを発見するユースケースとなった
ゲームデザイナーの作業でも、プログラマーセクションで触れたカスタマイズ性が重要になるとのこと。
例えば、ジャンプ台のようなオブジェクトは、ジャンプタイプだけでなく、着地地点、アニメーション、弾み具合などをカスタマイズできます。
破壊可能なオブジェクトでは、壊れた後のモデルや、どのような攻撃で壊れるかなどを定義できます。さらに、破壊時にイベントを発生させることも可能です。
パラメーターの調整画面。左がジャンプ台、右が破壊可能なオブジェクト
本作の開発環境では、スクリプトは使用せず、シンプルな設定を通じてオブジェクト間の接続を作成できるシステムを利用しています。その一つがオブジェクトのリンクシステムで、これによりオブジェクト同士をインタラクトさせることができます。
このシステムを拡張することで、コードを書くことなく、より複雑な設定も可能になります。
スイッチと破壊可能なオブジェクトをリンクさせた例。スイッチを押すことで破壊可能なオブジェクトが壊れるイベントを起こせる
このパラメーターは他のオブジェクトから参照することができます。また、複数のオブジェクトを割り当てることが可能なため、この機能と変数を使って、「エリア内の全てのオブジェクトのトリガーがオンになったら実行する」といった条件設定が容易になります。
ほとんどのレベルオブジェクトをトリガーとして機能させることで、システムは非常に柔軟になります。特定の条件に基づいてトリガーされる高度な挙動は、割り当てられたオブジェクトがアクティベートされたときのロジックを作成することで設定できます。
リンクシステムと組み合わせてイベントを作成
リンクシステムは単にオブジェクトのトリガーイベントを発生させるだけでなく、さまざまなトリガーオブジェクトやインタラクティブオブジェクトを接続できます。
例えば、特定エリアに入ったときにアクティベートされるトリガーから始まり、遅れて発生するトリガー、オブジェクトを破壊するトリガーとトリガーを連ねることで、オブジェクトを移動させたり、特定の座標にジャンプさせたりといった一連のイベントチェーンを作成できます。ゲームデザイナーはコードを書くことなくさまざまなイベントを作成できます。
このトリガーチェーンを実行すると、特定エリアに入った1秒後にオブジェクトが壊れて中から敵が出現する
イベントチェーンを利用してアニメーションの統合も簡単に
イベントチェーンは「レベルアニメーション」にも利用しました。Mayaでキーフレームアニメーションを作成し、エクスポートすると、生成されたアニメーションファイルがリアルタイムでゲームに適用されるようになっているとのこと。さらに、このアニメーションは、先に紹介したトリガーシステムと連携して、再生や停止のタイミングを制御できます。アニメーションの動きや速度を調整することで、ゲームテンポを細かく調整できます。
Mayaで作成したキーフレームアニメーション(左)をエクスポートすると、ゲーム内でアニメーションが再生される(右)
Maya上でロケーターノードにアニメーションを追加してもエクスポート先で即時反映される。巻き戻しや一時停止も可能
また、トリガーや他のイベントと組み合わせることで「プレイヤーがスイッチを踏んだら足場が現れる」「ケーブルを引いたらボールが出現する」といったインタラクティブな仕掛けや、複雑なアニメーションも作成できます。
さまざまな要素を組み合わせてイベントを作り上げている
ゲームデザイナーの作成したプロトタイプには、仮のアセットや予期せぬ動作の問題が残っているため、そのまま製品版に使用できるわけではありません。そのため、一部の複雑なプロトタイプは、後のスプリントでプログラマーに引き渡して修正することがあります。
しかし、コアとなるコンセプトは早期に検証されているため、この段階での手戻りは最小限で済みます。
アーティストによるクオリティアップ
ゲームデザイナーのプロトタイプを基盤として、アーティストがゲームのビジュアルクオリティを高めます。
まず、レベルやアセットのコンセプトアートを作成し、全体的なルック&フィールを定義します。
巨大なカニをモチーフにした島タイプのステージのコンセプトアート。コンセプトアートもフィードバックを経て修正される
アセットのコンセプトアート。ブースターは通常円筒形だが、ブルドッグに変形するものも作られた
プロトタイプ段階でプログラマーやデザイナーが作成したアセットは、最終的にアーティストが作成した高品質なアートアセットに置き換えられます 。このプロセスは「アートリプレイス」と呼ばれます。
プログラマーが作成した初期のアセットは、どのようなモデル構造やバリエーション、アニメーションが必要かをアーティストが理解する上で非常に役立つとのこと。
単純なケースではアーティスト単独で置き換える。より複雑な場合はプログラマーとも協力
アートリプレイスはゲームオブジェクトのモデルを差し替えるだけ
アートリプレイスは先述のゲームオブジェクトを利用して行います。
ゲームオブジェクトは、モデルを中心としたアセットの集合体です。特徴的なのは、コードからサウンドやエフェクトを再生できるだけでなく、アニメーションを紐づけることもできる点です。これにより、アニメーションが再生される際に、関連付けられたサウンドやエフェクトを同時または間隔を置いて再生できます。
このシステムのおかげで、アーティストが新しいモデルを作成し、それをゲームオブジェクトに登録するだけで、関連付けられた全てのアセット(モデル、アニメーション、サウンド、ハプティクス、エフェクトなど)が自動的に更新されます。
右が最終版でのモデル。アーティストが別のバリエーションを作成するのも簡単
プログラマーにとっても楽なアートリプレイスの仕組み
アートリプレイスはプログラマーにとっても利益があります。
例えば、ゲームのブースターのギミックでは、「ブースト」のアニメーションがエフェクトとフィードバックのトリガーとなっていて、プレイヤーが「ブースト」すると、ブースト開始アニメーションを1回再生した後にブーストが解除されるまでブーストのループアニメーションを継続的に作成する状態に変わります。
最終的に、ブースターのモデルはバックパックからブルドッグに変わりましたが、エフェクトとサウンドがアニメーションに紐づけられているため、モデルの変更は容易でした。「ブースト」のコードが行っているのは、ブースト開始アニメーションとブーストループアニメーションの再生です。コードはほとんど変更する必要がありませんでした。
このように、プロトタイプ段階からコードを構造化することで、多くのプロトタイプコードが製品版にそのまま引き継がれました。コードはより簡潔になり、可読性とメンテナンス性が向上しています。
最終的にモデルはバックパックからブルドッグに変更された。モデルをブルドッグに変えたことで、エフェクトやフィードバックには変更を加えているが、コード上に変更はない
アーティストがインタラクティブ要素を作成できる「リアクティブオブジェクト」
アセットがゲームオブジェクトに紐付いていることにより、アーティストはデータのみで幅広いインタラクティブなシーンを作成できるようになります。
例えば「リアクティブオブジェクト」と呼ばれる汎用的なオブジェクトがあります。これは、攻撃を受ける、着地するなどのさまざまなイベントに応じて異なるアニメーションを再生できます。このリアクティブオブジェクトは、ゲーム全体で多様なインタラクティブ要素を作成するために使用されました。
キャラクターが上に乗ると、柔らかく弾むアニメーションとともに、サウンドやエフェクト、ハプティクスが発生するヒトデのようなオブジェクト
キャラクターが攻撃すると揺れて葉を散らす木のような挙動も、アニメーション、サウンド、ハプティクス、エフェクトを組み合わせることで実現
複雑なインタラクションには従来のプログラミングが必要ですが、シンプルなインタラクションであればアーティストのみで作成できます。
講演では、このほかにもプロトタイプからどのようにレベルを洗練させていくかについても語られました。
プロトタイプとコンセプトアートの比較。プロトタイプの内容をコンセプトアートに反映している
アルファ版と最終版の比較。アルファ版では、全ステージをプレイしてペース配分などの全体的な流れを確認した。アルファ版で仮置きしていた一部のオブジェクトは最終版では削除された
このレベルを洗練させる過程でゲームデザイナーがどのようなことを行っていたかについても解説。背景の車や野生動物などのMayaで作成された環境アニメーションが統合される過程が紹介されました。
アニメーションを統合する仕組みができているため、アニメーターはゲームエンジン側の知識の習得をせずにアニメーションの作成に集中できる
レベルは複数のスプリントフェーズで完成に近づける。新たなプロトタイプが途中で導入されることもある
最後に、チームワークを高めるためにプログラマーやデザイナーなどもレベルの編集作業に参加していることを述べました。ゲームプレイのレビューにも全員が参加することで、ゲームを改善するための共通のモチベーションを育んでいるとのこと。
ゲームの楽しさを追究するために、一丸となって開発を進めていた『アストロボット』のチーム。それをストレスなく実行するために、ツール制作やワークフローこそ綿密に準備している印象を受けました。個々が持つ可能性を最大限に発揮した先のクリエイティブに、今後も注目です。
『アストロボット』公式サイトRapid and Creative Gameplay Prototyping in 'ASTRO BOT' - GDC 2025
ゲームメーカーズ編集。その他、ソーシャルゲーム、ボイスドラマ等のフリーのシナリオライターとしても活動中。突き抜けた世界観のゲームが好き。
『サガ・フロンティア』のアセルス編などのゲームを心のバイブルにして生きてます。