ATMWRIによるUE5の記録

Unreal Engine 5 を使い始めました

アンリアルクエスト4にオンライン参加した(中級編)

二日間にわたって開催されたアンリアルクエスト4、その期間内でなんとか中級クエストまでは完了できたのかな?と思っている。2番だけは勘違いして扉自身に弾を当てると開く仕組みを作ってしまったけど

やる気の出るイベントを開催してくださったHistoriaさんと、攻略法をDiscordで紹介してくださった方に感謝

中級クエス

  1. 踏んだらジャンプするジャンプパッドを作成せよ

  2. 的に弾を当てると扉が開く仕組みを作成せよ

  3. 秒数をUIで表示せよ

  4. ゲーム開始までのカウントダウンをUIで表示せよ

  5. ゴール演出を追加せよ

  6. スライディングを追加せよ

1.ジャンプパッド

プレイヤーの落下velocityを取得して適当な係数を乗算したものをLaunchCharacterへ渡した。

ジャンプパッドのBP編集前。見づらい

後日見直しがてらちょっと手を加えた  

  • 横に伸びたBPは見づらいのでSequence
  • velocityの計算にABSを使用
  • LaunchするのはBPインターフェースでPlayerBPに任せて、ジャンプパッドはLaunchするvelocityだけ渡す
    ジャンプパッドのBP編集後

2. 弾が当たると開く扉

Animation中に再度イベント発火したときの制御がうまくいかなかったのでDoOneceでフローを改善させた。

TimeLineを使用したドア開閉

3. 秒数をUIで表示せよ

UIとプレイヤーとコントローラーの関係をどうするか未だに整理しきれていない

  • GameModeがプレーヤーにタイマーUIを与える
  • タイマーUIとプレーヤーはインターフェースで通信
  • プレーヤーは一定の間隔でインターフェースで現在時間を送る

といった具合に落ち着いた

CountUp用のUI、BPインターフェースで表示を更新する

GameModeがタイマーUIをプレイヤーに与える
プレイヤーは一定の間隔でBPインターフェース越しにタイムを送信する

4.ゲーム開始までのカウントダウンをUIで表示せよ

ゲーム開始の合図はGameModeの仕事にした

GameModeのBeginPlayでゲームスタートカウントダウンを表示させる

スタートカウントダウン用のUIとアニメーション

5.ゴール演出を追加せよ

凝ったことをする時間も技術もないので、Niagaraサウンドで済ませた

  • Niagaraのエフェクトを作成
  • GoalBPにNiagaraコンポーネント追加、初期状態では無効にしておく
  • Playerがゴールに到達した時にイベント発生
  • PlayerのBPインターフェースにゴール処理を任せる

ゴール演出用NiagaraEffect

GoalBPの外観、AutoActivateはオフに

プレイヤーがゴールエリアに到達するとイベント発生

6.スライディング

検索したところABPからAnimationMontageを手軽に呼び出せるらしい

  • Animation SequenceからMontageの作成
  • ABPでMontage呼び出しと終了処理の設定(プレイヤーのEventDispacherにバインド)
  • プロジェクトセッティングでInputActionEvent追加してからプレイヤーBPで一連の処理を作成

アニメーションからmontageの作成、右クリから

ABPでmontageの設定、開始と終了を忘れずに

最初に思い付いたのがWalkSpeedを変化させる方法だった。後でDiscordで紹介されていた方法もためしてこんな感じになっている

プレイヤーBPでスライディング処理を作る
地面の摩擦なくしてLaunchする方法

感想

イベントの二日間で作業した時間よりも記録用にいろいろ整理する時間の方が長いような。
整理しているうちに気が付いた事

  • よく使うSet〇〇や演算ノード、Booleanノードの配置パターンを決めた方がよさげ
  • 横に伸ばすと見づらいのでSequenceで縦に伸ばす