
自分だけのアドベンチャーゲームを作ろう
もし Sierra が King's Quest や Space Quest のような初期の PC アドベンチャーを作成していなかったら、人生はどうなっていたでしょうか? 「The Secret of Monkey Island」、「Day of the Tentacle」、「Full Throttle」などの古典的な Lucasarts ゲームがなかったら、私たちはどうなるでしょうか?
私たちは文化的に疎外され、悲しいことになるでしょう。近年、このジャンルへの有名な参入は鈍化していますが、ポイント アンド クリック アドベンチャー ゲームは決して死んだわけではありません。モンキー アイランドのベテラン、ロン ギルバートとゲイリー ウィニックによって作成されたシンブルウィード パークは最近大きな注目を集めており、ティム シェイファーのダブル ファインは、開発者の古典的なゲームの多くを現代向けにリマスターすることに取り組んでいます。
独自のコミュニティを作成している大きなコミュニティもあることを知っても驚かないでしょう。そのほとんどは、昔の古典的な Sierra や Lucasarts ゲームをエミュレートする最も簡単な方法である Adventure Game Studio を利用しています。
無料の AGS ゲームがたくさんありますが、商業的に成功を収めたゲームもあります。Sylpher.com (新しいタブで開きます)の instagame パックからいくつかの無料アセットを利用して始めましょう。ただし、独自のアドベンチャー ゲームを開発するときは、独自のグラフィックを作成する必要があります。

1. ダウンロードしてインストールします
Adventure Game Studio の Web サイト(新しいタブで開きます)にアクセスし、ソフトウェアの最新バージョンをダウンロードします。この記事の執筆時点では、これは 3.4.0 パッチ 4 です。
また、Adventure Game Studio (AGS) の多くのバックエンド要件に対処する Visual C++ 2008 Service Pack 1 再頒布可能パッケージ(新しいタブで開きます)を入手する必要もあります。
まずそれをインストールしてから、AGS インストーラーを実行します。オプションが表示されたらすべてを選択したままにし、インストーラーの残りの部分で「次へ」をクリックし、プロンプトが表示されたら「インストール」をクリックします。ソフトウェアを初めて起動するには「完了」をクリックし、新しいゲームの作成を開始するには「続行」をクリックします。

2. プロジェクトをセットアップする
新しいゲーム ウィザードには、自由に実験できる多数のオプションが用意されています。
このチュートリアルでは、2 つのボタンを使用する単純な Beneath a Steel Sky スタイルのインターフェイス (LW_BASS_v2.0) を使用します。左クリックで操作し、右クリックで調査します。
これにより、複雑さが軽減されます。Lucasarts の 9 動詞テンプレートを選択した場合は、多くの記述を行う必要があります。
ゲームの名前とファイル名を入力し、「完了」をクリックしてゲームのセットアップを完了します。
[ビルド] > [実行] をクリックして、含まれているサンプル コンテンツを表示し、インターフェイスで何ができるかを感じてください。

3. 部屋を作る
ルームは、ゲーム内のアクションが行われる場所です。1 つ追加しましょう。インターフェイスの右側にある [プロジェクトの探索] ペインで、[ルーム] を展開し、[1:] を右クリックして、プリインストールされた基本ルームを削除します。
次に、「ルーム」を右クリックし、空の部屋テンプレートを使用して新しい部屋を挿入します。プラスアイコンをクリックして新しいルームを展開し、「ルームの編集」をダブルクリックします。
「変更」ボタンをクリックして、部屋のアートワークを見つけます。私たちの場合、Instagame パックの画像の 1 つを選択しましたが、インポートする前に独自の画像を作成し、PNG 形式で保存することをお勧めします。

