緊急事態宣言
振り返れば社会人生活も長いので、進捗が大幅に遅延して炎上したプロジェクト等に参加した経験も一度や二度じゃないのですが、その所為もあってか、大変な時ほど前を向くことの大事さを思い知らされます。
困難な状況になると「どうしてこんなことに・・・」「あの時ああしていれば・・・」「誰々が悪い、誰々の責任だ」とか後ろ向きなことを言いたくなるのですが、そんなことは全くの無駄で足を引っ張るだけ、と言う事も分かっているので、今は各々が自分のできる範囲の事を愚直に進めるだけだと思います。
未だ終わっていなかったチュートリアル
さて、AVG制作用プラットフォームのアセット「First Person Narrative Adventure + Complete Puzzle Engine」(長いのでFAで略)
アセットストアの中ではちょっと値段が高めのアセットですが、中々に便利で機能も豊富なアセットなので前々回からこのアセットについての記事を書いています。
【Unity】アセット:First Person Narrative Adventure を使ってみよう(その1)
前回の記事でチュートリアルを紹介し終わったと思っていたのですがドキュメントを確認すると未だ残っていたので、今回は残りのチュートリアルを進めていきます。
アイテムを取る、ドアを開ける
前回の記事ではAVGで良くある「パズルを解いてドアを開ける」という動作を実装しましたが、今回は普通に「鍵を取ってドアを開ける」という処理を実装します。
製作上で「鍵」というアイテムは「パズル」のように内部処理的なフラグ(パズルが解かれたかどうか)は必要ないので、ただ単純にプレイヤーがアイテムとして持っているかどうか、がドアを開ける判断基準となります。
FAではそういったアイテムを一括で管理しており、それをインベントリ等に反映する処理も行っています。
まず、最初に「鍵」のモデルをHierarchy上へドラッグして設置、その「鍵」を選択した状態でメニューのToolsから AP → Object Creator (w_ObjCreator) を選択してObjCreatorのウィンドウを開きます。
Select Catergoryに「02 Items (3D Viewer)を設定
Inventoryにチェックを入れて、Nameに「鍵」の名前を入力
Applyボタンを押すと「鍵」オブジェクトにコンポーネントが3つ追加されます。
「Text Properties」「IsObject Activated」「Save Data」が追加される
このうち「Text Properties」コンポーネントにあるManagerID欄に注目してください。
この値がFAで管理しているアイテムのキーとなります。
(この値は後で使用します。)
インベントリの設定
Text Propertiesコンポーネントの「Open Window Tab:・・・」ボタンを押すとアイテム管理のウインドウが表示されます。
アイテム管理ウィンドウのピンク色の部分がインベントリに対する表示設定です。
- Title:インベントリに表示するアイテムの名前
- Sprite:イベントりに表示するアイコン
- Description:アイテムの説明文
インベントリでアイテムモデルを表示させるために「Prefab」欄のCreateボタンを押します。
ここまでの設定を行うとゲーム内で
- 「鍵」に近づく→クリックアイコンが表示される
- クリックアイコンをクリック→インベントリに格納
- Iキーを押す→インベントリが表示され「鍵」のアイコン表示
の動作を行うことができるようになります。
鍵でドアを開ける
「鍵」を取ることができるようになったので、次はドア側の設定を行います。
前回の記事ではパズルを解くことがドアを開ける条件でしたが、今回はそれをPlayerが「鍵」を持っていること、に変更します。
ドアオブジェクトを選択してInpsectorに表示される「Obj Translate Rotate」コンポーネントの「5-Lock Options」欄に注目します。
中ほどにある「ObjectID」欄に「鍵」アイテムのIDを設定するわけですが、この値は先程説明した「鍵」側の「Text Properties」コンポーネントにあるManagerID欄の値を指定します。
この設定後のゲーム動作。
最初にドアに近づいてもドアは開きませんが鍵を取ってから近づくとドアを開けることができます。
今回はアイテムの取得とそれに付随するイベント(ドアを開ける)の設定について説明しました。
次回ではこのアイテムが格納されている「引き出し」の設定と、「メモ」や「本」などのストーリーを説明するのに必要なテキストの表示設定ついて記事にしたいと思います。