EngineのDemoにあるKoalaDungeonについて記載していこうと思います。KoalaDungeonがあるのは分かったけど何がどう動いてるの!?という人に向けた記事になります。通常は以下のフォルダに”KoalaDungeon“が格納されているためこちらから開けばOKです。他には”StartScreen”を実行してステージ選択画面からKoalaDungeonを選択して開く方法もありますが、KoalaDungeonがどのように動いているか見たいため、基本的には”KoalaDungeon”から直接開いてください。KoalaDungeonを動かしてみる“KoalaDungeon”を開いてさっそく実行ボタンを押して動かしてみましょうKoalaの操作方法については公式サイトの一番下に記載しています。EscapeKoalaDungeonにある要素についてKoalaDungeonを動かしてみるといろいろな要素があると思います。プレイヤーが操作できる敵が自動で攻撃する/敵が一定のルートを移動するダイアログを表示するNPCがいる/鍵付きの扉があるダメージが発生する床がある/落ちる床がある武器やアイテムの取得ができるワープができるパッと思いつく限りあげると以上の要素がKoalaDungeonの中に詰まっています。それぞれゲームを作成する上で欠かせない要素ですのでKoalaDungeonではどのように実装しているかを調べていくのがいいかなと思います。簡単にですが、それぞれの要素について説明していきます。プレイヤーが操作できるHierarchyのKoalaのコンポーネントを見てください。Type”を見てみると”Player”になっています。“Player”になっているオブジェクトがプレイヤーとして動かせるオブジェクトになります。Koalaの状態で上下移動やRun、Dashなど実行できているのはKoalaオブジェクトに設定されているCharacterMovementやCharacterRunコンポーネントが設定されているからです。Engineとしては”CharacterAbility“と呼んでいます。他にも設定できるコンポーネントがあるため気になる方は公式Documentをご確認ください。Type”が”AI”になっていると自分で動かすことができません。Brain”コンポーネントを使って動かすことになります。Type”が”AI”になっていることを指します。Brain”コンポーネントを使って動かすことになります。Engineの場合、コンポーネント単位で動かす処理がすでに準備されています。AIの場合はそのコンポーネントを組み合わせて自動で攻撃したり、プレイヤーを追いかけたりします。AIの実装方法について簡単にまとめたものがあるため以下もご確認ください。Brain"というコンポーネントを使用してAIの行動を決定しています。Brain"が作られているのか理解する必要があります。感覚的に設定...aquaregia31.com2023.07.28敵が一定のルートを移動するHierarchyにある”KoalaNinjaPatrol“が該当のオブジェクトになります。KoalaNinjaPatrolにある”MMPath“で移動する場所を指定して、”AIActionMovePatrol2D“でMMPathで指定したルートを通るようになります。Brain”で指定しています。Brainを見てもらうのが手っ取り早いと思います。ダイアログを表示するNPCがいる/鍵付きの扉があるダイアログを表示する場合”DialogueZone“コンポーネントを使用します。このコンポーネントは「指定のColliderの中でSpaceが押された場合にダイアログを表示する」という機能になります。単純にダイアログを表示するだけなのでCharacterコンポーネントなどなく、ColliderとDialogueZoneだけのシンプルな作りになっています。DialogueZone以外にも「指定のColliderの中でXXXされた場合に???をする」というコンポーネントが複数あります。鍵がかかった扉を開ける場合に”KeyOperatedZone“を使用します。KeyOperatedZoneは「指定の鍵を持っている場合に、指定の場所でSpaceを押したら扉を開く」という機能を持ったコンポーネントです。「指定のColliderの中でXXXされた場合に???をする」といったことがやりたい場合は「XXXZone」コンポーネントを探してみるのがいいかと思います。ダメージが発生する床がある/落ちる床があるダメージが発生する床ダメージが発生する床の作りは比較的単純で、”DamageOnTouch”コンポーネントとColliderコンポーネントを付けたオブジェクトを準備してAnimatorの動きに合わせてColliderの有効/無効を切り替える作りになっています。キャラクタが落ちる床キャラクタが落ちる床(=消える床)の場合は”AppearDisappear“コンポーネントを使用します。このコンポーネントは時間を指定することで消えている時間、見えている時間などを設定することができます。Engineの場合”PickableItem“や”ItemPicker“コンポーネントを用いて武器やアイテムのやり取りをしています。Mountainsが作成したインベントリシステムを使っているためこのようなやり方になっています。理解するまで難しいですが、「フィールドに表示されるアイテム」と「インベントリに格納された時のアイテム」を作成する必要があります。インベントリについては公式DocumentがあるためまずはDocumentを読んでみるのがいいかなと思います。自分もこの機能について理解できていないので理解出来たら記事にまとめたいと思います。ワープができるテレポートしたい対象に”Teleporter“コンポーネントを付けることで指定の場所にワープすることができます。ステージを切り替えたり、別の部屋に飛んだりといろいろと応用が利くためぜひ使い方をマスターしていただけたらと思います。まとめ今回はKoalaDungeonについて紹介しました。Engineの中のまだまだ一部の機能になります。他にも“KoalaCinemachineZones“や”KoalaProceduralTilemap“など特定の機能に特化したDemoがあるため、まずは動かしてみてどのような動きをするのか?を実際に触れてみるのが一番いいかなと思います。ダメージを発生させる方法として"DamageOnTouch"コンポーネントを使用します。ボスキャラクターなどは通常の敵キャラクターと比べてより複雑な動作が求められます。ボスが特定の体力値以下になると攻撃パターンが変わる、フェーズが進むごとに新しい攻撃方法を使う、といったパターンが考えられます。以前、2DPixelUnitMakerを使ってキャラクタモデルの設定を紹介しましたが、その時に「キャラクタモデルの向きを設定する場合は”Flip”で調整する」と説明をしましたが、Flipでもうまく向きが調整できない場合があります。Engineで敵キャラを倒したときにアイテムをドロップさせる方法になります。Brain"というコンポーネントを使用してAIの行動を決定しています。Brain"が作られているのか理解する必要があります。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。最近のコメント表示できるコメントはありません。免責事項等ホーム検索トップサイドバータイトルとURLをコピーしました。