Unreal Engine 4 UE4学習 18日目 Kickstart エンジン

UE4

はじめに

  • なにか目的を持って作りたい為UE4を始める
  • UE4一ヶ月でどれくらいのレベルになるのか検証

今回はこちらを見ていきます

4.エンジン

理念と概念

Model は最初からエンジンにとって非常に重要なもの。

エンジンの習得及び試行錯誤が容易であることが非常に重要だった

UE1 to UE2

  • エンジンとゲームは一体。プロジェクトファイルはなかった
  • パックされたディレクトリの中にアセットは配置されていた
  • すべてのアセットとレベルは1つのフォーマットの中に単独で存在していた。配布する段階と開発段階は等しいものだった

UE3

  • 今では内容は配布前にクックされます
  • クックされてもアセットとレベルはエディターから開けます

UE4

  • 1~3とは大きな変更があり、プロジェクトが導入されました。それに伴い多くのものも導入されました。
  • コンテンツは今アセットごとに保存されます
  • Unrealscriptはなくなり C++だけになりました。
  • 多くのツールが導入されました。

俯瞰図

  • エンジンとプロジェクトが別々にその間にエディターがある
  • エディターはエンジンの一部
  • ソースコントロールはエンジンとプロジェクトに分かれる
  • プロジェクトを配布可能な状態にするまでのステップ
    • ビルド
    • クッキング
    • ステージング
    • パッケージング

スキマティック

Source Code

  • ソースコードは複数のソースから得られる
  • エンジン毎のソースコードを管理する為のプラグインがある
  • エンジンはブランチを作り独自バージョンを使用することもできる
    • 独自のエンジンは公式更新後に管理が難しくなる。
      • それを管理する為に ソースコントロールと 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

Cooking/Packaging/Shipping

build
  • パッケージ化の第一段階で行う必要のある作業
  • 異なるビルド設定がある
  • マルチプレイヤーゲームかどうかによってビルドを変えたりできる
  • ステートを設定できる。ステートはデバッグバージョンなどによって変える。
    • 開発ならブレークポイントの情報を配置できる
    • デバッグならシンボルが使用できる。最適化は行われない
    • テストはシッピングと同じ状態。シンボルはなく最適化が行われているが、コンソールコマンドや統計の情報は使える
    • シッピングはシンボルなし、最適化されていてコンソールコマンドなども使用できない
Cooking
  • ビルドが終わった次の段階で行うもの
  • クックサーバー経由でオンザフライでクック可能
  • 古いデータなどが派生データキャッシュによって置き換えられ開ける状態に変換される
  • すべてのコンテンツを変換するため、シッピングのためのプロセスの中で最も長くかかるステージ
Staging
  • パッケージ化を開始するために必要なファイルをコピー及び収集する
  • ファイルを移動させるのみ
  • 保存されクックされる
Packaging
  • プラットフォームのネイティブ配布形式にして異なるフォルダに保存する
周辺ツール

UAT Unreal Automation Tool

  • ほとんどの作業を行う
  • コマンドレットから実行可能
    • それ以外にも実行方法はあるが行う仕事は同じ
  • UATはデバイスプロファイルによって駆動される
  • ツールの保存先
    • Windows10 のデフォルト: C:Program FilesEpic GamesUE_4.25EngineBinariesDotNETAutomationTool.exe
  • UnrealFrontEnd.exe からも行える。設定が必要。
    • 一度設定をしておけば使い回せる

Device Profiles

  • 組み込むテクスチャの解像度などを制御する
  • 起動方法
  • バイスごとにLOD別の設定などが行える。
    • iosでは解像度を 1024にするなど

Calture

  • 任意のカルチャを埋め込むことができる
  • 異なるテキストや音
  • 国別での設定はこのあたりで行う模様
    • サンプルとなるようなプロジェクトファイルがなかったためスキップ
  • 表示方法

Signing/Encryption

  • 署名と暗号化
  • パッケージに暗号化を施し中身を見ることができなくする

Cooker Statistics

  • Packaging に関して行った内容の情報を確認できる

Asset Audit

  • Cooker Statisticsとほぼ同じことを行う

Config Files

  • カテゴライズが難しかったため全体図でも左上隅に配置されたもの
  • エンジンが使用しているコンフィグの階層
  • フォルダー内には2番目の階層がある
  • プロジェクトにはコンフィルファイル・フォルダーがある

    • DefaultEngine.ini は最も重要
      • 含まれるすべての設定がある
EngineConfigBase*.ini
  • すべての親
  • Windows 10 のデフォルトフォルダ C:Program FilesEpic GamesUE_4.25EngineConfig にある
  • これよりまだ説明はあるがすぐには関係する事はなさそうなのでスキップ。

アドバイス

Managing Engine Builds エンジンビルドの管理

ソース/流通 戦略

  • チームのマンパワーと開発時間に依存する
  • 一般的な推奨事項は可能な限りエンジンの変更を最小化する事
  • 変更の必要がある場合は分離するかプラグインを使ってください
  • エンジンのアップグレード

Naming Conventions and Standards 命名規則と標準

  • 我々が使っている標準に従うことをおすすめします
    • 外部からコンテンツを導入、人員を雇用する場合にやりやすくなる為
  • Michael Allar氏のコミュニティで作成されたスタイルガイドは非常に優れている
  • 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

  • マーケットプレイスには多くの優れたコンテンツが有る
  • マーケットプレイスはルートフォルダにダウンロードされる
  • これらを使用する場合は実際のプロジェクトではなく一時プロジェクトとして使うことを推奨します
    • そこで必要な整理や調整を行い、適切なフォルダに保存する
    • UEは相対パスではなく絶対パスで記録している
    • 一時プロジェクトを他のプロジェクトに移行(マイグレート)する方法がUEにはある

      • すべての依存関係が自動的に収集される

最後に

難しくてほとんど理解できず。しかし一度聞いてまとめようとしたので頭の片隅には保存されたはず。

何度も反復する内に定着する事を期待。

メモ

  • プロジェクトファイル(unproject)はjsonファイル
タイトルとURLをコピーしました