ゲームエンジンUnreal Engineの技術ノート集
UE5学習で挫折しないための目標設定の考え方と、初心者から中級者へステップアップするための段階的なロードマップを紹介。
UE5を始める前に押さえておきたいActor、Component、Blueprint、Level、GameModeの5つの基本概念。それぞれの役割と関係性を具体例を交えて整理。
プロジェクトが大きくなっても破綻しないフォルダ構造の考え方、命名規則、リダイレクタの対処法、ソフトリファレンスによるメモリ最適化について整理。
BlueprintのPrint StringとC++のUE_LOGマクロを使った基本的なデバッグ手 法。Keyパラメータによる上書き表示やVerbosityの使い分けも紹介。
プロジェクト作成直後に設定しておくべきソース管理、マップ&モード、Enhanced Input、言語設定などを、理由と手順を交えて紹介。
ビューポート、ワールドアウトライナ、詳細パネル、コンテンツブラウザの4つの主要パネルの役割と、効率的に操作するためのショートカッ トを紹介。
ActorComponentとSceneComponentの違い、再利用可能な体力システムの実装例、Event DispatcherやInterfaceを使ったComponent間通信のパターンを紹介。
Print Stringだけでは追いきれない複雑な処理には、Blueprint Debuggerが有効。ブレークポイントの設定、ステップ実行、変数のウォッチ機能の使い方を紹介。
Blueprintが複雑になると読みづらくなりがち。関数化・マクロ化、Rerouteノード、コメントボックス、命名規則など、グラフを整理して可読性を保つためのテクニックを紹介。
Tickイベントの多用、Castノードの乱用、Get All Actors Of Classの頻繁な呼び出しなど、Blueprint開発でありがちなミスとその対処法をまとめ。
Castingを多用するとハードリファレンスが増え、メモリやロード時間に影響する。Blueprint Interfaceを使って依存関係を減らす設計パターンを紹介。
Event Dispatcherを使うと、発生源と処理者を分離した疎結合な設計が可能になる。Bind/Unbindの基本からC++でのDelegate実装まで、具体例を交えて紹介。
FunctionとMacroは似ているようで動作原理が異なる。Delayノードが使えるか、実行ピンを分岐できるかなど、選択に影響する違いを整理。
Level BlueprintとBlueprint Classはどちらもロジックを書けますが、再利用性や管理の面で大きく異なる。それぞれの特性と選択基準を整理。
Event Tickは毎フレーム実行されるため、多用するとパフォーマンスに影響する。Timer、Event Dispatcher、Collision Eventsを使った代替設計を紹介。
Blueprintの変数をClass VariableとLocal Variableのどちらで作るべきか迷ったときの判断基準。スコープの違いとバグを防ぐための使い分けを整理。
Blueprintでアクター同士がやり取りする方法は主に3つ。それぞれの結合度や汎用性の違いを理解して、場面に応じた使い分けを解説。
C++で定義した変数や関数をBlueprintから使えるようにするUFUNCTION、UPROPERTY、UCLASSマクロの使い方を、具体的なコード例とともに紹介。
Blueprintは素早いプロトタイピングやイベント駆動のロジックに、C++はパフォーマンス重視の処理やエンジン拡張に向いている。それぞれの特性を活かした連携の考え方を整理。
Blueprintに慣れてきたらC++も視野に入れたくなる。UCLASS、UPROPERTY、UFUNCTIONの基本と、BlueprintImplementableEventを使った連携方法を紹介。
アイテムや敵のパラメータなど、大量のデータを効率的に管理するData Table。構造体の作成、CSVファイルのインポート、Get Data Table Rowによるデータ取得の流れを紹介。
関連するデータをまとめて扱いたいときに使う構造体(Struct)。BlueprintとC++での作成方法、Make/Break Structノードの使い方、Data Tableとの連携について紹介。
Data Assetはロジックとデータを分離し、複数のクラスから同じデータを参照できる仕組み。UDataAssetの定義方法とData Tableとの使い分けの基準を紹介。
BlueprintがC++より遅い理由と、UE5でNativizeが廃止された後の最適化手法について。どのような場合にC++への移行を検討すべきかの判断基準も整理。
描画負荷を軽減するための基本テクニックであるLOD(Level of Detail)、距離カリング、オクルージョンカリングの仕組みと設定方法を紹介。UE5のNaniteとの使い分けについても解説。
プレイヤーの位置に応じてサブレベルをロード・アンロードするレベルストリーミングの基本的な考え方と設定方法を紹介。Load Stream Levelノードの使い方や、UE5のワールドパーティションとの使い分けについても解説。
stat unit、stat game、stat gpuなど、UE5の基本的なパフォーマンス計測コマンドの使い方を紹介。CPUとGPUどちらがボトルネックかを判断し、どこを最適化すべきかを見極めるための基礎知識。
Unreal Motion Graphics(UMG)を使ったゲームUI制作の基本を紹介。Widget Blueprintの構造、HUDの作成手順、データバインディングによる動的な値の反映、Event Dispatcherを使ったウィジェット間通信などを整理。
UMGで起きやすいフォーカス迷子問題の対処法と、パフォーマンス最適化のテクニックを紹介。Navigation設定によるフォーカス制御、Invalidation BoxやRetainer Boxを使った描画コスト削減などを整理。
UE5で標準となったEnhanced Input Systemの基本的な使い方を紹介。Input ActionとInput Mapping Contextの役割、TriggersやModifiersによる入力カスタマイズ、シーンに応じたコンテキスト切り替えなどを整理。
プロジェクト固有のコリジョン判定を実現するためのカスタムチャンネルとプロファイルの作成方法を紹介。Object TypeとTrace Channelの違い、プロファイルによる応答設定のプリセット化、BlueprintとC++での適用方法などを整理。
コリジョン判定の仕組みであるSimple CollisionとComplex Collisionの違いを紹介。それぞれの特性、Collision Complexity設定の使い分け、パフォーマンスを考慮した選択基準などを整理。
敵AIの意思決定を管理するBehavior Treeの基本的な使い方を紹介。Blackboardによるデータ共有、Selector/Sequence/Decorator/Taskノードの役割、索敵・追跡・攻撃といった典型的な行動パターンの実装方法などを整理。
AIキャラクターの経路探索に使うNavMeshの設定方法と最適化について紹介。NavMesh Bounds Volumeの配置、Agent Radius/Heightの調整、Runtime Generationの選択基準、よくあるトラブルと対処法などを整理。
UE5のオーディオシステムにおけるSound WaveとSound Cueの違いを紹介。Sound Waveの基本、Sound Cueでのノード構成(Random、Modulator、Mixer)、足音などでの単調さを防ぐランダム化の実装方法などを整理。
シーンの映像品質を調整するPost Process Volumeの基本的な使い方を紹介。露出補正、Color Grading、ブルーム、被写界深度といった主要な設定項目と、複数ボリュームの優先度管理などを整理。
UEのマテリアルエディタで使う基本的な知識を紹介。PBR(物理ベースレンダリング)の概念、Base Color・Metallic・Roughness・Normalといった主要入力ピン、よく使うノード(定数、テクスチャサンプラー、Lerp、座標系)の役割などを整理。
キャラクターアニメーションを制御するAnimation Blueprintの基本構造を紹介。State Machineによる状態遷移の管理、Blend Space 1D/2Dによる滑らかなアニメーション補間、Event GraphとAnim Graphの役割分担について整理。
異なるスケルトン間でアニメーションを共有するためのリターゲティング機能について紹介。UE5.4で簡略化されたワークフロー、IK RigとIK Retargeterの自動生成、リターゲット後の微調整方法などを整理。