はじめに
今回はこちらを見ていきます
4.エンジン
理念と概念
Model は最初からエンジンにとって非常に重要なもの。
エンジンの習得及び試行錯誤が容易であることが非常に重要だった
UE1 to UE2
- エンジンとゲームは一体。プロジェクトファイルはなかった
- パックされたディレクトリの中にアセットは配置されていた
- すべてのアセットとレベルは1つのフォーマットの中に単独で存在していた。配布する段階と開発段階は等しいものだった
UE3
- 今では内容は配布前にクックされます
- クックされてもアセットとレベルはエディターから開けます
UE4
- 1~3とは大きな変更があり、プロジェクトが導入されました。それに伴い多くのものも導入されました。
- コンテンツは今アセットごとに保存されます
- Unrealscriptはなくなり C++だけになりました。
- 多くのツールが導入されました。
俯瞰図
- エンジンとプロジェクトが別々にその間にエディターがある
- エディターはエンジンの一部
- ソースコントロールはエンジンとプロジェクトに分かれる
- プロジェクトを配布可能な状態にするまでのステップ
- ビルド
- クッキング
- ステージング
- パッケージング
スキマティック
Source Code
- ソースコードは複数のソースから得られる
- GitHub
- Perforceなど
- エンジン毎のソースコードを管理する為のプラグインがある
- Git Subversion Perforce
- Plasticを使用する為のプラグインがある
- エンジンはブランチを作り独自バージョンを使用することもできる
- 独自のエンジンは公式更新後に管理が難しくなる。
- それを管理する為に ソースコントロールと UnrealGamesSync がある
- 上記はすべてを管理するのに役立つ
- 独自のエンジンは公式更新後に管理が難しくなる。
- Launcher からは標準バージョンのエンジンの入手が可能
Unreal Game Sync
- ソースコントロールを管理するツール
- Perforceからダウンロードしたソースのみに使うツール
- 使用する変更リストを管理できるツール
- 大規模チームであれば有用
Engine and Project Folders
- エンジン、プロジェクトどちらからも参照される
Assets
- アセットは大きく分けて2種類。インポートされるものとエディタで作成されるもの
- すべてのアセットは UAsset で保存される
- アセットをチェックするためのプラグインがある。通常では有効ではない
- すべてはフルパスで記録される
- 例えばあるメッシュがあるマテリアルを設定しているという設定がある場合、そのマテリアルのフルパスを持っている
- 参照関係がどの様になっているか見るためのツールがある
- 参照先のマテリアルの名前を変更すると参照元から見えなくなるという問題が発生する。それを修正する Redirectorというツールが UEには付属している
Derived Data Cache 派生データキャッシュ
- UAssetにテクスチャが含まれる場合、非圧縮テクスチャで保存されている。
- しかしモバイルデバイスなどで使用する場合、このままでは使えない。これを変換するためのツールが Derived Data Cache
- デフォルトでは非表示
Share DDC 共有DDC
- 大規模チームでは正データキャッシュを効率的に行う方法を提供するツール
- あまり使わなそうなので踏み込まないことにする
Asset Loading
- エンジンがロードする順序
Tools
- Unreal Engine フロントエンドとセッションフロントエンドという物がある
- 上記は基本的には同じものだが、セッションフロントエンドはエディタにありUnreal Engineフロントエンドにマージされる
- セッションフロントエンドにはいくつかのツールが有る
- 自動テスト
- プロファイラ
- セッション
- コンソール
- スクリーン比較
- 講師の方も使ったこと無いツールとの事
- Unreal FrontEnd はインストールディレクトリにある
- Windows 10 のデフォルト
C:Program FilesEpic GamesUE_4.25EngineBinariesWin64UnrealFrontend.exe
- 起動画面
- 自動テストなどが行えるUnreal Frontendアプリケーション管理とコンソールへのデプロイツール
- 自動テストなどが行える
- Windows 10 のデフォルト
- Unreal Insights
- 比較的新しいツール
- Windows 10のデフォルト
C:Program FilesEpic GamesUE_4.25EngineBinariesWin64UnrealInsights.exe
- ローカルマシンに接続して実行するUnreal InsightsUnreal Insights でプロジェクトをプロファイリングする
Cooking/Packaging/Shipping
build
Cooking
- ビルドが終わった次の段階で行うもの
- クックサーバー経由でオンザフライでクック可能
- 古いデータなどが派生データキャッシュによって置き換えられ開ける状態に変換される
- すべてのコンテンツを変換するため、シッピングのためのプロセスの中で最も長くかかるステージ
Staging
- パッケージ化を開始するために必要なファイルをコピー及び収集する
- ファイルを移動させるのみ
- 保存されクックされる
Packaging
- プラットフォームのネイティブ配布形式にして異なるフォルダに保存する
周辺ツール
UAT Unreal Automation Tool
- ほとんどの作業を行う
- コマンドレットから実行可能
- それ以外にも実行方法はあるが行う仕事は同じ
- UATはデバイスプロファイルによって駆動される
- ツールの保存先
- Windows10 のデフォルト:
C:Program FilesEpic GamesUE_4.25EngineBinariesDotNETAutomationTool.exe
- Windows10 のデフォルト:
- UnrealFrontEnd.exe からも行える。設定が必要。
- 一度設定をしておけば使い回せる
Device Profiles
Calture
- 任意のカルチャを埋め込むことができる
- 異なるテキストや音
- 国別での設定はこのあたりで行う模様
- サンプルとなるようなプロジェクトファイルがなかったためスキップ
- 表示方法
Signing/Encryption
- 署名と暗号化
- パッケージに暗号化を施し中身を見ることができなくする
Cooker Statistics
- Packaging に関して行った内容の情報を確認できる
Asset Audit
- Cooker Statisticsとほぼ同じことを行う
Config Files
- カテゴライズが難しかったため全体図でも左上隅に配置されたもの
- エンジンが使用しているコンフィグの階層
- フォルダー内には2番目の階層がある
- プロジェクトにはコンフィルファイル・フォルダーがある
- DefaultEngine.ini は最も重要
- 含まれるすべての設定がある
- DefaultEngine.ini は最も重要
EngineConfigBase*.ini
- すべての親
- Windows 10 のデフォルトフォルダ
C:Program FilesEpic GamesUE_4.25EngineConfig
にある - これよりまだ説明はあるがすぐには関係する事はなさそうなのでスキップ。
アドバイス
Managing Engine Builds エンジンビルドの管理
ソース/流通 戦略
Naming Conventions and Standards 命名規則と標準
- 我々が使っている標準に従うことをおすすめします
- 外部からコンテンツを導入、人員を雇用する場合にやりやすくなる為
- Michael Allar氏のコミュニティで作成されたスタイルガイドは非常に優れている
- 経験豊富な Unreal Engineユーザー
- UE社の内部標準とも非常に似ている
- https://github.com/Allar/ue4-style-guide
- Developer Folderがある
- クックする際にこのフォルダーからリンクする物があってもそれはクック対象とはならない
- 通常は有効ではない
- 自動的に携わっている人の情報が追加される。
- ActionRPGというサンプルを開いただけだが、自分の名前(Windowsユーザー名)が追加されている
- 開発者毎にファイルなどを保存しておき使える便利フォルダの模様
Asset pipeline and repositories アセットパイプラインとリポジトリ
- アセットの配置場所について
- テクスチャなどのアセットはUEにインポートされる為配置場所は重要ではない
- ソースアセット、アートアセットはプロジェクト自体には配置しない
- フォルダはプロジェクトの外部に作成する
- プロジェクトの1レベル上位に配置し、好みの方法で整理しインポートする
- UEにはフォルダに配置すると自動でインポートする自動インポート機能がある
- フォルダ内の変更を検出するとUEが自動的にインポートする仕組み
- ソースアセットはソースコントロールに保存しましょう
Source Control
- Perforceが我々の標準です
- 大規模なプロダクションの場合に推奨します
- SVNとGitとPlasticとの統合も用意されている
- コンテンツブラウザからはコミットやRevert、チェックアウトができる
Building and Cooking
- クッキングは、すべて、反復型、オンザフライなどの方法がある
- 含めたいマップなどの選択する事ができます
- パッキングをオフにすることができる
Marketplace assets advice
最後に
難しくてほとんど理解できず。しかし一度聞いてまとめようとしたので頭の片隅には保存されたはず。
何度も反復する内に定着する事を期待。
メモ
- プロジェクトファイル(unproject)はjsonファイル