みなさんこんにちは!UnityやUnreal Engineを勉強しながらゲームつくるマンです。
ゲーム開発ツールのUnityを少しづつ勉強中。解説書やネットで調べた情報を参考にして覚えたことを忘れないように書き留めています。
Unityのアドベンチャーゲーム制作アセットAdventure Creator の公式サイトに掲載されている英語のチュートリアル をGoogle翻訳しながら進めていきたいと思います。今回はPlayerプレハブの作成です。
Playerプレハブの作成
ゲームプレイ中にゲーム主人公をコントロールしたい場合は、Playerプレハブを定義する必要があります。Playerは厳密には必要ではないことに注意してください。たとえばインタラクティブなストーリーブックを作っている場合、Playerなしでプレイすることができます。
Playerプレハブを定義する基本的な手順は次のとおりです。
- モデルやスプライトを用意し、適切なコンポーネントを追加する
- ルートオブジェクトにPlayerタグを設定する
- オブジェクトをプレハブに変換する
- AC Game Editor > Settings ManagerでPlayerとしてプレハブを割り当てる
Playerプレハブには一般的に以下のコンポーネントが追加されています
- Colliderコンポーネント(一般に3DPlayer用のCapsule Collider、2DPlayer用のCircle Collider 2Dコンポーネント)
- 3D PlayerのRigidbodyコンポーネントまたは2D PlayerのRigidbody 2Dコンポーネント
- Player (script)コンポーネント
- Paths (script)コンポーネント
- 選択したアニメーションエンジンに応じて、AnimationまたはAnimatorコンポーネント
- Audio Source(オプション)
3D空間で作業している場合、シーンにPlayerオブジェクトを置き、コンポーネントを追加します。Capsule Colliderは底面が床に触れるように調整する必要があります。
次に、Rigidbodyの”Freeze Rotation”フィールドの3つのチェックボックスすべてをチェックします。
Playerオブジェクトを選択して[Inspector]ウィンドウ > Player (script)の上部で、プレーヤーが使用する正しいアニメーションエンジンを選択します。ここではLegacy animation systemを使用しています。
各アニメーションエンジンの詳細な説明はチュートリアルのCharactersセクションに記載されています。必要に応じて残りのフィールドを設定します。
Playerが2Dスプライトの場合、SpriteがPlayerスクリプトを保持する空のゲームオブジェクトの子であることを確認してください。2D Demo playerのBrain2Dはこれを実証しています – [Project]ウィンドウ > Assets > Adventure Creator > 2D Demo > Resourcesフォルダで見つけることができます。
次に、この2Dスプライトを選択して[Inspector]ウィンドウ > Player (script)の”Sprite child”フィールドに割り当てます。
ゲームのアニメーションエンジンにかかわらず、ルートオブジェクトを”Player”としてタグ付けして”Ignore Raycast”レイヤーに配置します。それをプレハブに変換するには、[Project]ウィンドウのゲームフォルダに配置します。プレハブが作成されるとシーンからゲームオブジェクトを削除することができます。
最後に、AC Game Editor > Settings Manager > “Player”フィールドにプレハブをドラッグして、このプレハブがゲームのPlayerであることをAdventure Creatorに伝えます
ゲームが実行する前に、新しいPlayerオブジェクトをシーンに配置することで、特定のシーンで定義されたPlayerプレハブを上書きすることができます。これにより、シーンオブジェクトを参照するプレハブにスクリプトを添付することもできます。
選択したアニメーションエンジンのキャラクターを作成する方法の詳細はチュートリアルのCharactersセクションを参照してください。
今回のチュートリアルはPlayerオブジェクトの構成内容についての解説でした。いま進めているチュートリアルは導入編なので詳細な内容はCharactersセクションのチュートリアルに入ってからのようですね。期待しましょう。