4. 部屋のプロパティ
Adventure Game Studio にルームの扱い方を伝えましょう。まず上のドロップダウン ボックスを使用して部屋の端を表示し、これらを部屋の境界に合わせてドラッグします。
同じボックスを使用して「歩行可能エリア」を選択し、上のツールバーのツールを使用してキャラクターが通過できるエリアをマスクします。右ボタンをクリックしてドラッグすると消去できます。
次に、ドロップダウン ボックスを使用して、部屋のホットスポットを表示します。これらは、プレイヤーが潜在的に対話したり、調べたりする可能性があるもの、またはその他の点で言及する価値のあるものです。
右側のプロパティの上にあるドロップダウン ボックスでさまざまなホットスポットを選択し、歩行可能なエリアをペイントしたのと同じようにペイントします。必ずそれぞれの名前を説明と「h」で始まる名前に変更してください。たとえば、ベッドのデザイン名は hBed になります。

5. イベントコーディング
したがって、何かをするときは、それを実現する必要があります。これを示す最も簡単な方法は、ホットスポットと対話するときにキャラクターに何かを言わせることです。
ホットスポットのプロパティの上にある稲妻アイコンをクリックして [イベント] パネルを表示し、[ホットスポットを確認] の横にある省略記号ボタンをクリックします。見た目は怖そうに見えますが、実際にはそれほど怖くないコーディング パネルが表示されます。ルーチンの端はすでに配置されています。
[ルーム] タブに戻り、同じ方法でホットスポットと対話するためのイベントを追加します。
ここで、実際に主人公に何かを言わせるには、各イベントを表す中括弧の間に次の形式で行を入力します。
player.Say(“I am saying something.”);
大文字、括弧、引用符、最後にある腹立たしいセミコロンに至るまで、そこにあるものはすべて重要です。
キャラクターに複数の行を話させたい場合は、次の行に別のplayer.Say コマンドを入力するだけです。すべてが中括弧内に収まるようにしてください。

6. テストと調整
開発の重要な部分はテストです。上部のツールバーにある小さな再生ボタンを押してゲームを起動すると、いつでも冒険がどのように形成されているかを正確に確認できます。
今すぐ試してみてください – キャラクターが自分の口に入れた言葉を話し始めるのを見ることほど素晴らしいことはありません。
ただし、おそらくいくつかの点を変更する必要があるでしょう。たとえば、キャラクターがサンプル ルーム内のいくつかのオブジェクトの上を歩いていることがわかりました。そのため、歩行可能なエリアを微調整する必要がありました。
コードのいずれかが間違っている場合は、ここまで到達することさえできません。Adventure Game Studio は、何が間違っていると検出されたかについて警告を表示するため、ユーザーはそれを調べて修正する必要があります。

7. 部屋を増やす
私たちのキャラクターは本当にどこか別の場所に行く必要があります。以前に行ったように、別の部屋をセットアップしてから、元の部屋に戻り、出入り口のそばに新しいホットスポットを描画します。まず、プロパティ ウィンドウの上部で新しいエントリを選択します。これを行わなければ、何もできません。描画したものは、最初に作業していたホットスポットに追加されるだけです。
出口を作成しているので、出口がどこにあるかをメモしましょう。マウスを部屋の上に置き、そのすぐ上にある数字に注目して、この X、Y 座標を取得します。これは (通常は) キャラクターの足の裏を指します。だからそれを心に留めておいてください。
以前と同じように Interact スクリプトを少し追加し、コードを記述する前に、2 番目の部屋にジャンプして、キャラクターを表示する座標を計算します。最初の部屋のスクリプトに戻り、ドア インタラクションの中括弧の間に次のような内容を追加します。
player.Walk(168,193, eBlock);
player.ChangeRoom(2, 100, 50);
これにより、プレーヤーは特定の座標まで移動し、eBlock 引数のおかげで、プレーヤーがその点まで移動してスクリプトを続行するまで待機します。次に、プレイヤー スプライトを適切な座標の部屋 2 に送信します。これはプレイヤー キャラクターであるため、ゲームも部屋を切り替えます。

