Unityのアセットストアで購入したアドベンチャーゲーム制作アセットAdventure Creator をチュートリアルを勉強中。今回はインベントリのアイテムをシーンのオブジェクトに使用する方法を勉強します。
前回のチュートリアルでアイテムを入手してインベントリに表示する手順を行いました。今回はそのインベントリのアイテムをシーンのアイテムに使用する手順をやってみましょう。
ウィンドウ上部にマウスカーソルを移動するとインベントリが表示され、入手したアイテムはインベントリに表示されます。アイテムをクリックするとアイテムアイコンがドラッグできるようになります。そのまま使用したいアイテムをクリックするとアイテムを使用することができます。
今回は前回のチュートリアルで使用した部屋に壁とドアを追加して、アイテムを使用してドアを開くようにしたいと思います。こんな感じになりました。
ドアのマテリアルはUnityのAsset Storeから無料アセットのYughues Free Metal Materialsを使用しました。
Yughues Free Metal Materials – Nobiax / Yughues
ドアのオブジェクトはアクションで移動できるようにコンポーネントを追加します。ドアのオブジェクトを選択。[Inspector]ウィンドウ > [Add Component]ボタンをクリック > Adventure Creator > Misc > Movableを選択します。
まずは入手できるアイテムをシーンに配置。今回はリンゴを使ってドアを開けることにしました。
リンゴのオブジェクトにはHIghtlight (Script)コンポーネントを追加しておきます。[AC Game Editor] > [Scene]タブ:Scene manager > Scene prefabs > Logic > [Hotspot]ボタンをクリック。リンゴのオブジェクトにあわせて位置とサイズを調整します。こんな感じになりました。
さらにアクションの設定を行います。追加したHotspotプレハブの設定です。アイテムをクリックして入手する設定は前回のチュートリアルの通りです。
次にインベントリからリンゴのアイテムをドラッグしてドアを開ける設定です。ドアオブジェクトにもHotspotプレハブを追加しようと思ったのですが、[Inspector]ウィンドウ]からコンポーネントとしてHotspotを追加できることに気が付きました。というわけで、ドアオブジェクトを選択。[Inspector]ウィンドウ > [Add Component]ボタンをクリック > Adventure Creator > Hotspot > Hotspotを選択します。
追加したHotspotコンポーネントにインベントリのアイテムを使用した時のアクションを追加しましょう。[Inspector]ウィンドウ Hotspot (Script)コンポーネント > [Inventory interactions]パネルの右側にある[̟+]ボタンをクリック。Inventory item: フィールドはリンゴのオブジェクト[Apple]を選択。 Interaction: フィールドの右側にある[Create]ボタンをクリック。自動的にInterractionプレハブ”Door: Apple”が追加されます。
追加されたInterractionプレハブ”Door: Apple”の設定をしましょう。ドアには上方向に開くアニメーションを設定しました。アクションの内容は次の通りです。
Action type: [Object] [Transform]
Movable object: [Door (Movable)]
[Translate] [By]
Vector: X[0] Y[3] Z[0]
Wait until finish? [✓]
ここでひとまずゲームを再生して動作を確認しましょう。インベントリにあるリンゴオブジェクトのアイコンをドラッグしてドアをクリックするとドアが開きました!
前回のチュートリアルで設定したカメラのままだとキャラクターがカメラの中央にいるせいで色々とクリック操作が不便です。ここでカメラを通常のGame Cameraに戻しましょう。[AC Game Editor]ウィンドウ > [Scene]タブ:Scene manager > Scene prefabs > Camera > [Game Camera]ボタンをクリック。[Hierarchy]ウィンドウ > GameCameraThirdPersonを削除しましょう。[AC Game Editor]ウィンドウ > [Scene]タブ:Scene manager > Scene settings > Default Camera: フィールドに作成したGame Cameraを割り当てます。今回はカメラを固定して次のように設定にしました。
それからHotspotのクリック判定距離についても前回のチュートリアルから変更しました。設定箇所は[AC Game Editor]ウィンドウ > [Setting]タブ:Setting manager > Raycast settings > Hotspot ray length: フィールドを変更します。
最後に、インベントリのアイテムをシーンのアイテムにドラッグした時のラベル表示を変更しましょう。これはCursor managerの設定で変更します。[AC Game Editor] > [Cursor]タブ:Cursor manager > Inventory cursorを次のように変更します。
When inventory selected: [Change Cursor And Hotspot Label]
[✓] Only show lavel when over Hotspot and Inventory?
インベントリのリンゴアイテムのアイコンをドアオブジェクトにドラッグするとラベル表示が”Use Apple on Door”となります。
というわけで、今回の内容をWebGLでビルドしてみました。
アイテムを使ってドアを開ける仕掛けができるようになったので、簡単な脱出ゲームは作れそうですね。
今回出来上がったシーンはキャラクターがドアの向こう側に移動してもカメラそのままだと操作に無理がありますね。次回はカメラの切り替えに挑戦したいと思います。