Unity Adventure Creatorチュートリアル:アイテムを入手してインベントリに表示する

Unityのアドベンチャーゲーム制作アセットAdventure Creatorのチュートリアルを勉強中。今回はYouTubeで公開されているチュートリアルビデオAdventure Creator: Creating a first person game Tutorial の中から、アイテム入手の方法を勉強します。

アイテムを入手してインベントリに表示

YouTubeでAdventure CreatorのDemoシーンを使った一人称視点ゲームのチュートリアル動画が公開されています。

動画の24:28 – Hotspots and inventoryからアイテムを消去、インベントリに表示するまでの手順が紹介されています。

シーンの構築

YouTubeの動画と異なり、今回はオリジナルのシーンを作成してチュートリアルを進めていきたいと思います。まずはシーンの構築です。[AC Game Editor]ウィンドウ > [Scene]タブ:Scene manager > Basic structure > Organise room objects: [With folders]ボタンをクリック。

アイテムの配置

部屋がだいたいできたのでアイテムオブジェクトを配置します。アイテムはUnity Asset Storeの無料アセットから次の3Dモデルを使用します。アセットページには、森林や文明崩壊後を舞台としたサバイバルゲームで使用できますよ!という注釈が付いています。
Survival Kit Lite – Rowntec Assets

UnityプロジェクトにアセットをインポートしたらDemoシーンが用意されているのでひとまず開いてみました。コンバットナイフ、リンゴ、ロープ、ライター、発煙筒、乾電池、懐中電灯、ミネラルウォーターが揃ってます。

Demoシーンに配置してあるプレハブをコピーしてそのまま部屋に置いてみました。ちょっと…大きいです。けれどもそのまま進めていきましょう。

Hotspotの追加

アイテムをクリックできるようにシーンにHotspotプレハブを追加します。まずはリンゴに追加してみましょう。[AC Game Editor]ウィンドウ > [Scene]タブ:Scene manager > Scene prefabs > Logoc > [Hotspot]ボタンをクリック。Hotspotパネル > New prefab name: フィールドにAppleと入力。[add new]ボタンをクリック。

[Hierarchy]ウィンドウ > _Logic > _Hotspots > Appleを選択。[Inspector]ウィンドウ> Transformでリンゴオブジェクトにあわせて位置とサイズを調整します。

アイテムオブジェクトのハイライト表示

アイテムにマウスカーソルを重ねた時にハイライト表示される設定を追加しましょう。[Hierarchy]ウィンドウでリンゴのプレハブ”Apple”を選択。[Inspector]ウィンドウ > [Add Component]ボタンをクリック > Adventure Creator > Hotspots > Highlightを選択してコンポーネントを追加。Hotspotプレハブ”Apple”を選択。[Inspector]ウィンドウ > Hotspot (Script)コンポーネント > Object to highlight: フィールドの右側の◎ボタンをクリック。Appleプレハブを指定します。

Hotspotにアクションを追加

追加したHotspotプレハブ”Apple”にアクションを追加します。Hotspotプレハブ”Apple”を選択。[Inspector]ウィンドウ > Hotspot (Script)コンポーネント > Use interactionsパネルの右側にある [+]ボタンをクリック。さらにinteraction: フィールド右側の[Create]ボタンをクリック。interaction: フィールドに”Apple: Use (Interaction)”が表示されます。

作成されたInteractionプレハブにHotspotプレハブを無効にする。アクションを設定しましょう。[Hierarchy]ウィンドウ >_Interactions > Apple: Useを選択。[Inspector]ウィンドウ > 最初のアクションを次のように設定。

  • Action type: [Hotspot] [Enable or Disable]
  • Hotspot to affect: [Apple (Hotspot)]
  • Change to make: [Disable]

設定が終わったら[Add new action]ボタンをクリックしてオブジェクトを非表示にするアクションを追加。次のように設定します。

  • Action type: [Hotspot] [Enable or Disable]
  • Hotspot to affect: [Apple (Hotspot)]
  • Change to make: [Disable]

インタラクションカーソルの表示切り替え

ゲーム中インタラクションに合わせたカーソルの表示切り替え設定を確認してみましょう。[AC Game Editor] > [Cursor]タブ:Cursor manager > interaction icons > Change cursor based on Interaction?に[✓]を入れます。

ここでいったんゲームを再生して動作を確認。リンゴにマウスカーソルを重ねるとハイライト表示され、クリックすると非表示になります。

インベントリの表示

さて、マウスクリックで入手したリンゴをインベントリに表示しましょう。[AC Game Editor]ウィンドウ > [Inventory]タブ:Inventory manager > Inventory items > [Create new item]ボタンをクリック。次のように設定します。アイテムアイコン画像は今回使用するアセットSurvival Kit Liteに用意されていたものを改造して使用しました。

インベントリにアイテムアイコンを表示するアクションを追加します。[Hierarchy]ウィンドウ > _Interactions > Apple: Useを選択。[Inspector]ウィンドウ > Interaction (Script)コンポーネント > [Add new action]ボタンをクリック。次のように設定します。

  • Action type: [Inventory] [Add or remove]
  • Method: [Add]
  • Item to add: [Apple]

ではゲームを再生して動作を確認してみましょう。マウスクリックでリンゴを入手してから、カーソルを画面上部に移動するとインベントリウィンドウが表示され、リンゴのアイコンが表示されています。

アイテム判定距離の調整

カメラ位置が固定だどキャラクターとアイテムが遠いのでキャラクターに追従する背後視点のカメラに変更しました。

しかしゲームを再生すると、キャラクターから離れた位置にあるアイテムが入手できてしまうのでなんだか不自然です。そこでカメラの近くにあるアイテムだけ入手できるように設定を変更します。[AC Game Editor]ウィンドウ > [Setting]タブ:Settings manager > Raycas settings > Hotspot ray length: [5]に変更します。

ここまでの内容に加え、他のアイテムオブジェクトも入手できるようにしたシーンをWebGLでビルドしてみました。

アイテムのサイズはキャラクターと比較すると大きいですが、ちょうどクリックしやすい大きさなので調整せずにそのままで床に散らかしてみました。

アイテム入手とインベントリへの追加がアクションで簡単に設定できるのはいいですね。アイテムが多くなっても管理しやすいのではないかと思います。