8. 友達を作る
別のキャラクターを追加しましょう。キャラクター ツリーに移動する必要があると思われるかもしれませんが、実際には、このプロセスはスプライトを追加することから始まります。スプライト ツリーを展開し、文字フォルダーに入り、空白部分を右クリックして、[ファイルから新しいスプライトをインポート] を選択します。
スプライト シートを見つけます。独自に作成している場合は、インポートしやすいように各スプライトが等距離に配置されていることを確認してください。次に、いずれかのスプライトの領域全体を右クリックしてドラッグし、黄色のボックスを作成します。
これを最初のスプライトを覆うように配置し、左クリックすると、スプライトが引き込まれます。この操作を繰り返すと、マスクは適切なサイズのままになるため、アニメーションの次のフレームをクリックするだけで済みます。

9. 見た目も良い
次に、ビューを追加します。キャラクターが歩いたり、話したり、その他のアクションを実行したりする特定のスプライトを選択します。「ビュー」を右クリックし、「新しいビュー」を選択します。
「新しいループの作成」をクリックすると、ピンク色のボックスが表示されます。この最初のビュー「ダウン」は、プレイヤーがカメラに向かって歩いているときに使用され、アニメーションの最初のスプライトはキャラクターが動いていないときに使用されます。
ピンクのボックスをダブルクリックし、インポートしたスプライトの最初のものを選択します。歩行アニメーションを実行している場合 (私たちはそうではありません。キャラクターは静的です)、同じ方法で追加のフレームを追加し、スプライトをインポートできるようになりました。
新しいループを作成するたびに、異なる方向がカバーされます。完了したら、キャラクターが話すための別のビューを設定し、適切な名前を付けて、適切な方向を向いた話すスプライトを含めます。
もうすぐ完成します。実際にキャラクターを設定できるようになります。探索ペインの「キャラクター」を右クリックし、「新しいキャラクター」を選択します。
[プロパティ] ウィンドウで、通常のビューを最初に作業したアニメーションに設定し、音声ビューを 2 番目のアニメーションに設定します。
名前、開始部屋 (新しい部屋にチャプターを配置します)、新しいキャラクターの座標など、その他の値をざっと読んで設定し、ゲームを実行して新しい追加の動作を確認します。

10. チャットする
現時点では、新しいキャラクターとの対話はそれほど多くの結果をもたらすわけではないので、簡単な会話を生成しましょう。
ダイアログセクションに移動し、右クリックして「新しいダイアログ」を選択します。左側のボタンを使用して質問を追加し、各 @-number エントリと return ステートメントの間に、先頭の「c」を除いた文字 ScriptNames を使用してダイアログに書き込みます。したがって、この例では、cGirl と cMan の間の会話を作成します。
@1
Girl: Hello!
Man: Nice to meet you.
return
@2
Girl: Goodbye!
Man: Cheers.
stop
最後のエントリで return ステートメントを「stop」に置き換えると会話が終了し、プレーヤーは探索を続けることができます。
会話をキャラクター インタラクションに割り当てるには、右側のペインで会話を適用するキャラクターをダブルクリックし、プロパティ ペインでイベントの稲妻をクリックします。
省略記号ボタンを使用して、そのキャラクターと対話するためのスクリプトを追加し、中括弧の間に次のような行を入力します。
dDialog1.Start();
最初の部分は、当然のことながら、ダイアログの内部で付けた名前に置き換えます。テストしてみましょう。新しいキャラクターと対話できるようになったことがわかるはずです。
お気づきかと思いますが、このチュートリアルではほんの表面をざっと読んだだけです。アイテム、パズル、または意味のあるスクリプトについては触れていません。
しかし、私たちができたことは、その見た目とは裏腹に、Adventure Game Studio が実際にどれほど威圧的でなく、単純であるかを示してくれることを願っています。
これで何かやりたいことがある場合、およびアクション ゲームを作成するのに十分な柔軟性を備えたエンジンなので、決意があれば、ソフトウェアに付属のヘルプ ファイルを確認するか、オンライン マニュアル (新しいタブで開きます) を参照してください。
頑張ってください。私たちはあなたが何を作成するか楽しみにしています。
- もっと複雑なゲームを作りたいですか? Python で独自のアドベンチャー ゲームをコーディングする方法ガイドをご覧ください。