「【Udemy】Unreal Engine 5 C++: Climbing System」をやってみた

🎢 コース

www.udemy.com

👨‍💻 完成デモ

チュートリアルに沿って作成し完成したもののプレイ動画です。コースの introduction は無料で観れるのでそちらを参照していただくと良さそうです。

youtu.be

トレースやカプセルのラインはチュートリアルでは適宜削除していくのですが、長い期間かけてチュートリアルをやっていると以前の内容を忘れてしまうことがあるので、調査しやすくするために残したままにしています。

🙋 チュートリアルを完走した状況

🖥️ 環境

  • Windows 10 Pro
  • UE 5.3.2
    • コースでは UE 5.0 系を指定されていますが、特に問題なく完走できました
  • 実施者の UE 力としては、初心者に毛が生えた程度です

📆 期間

  • 2024/02/07 - 4/23
    • 記録を見ていると、取り組んだ日は 31 日でした。
    • 子供の春休み期間で大きくブランクが空いてしまいました 😅
  • 平日の朝 30min - 1h ぐらいで作業
  • 合計 20 -25 時間程度

🌟 コースのおすすめポイント

  • C++ に慣れていない人向けの C++ チュートリアルとして適切
    • C++ コースということで心理的なハードルはありましたが講師の説明が丁寧なことに加えて 1 レクチャーごとに、コミットを分けた Git のコミットログを Github においてくれているおかげで、動画特有の「ここなんて書いてるの?」「なんか急にコード変わってるけど?」みたいな疑問が一切でませんでした
    • この手法は本当にありがたいので、自分で解説記事を書くときもそうしたいなと強く思いました。
    • また、前方参照を追加する方法や #include すべきヘッダファイルをどのように Engine のファイルから探すかも丁寧に何度も説明してくれており、極力迷わずに進められるように配慮されています
    • 一方で (Unreal) C++ の記法や文法についてはほぼ説明されることはないため、そこは多少は知っておくと良さそうです
  • Movment Component, Control Rig, Motion Warping を関連付けて学べる
    • このコースのメインは「Climbing」を作成することですが、コースの Description にもある Build a climbing system through Movement Component, Control Rig and Motion Warping in Unreal Engine 5 using C++ が強く意識された内容です
    • Climbing を作る中で、日頃何気なく利用している Movement Component (UCharacterMovementComponent) を継承したクラスを作り、その内部も参照しつつ MovementMode の理解も深めていけました
    • Control Rig の活用方法に関しては、私のようにキャッチアップできていない人にはとても役に立つと思います
      • Animation BP の中での活用方法 (チュートリアル内では、壁面に手や足を添わせるために利用します)
      • Mixamo のアニメーションを調整する方法。特にルートモーションの無いアニメーションに対して、ルートモーションを後付けする方法はとても重要に感じました
    • Motion Warping に関しては、よくあるパルクールのような動きを作るところから、Climbing 中のホップ (壁面から壁面へのジャンプ) 処理に応用され、複数の活用例で理解を深めさせてくれます
  • Animation に関して一定の理解を得られる
    • Animation は私のようなプログラマにとってはとっつきにくいものです。正直ルートモーションも雰囲気でしかわかっていませんでした。
    • このチュートリアルでは、上述の通り、ルートモーションの無いアニメーションにルートモーションを付けるところから始めるため、そこの説明も十分にされます
    • また、Control Rig が最近の UE の Animation にとってどれ程の柔軟性をもたらしたかも理解できます
  • ベクトル計算についての解説も十分にある
    • 私はゲームにおけるベクトル計算はわかったようなわからないような感じになってしまいがちです
    • このチュートリアルは Climbing がテーマであるため、トレースやキャラクターの方向などベクトルの計算を多用します。そこは楽できなくなっています
    • その辺も言葉だけでなく図も多用して説明してくれるため、わからないまま進むことは少ないと思います

📝 学んだこと

今回は学びが多すぎるので、特にという部分だけ書き出します。

  • UE の C++ を書いていく中での基本的なことは全く分かっていなかったので、ここはほぼ全てです
    • Movement Component をカスタムしたものに入れ替える方法すら今回が初めてでした
    • 慣れてくるにつれて「ここは BP で書くならこんな感じかな」と想像できるようにはなってくるのですが、やはり「知らないと書けないな」という部分も依然として多いです
  • Control Rig と Sequencer を使って Animation を調整する手法は、さっそく自分のプロジェクトでも使っています
    • 「そんなことができるらしい」と知っているのと、「一度手を動かして完成させた」ではまるで違うなと感じます
    • ささいなアニメーションならアセットを探すより、作った方が早いと感じるほどです
  • トレースの使い方
    • ゲームを作ろうとすると、「どれぐらいトレースを多用していんだろう?」と迷うことがあります。それこそ「UE にはもっとスマートな方法があるのでは?」と考えて手が止まってしまったりします。
    • ただ、このチュートリアルを通して、(場合によるのでしょうが)必要な情報を得るためのトレースは一度に何本でも飛ばしていいと学びました
    • おそらく Movement Component 自体も内部ではトレースをたくさん飛ばしているのだろうなと想像したり
  • ルートモーションに関しては、EnableRootMotion がどういうことなのかすらも分かっていない状態でした
    • 今回のチュートリアルの中では登山から棚に登ったり、パルクールで段差を登ったりというルートの動作がいくつか例題のように出てくることでようやく理解が進みました