Hermit
BP,C++,チーム開発
-
作品概要
-
概要
- 学校の授業のチーム制作として携わった作品です。Epic Games Japan,Inc企業様との企業プロジェクトということで、実際に本社に訪問しアドバイスなどを頂き制作しました。
また、データ管理のためAWSクラウドを使用しました。
-
使用言語
-
使用ツール
- UnrealEngine5.0 , 5.1
- Visual Studio 2022
- Rider 2023.1.2
- Perforce
-
開発人数
- 10人(プランナー2人、デザイナー5人、プログラマー3人)
-
制作期間
- チーム制作:2022年3月~2022年9月(6ヶ月)
- 個人制作:2024年1月~2024年3月(2ヶ月)
-
作品データ(データ容量が多いので気になる際にダウンロードください)
作品PV・プレイ動画
制作・担当した箇所
- C++での近距離攻撃を行う敵AIの処理
- Niagaraを使用し、一部のエフェクトの作成
- 非同期でのマップ移動処理
- PVの曲制作
製作時のこだわり
- 敵のAI処理
- 敵の動きを、プレイヤーを見つけた際とプレイヤーを見失った際で動きの処理を分けて作りました。なるべく自然に見せるように、プレイヤーが草むらなどに隠れた際は見失うようにしてあります。
また、敵の行動として、一定の場所を何度も周回する→敵を見つけたら追いかける→見失ったら辺りを捜索した後、また同じ場所を周回するような動きをするようにしています。
敵を探す方法として主に視覚情報を用いて作成しました。
- C++によるAIの作り直し部分
- 敵AIを制作後C++にて全体の作り直しを行いました。元々BluePrintを多用した設計だったのですが、for文の使用部分や関数化などを行い、ビヘイビアツリーによるAI処理部分はC++化しました。これによりBluePrintで制作したものよりもデータを軽くすることができました。
- EnemyCharacter
C++:BP_SwordEnemy,BP:BP_TestEnemy
- AIController
C++:AIC_SwordEnemyAI,BP:AIC_TestAI
- Menu画面の制作
- メニュー画面の制作を行いました。メニュー画面は、ゲームに戻る、タイトル画面への移動、ゲームの終了の3つのボタンがあります。
基底クラスをC++で作ることで、エディター上でEnumを作らずにMenuのBP限定でEnumを使えるようにしました。
これによって、エディター上でのEnumの作成を減らし、メニュー用のデータとしてまとめることができました。
- 非同期でのマップ移動部分
- マップの非同期移動を行うためにC++でサブレベルをロード・アンロードする方法を取りました。出来上がったコードをプラグインとしてまとめ、他のプロジェクトなどでも流用できるようにしました。また、サブレベルを用いる影響でAIなどで用いるナビメッシュが動的に動いてしまうため、座標での移動にし、なるべく軽くするようにしました。