2023年5月22日(月)~5月28日(日)
「アンリアルクエスト5 ~剣を使って敵を倒そう!~」オンライン開催!
UEを使って一週間でゲームを作るイベントに初参加しました。
この記事はどのようにゲームを作成したのか、参考文献やノードの組み方等を紹介します。
※今回はソウルライクを意識して1対1のゲームを作成した為クエストを全てクリアしておりません。また、キャストやTick、バインド等重い処理の為使用注意のノードを使用しておりますのでご了承ください。
完成した動画はこちら(UEversion5.1.1)
【目次】
- 【1日目:敵】剣の当たり判定、HPと死亡演出、ビヘイビアツリーに関して
- 【2日目:敵Ⅱ】ターゲットシステム、攻撃バリエーション、パリィ
- 【3日目:プレイヤー】必殺技、前転のしくみ、連続攻撃
- 【4日目:ステージ】回復アイテムのランダムスポーン、爆弾、レベルデザイン
- 【5日目:演出】エフェクト・SE、ヒットストップ
【1日目:敵】
- 剣の当たり判定(プレイヤー・敵共に同様の実装)
![]() |
Anim Montageで剣を振っている所のみに通知を追加 ※この処理だけだと多段ヒットしてしまいます。参考動画の方はアニメーションをMontageにせず、Is Playingとブランチで処理を1回にするよう止めていますが、Montageの場合のやり方は時間がなく未解決です。(その為与えるダメージを少なくしています) 動画のコメント欄にヒントがありそう…? |
- HP・死亡/勝ち演出
先に2日目のクエストであるHPを敵に実装していたため、HPが0になったら死亡/勝ち演出に切り替わる、という実装をしています。
死亡のMontageはMixamoよりとってきて、少しいじっています。
死亡エフェクト参考動画【https://www.youtube.com/watch?v=IS-1hKXcmcM】
- ビヘイビアツリー
下記実装したビヘイビアツリー及びサービスとなります。
何故「Is attack」のブラックボードをMove toに設定したかというと、デフォルトプロジェクトでは待機時間が3秒に設定されていて、敵の攻撃モーションを3秒以上あるものに差し替えてしまった為3秒以上のモーションをした際、攻撃しながらこちらへ近づいてきてしまう為です。(思いつきなのでもっとうまいやり方があると思います)
因みに離れすぎるとこちらへワープしてくるのですが、今月(2023年5月)の無料コンテンツでエフェクトとワープBPが同梱されているものがあるのでこれで簡単に導入できます。
Blink and Dash VFX
【https://www.unrealengine.com/marketplace/en-US/product/blink-and-dash-vfx】
【2日目:敵Ⅱ】
- ターゲットシステム
ソウルライクということでTarget System Component Pluginを入れています。
調べると導入手順動画も沢山ヒットしますし、とても簡単に導入できます。
- 攻撃バリエーション
参考動画【https://www.youtube.com/watch?v=rU6IHQsedlw】
パリィ専用コリジョンのBPで「Set life span」というノードをBeginplayにつなぎ、Life timeを1秒などに設定してあげると自動的に消えます。値はお好みで。
- パリィ
パリィは下記ツイートを参考に実装しました。
まず、パリィ専用のコリジョンのみを持つアクターを作成し、次に敵の剣に「sword」という名前のカプセルコリジョンを設定します。
「E」を押すとガードモンタージュを再生、パリイ専用コリジョンをスポーンするという処理をプレイヤー側のBPに設定します。敵の剣のコリジョン「sword」がタイミングよくパリィ専用コリジョンとぶつかったら敵側にパリィアニメーションを再生させます。
![]() |
プレイヤー側のBP |
全ての攻撃をパリィ出来てしまったらつまらないので、青く光る攻撃のみパリィが出来るという設定にもしてみました。
先ほど作成した「sword」コリジョンを、デフォルトではNo Collisionに設定しておき、下記のようなアニメーション通知を作ります。
プレイヤーのBPで「Parry success?」を取得しTrueだった時のみFを押すと必殺技が出るという処理になります。
次に、パリイしたい攻撃のモンタージュにのみ、作成したアニメーション通知を設定します。そうするとその攻撃だけコリジョンが発生しパリィが出来るようになります。
【3日目:プレイヤー】
- 必殺技(パリィから必殺技を派生させる)
前章のパリィから必殺技を派生させるやり方ですがとても簡単です。
今回はパリィ後、Fを押すと必殺技に派生するという処理をしています。
敵側のBPに「Parry success?」(ダメ英語笑)というBool型の変数を作成しパリィの処理が進むどこかでTrueに設定、モンタージュ再生後にFalseにします。
カメラの引きやスロー、エフェクトを追加することでそれっぽい必殺技になります。
また、先ほどのパリィの「sword」コリジョンのように、プレイヤー側で広範囲のコリジョンを設定し、アニメーション通知を使って必殺技の時のみコリジョンを出現させることでダメージ量を増やしています。
- 前転のしくみ、連続攻撃
前転と連続攻撃(GAS)に関しては参考動画のものから変えた部分はほぼありませんのでURLのみ貼っておきます。(Discordでも既にシェアされていたと思います)
【4日目:ステージ】
回復アイテムのランダムスポーンは下記のように処理しました。
まず回復アイテムをスポーンさせる用のアクターを作成し、下記のようにつなげます。
Set timer by eventで60秒を設定し、アクターからXY軸2000~-2000の範囲内に回復アイテムがスポーンされるという仕組みです。
回復アイテムBPの中身は下記のようにつなげました。
- 爆弾
パリィが4回成功したらSpaceで追跡する爆弾を投げられるようにしました。
前章で作成した必殺技コリジョンのOverlapノードの先にfloat型で作った変数「Owl count」(爆弾が梟の形をしているのでowlです)に+0.25します。
UIにはバインドを使用して数字を渡しています。下記動画が参考になります。
「Space」ノードに、爆弾投げの処理を行う前にOwl countが「1」になったらTrueを返すブランチをつなげ、爆弾投げモンタージュ再生後にOwl countを「0」に戻るようにセットするとメーターが溜まった後、1回のみ爆弾を投げられるようになります。
- レベルデザイン
使用したアセットは下記となります。
・Megascans
・Opera House Kit
・SICKA MANSION
簡単にそれっぽく美しく見せるには主にExponentialHeightFogとPostprosessvolumeの色の値等を触ってみるとより良くなると思います。
特にExponentialHeightFogはデフォルトのレベルだと下の方に設定されていると思いますがそれを上にもってきて、フォグ密度、高さ、volumetoric fogにチェックを入れるなどすると大分印象が変わります。(重くなるのでスペックと相談)
私事になってしまいますがゲーム作りの中でレベルデザインが一番好きで、その場所にも何かしらドラマを含ませるようにしています。
今回は最初のダヴィンチの名言のように、魂のない人間のような何かが白いキャンバスの前で絵が描けずに自分自身と葛藤している、という裏設定があります。
【5日目:演出】
- エフェクト・SE
ビジュアル面でエフェクトには大いに助けられました。これがあるだけで何だか凄く見えますよね。
今回使用したエフェクトはこちらです。
・Blink and Dash VFX(リンクは敵の章に)
・Butterfly Particle
・FX Variety Pack
・M5 VFX Vol2. Fire and Flames(Niagara)
・Realistic Starter VFX Pack Vol 2
剣のエフェクトについて、Trailは配布プロジェクトのものを、炎はBlink and DashのBlinkエフェクトの長さなどを調節し、作成しました。
SEは下記二つのサイトを使わせて頂きました。
- ヒットストップ
ヒットストップに関しては調整が上手くいかず参考動画のみ載せておきます。
(皆様のを参考にさせて頂きたい…)
以上、アンリアルクエスト5で参考にしたものやノードの紹介でした。
まだバグが多く、このやり方が正しい訳ではないのであくまで参考程度に見て頂ければと思います。省いている部分も結構ありますので、もっと詳しく知りたい所などありましたらTwitterのリプやコメントなど頂ければ更新します。
ここまで読んでいただきありがとうございました。
コメント
コメントを投稿