カスタムビルド

このページでは、カスタムUE5ビルドにDashをインストールする手順を説明します。注意すべき点は以下の通りです:

  • DashはUE5.1以降とのみ互換性があります。

  • ほとんどの場合、手順はかなり簡単ですが、カスタムUE5ビルドがベースのエンジンソースから大幅に変更されている場合、いくつかの問題が発生する可能性があります。その場合は [email protected] へご連絡いただくことをお勧めします。

  • 通常、企業様には共有Slackチャンネルへ招待し、そこでライブで案内を行ったり、アーティストと直接やり取りしてフィードバックを受け取れるようにしています。ぜひご連絡ください!

  • クラッシュ報告、分析、AI機能などをオフにするには、特定の環境変数を設定できます。このトピックに関する詳細は下の方にあります。

それでは、本題に入りましょう。

ビルド方法は2種類あり、1つはプラグインビルド、もう1つはソースビルドです。両方のファイルは以下のGoogleドライブにあります: polygonflow.io/latest-source-buildarrow-up-right、以下の指示から希望するビルド方法を選択してください。

ビルド方法:

chevron-rightオプション1:プラグインビルド手順hashtag

これは通常のUnreal Engineプラグイン構造であるため、最も簡単な展開モードです。 Epic Games のプラグインガイドarrow-up-right は通常通り適用できます。

まず、 Google Drivearrow-up-right のPlugin Buildフォルダを開き、インストールしたいDashのバージョンに対応するフォルダを開きます。ここにはサポートする各UEバージョンごとに1つのzipがあるので、使用しているUEバージョン用のzipだけをダウンロードしてください。

zipをダウンロードして解凍したら、Dashフォルダを次の場所に配置できます: PROJECT_ROOT/Plugins または ENGINE_ROOT/Engine/Plugins として、 plugins guidearrow-up-right.

Python依存関係のインストール

DashのPythonコードは PLUGIN_ROOT/Content/Python の下にあり、UnrealのPythonから自動的に利用可能になります。 init_unreal.py は変更を必要とせず、すべてのユーザーに対して常に有効です。

Dashプラグインのインストール後にUnreal Engineを初回起動すると、DashはPython依存関係を以下にインストールします: PLUGIN_ROOT/Content/Python/Plugins/UnrealEngineContext/Imports/311/ Unreal Engine 5.4+では、または PLUGIN_ROOT/Content/Python/Plugins/UnrealEngineContext/Imports/39/ Unreal Engine 5.1-5.3では

これはプロジェクトごとに一度(Dashをプロジェクト単位でインストールした場合)、またはエンジンバージョンごとに一度(エンジンにインストールした場合)発生します。ディスク容量を節約するため、Dashは以下の下にインストールすることを推奨します: Engine/Plugins。例としてのエンジンパス: ENGINE_ROOT/Engine/Plugins/GraphNUnrealPlugin, ENGINE_ROOT/Engine/Plugins/Polygonflow/GraphNUnrealPlugin, ENGINE_ROOT/Engine/Plugins/Whatever/GraphNUnrealPlugin.

ディスク使用量

Dashプラグインのサイズは 約1GB インストール直後はです。Python依存関係がインストールされると、合計サイズは 約3GBになります。さらに、Dashはアセットのサムネイル画像などのメタデータをダウンロードするため、さらに容量が増える場合があります。

コンパイル

Dashプラグインは通常のUnreal Engineのコードプラグイン構造に準拠しており、C++プロジェクト内でコンパイルできます。または unreal automation scripts を使用するarrow-up-rightか、または「Package」ボタンを使用して Tools→Plugins メニューから行うこともできます。これにより、カスタムエンジン向けにDashをビルドできます。

アンインストール

単に GraphNUnrealPlugin フォルダを次から削除してください: Engine/Plugins または PROJECT_ROOT/Plugins

また以下も削除してください Documents/Polygonflow フォルダ

chevron-rightオプション2:ソースビルド手順hashtag

このビルド方法では、まず Google Drivearrow-up-right Source Buildフォルダを開き、インストールしたいDashのバージョンのzipをダウンロードします。

このZIPファイルには次が含まれます:

  • Dash:このフォルダにはインストーラーからコピーされたファイルが格納されています。インストールを行わずにバージョン管理や共有フォルダを通じてプラグインを配布することを可能にします。

  • GraphNUnrealPlugin:このディレクトリには、カスタムエンジンビルドにDashを統合するために必要なC++コードが含まれています。

  • init_unreal.py:もしすべてのアーティストのマシンにDashをインストールしない場合、この開発者用ファイルがプラグインのPython部分を起動するエントリーポイントとして機能します。

それではビルドの時間です!

  1. 新しいUnreal C++プロジェクトを作成してください

  2. プラグインをプロジェクトの Plugins フォルダに配置します(Pluginフォルダが存在しない場合は作成してください)。結果は次のようになっている必要があります: Plugins\\GraphNUnrealPlugin

  3. ZIPに含まれている init_unreal.py をプロジェクト内にコピーしてください Plugins/GraphNUnrealPlugin/Content/Python プラグインが Dash とそのライブラリを参照できるようにするため、そうしないと次のようなエラーが発生します: ModuleNotFoundError: No module named 'GN'

  4. ファイルの末尾にあるパスを編集し、プラグインを配布する場合は配置したDashフォルダの場所、インストーラーを使用している場合はインストールディレクトリに合わせてください。init_unreal.py ファイルの末尾のパスを編集して、プラグインを配布する場合はDashフォルダを置いた場所に、インストーラーを使っているならインストール先に合わせてください。

  5. .uprojectファイルをエクスプローラーで右クリックし「Generate Visual Studio project files(Visual Studioプロジェクトファイルを生成)」を選んでVisual Studioプロジェクトを生成してください。

右クリックしてプロジェクトファイルを生成します
  1. Visual StudioやRiderでソリューションを開き、そこからビルドしてください。詳細は 公式ドキュメントarrow-up-right.

Pythonからの利用

プラグインはいくつかの機能をPythonインタプリタに公開しており、UnrealにPythonスタブを自動生成させてIDEで読み込めるようにすることができます。

  1. Unreal Engineを開きプラグインを有効化します。これにより以下が有効になります: Python Script PluginEditor scripting utilities プラグイン

  2. プロジェクト設定に移動し、開発者モードを有効にしてください

開発者モードは自動補完用のPythonスタブを生成します
  1. エディタを再起動してください。

  2. 次を確認してください: PROJECT_ROOT/Intermediate/PythonStub/unreal.py

  3. このファイルをIDEに追加すると、エクスポートされた関数で自動補完が利用できるようになります

バージョン管理から除外するもの

chevron-right両ビルドタイプでバージョン/ソース管理から除外可能なファイル:hashtag
  • Plugins/UnrealEngineContext/Imports/thirdparty (約2 GB) - このフォルダはユーザーマシンごとに作成され、Pythonパッケージを含みます

  • Modules/GN/ContentLibrary/Backends/IESLibrary/IesLibraryContents (約28 MB) - このフォルダは同じフォルダ内にある IesLibraryContents.zip から抽出されます

  • ThirdPartyLicenses - 機能には影響しません(オプション)

  • __pycache__ - Pythonにより生成されます

  • *.pyc - Pythonにより生成されます

  • *.pdf - EULAのような法的文書(オプション)

  • *.md - 法的文書や内部ドキュメント(オプション)

Dash 環境変数

chevron-rightDash 環境変数の説明hashtag

特定の環境変数を設定することで、Dash内の特定の機能やオプションの利用を制御できます。"1"、"yes"、"true" のいずれの使用も true.

DASH_CRASH_REPORT_ENABLED

ファイルパスを含む可能性のあるクラッシュ報告を有効または無効にします。 既定値 = 有効.

DASH_UPDATE_CHECK_ENABLED

起動時のアップデートチェックを有効または無効にします。アップデートチェックは、Dashが初めて表示されたUnrealエディタセッションで一度行われます。Dashは最新バージョン情報を取得するために当社のCloudflareサーバーへリクエストを行います。既定値 - 有効

DASH_ANALYTICS_ENABLED

Dashの使用テレメトリを有効または無効にします。Dashは使用データを定期的に当社のMongoDBクラスタへ送信します。既定値 - 有効

DASH_REGISTER_PREFERENCES_FOR_ANALYTICS

有効にすると、分析オプションを制御するトグルがDashの設定UIに追加されます。 既定値 - 有効

DASH_OPEN_AI_ENABLED

当社のOpenAI Enterprise APIアカウントを通じたAIアシスタントおよびAIアセットタグ付けを有効または無効にします。既定値 - 有効

DASH_REGISTER_PREFERENCES_FOR_OPEN_AI

有効にすると、OpenAI Enterprise APIを使用するAI機能を有効にするトグルオプションがDashの設定UIに追加されます。既定値 - 有効

FAQ

chevron-rightPermission Denied / 読み取り専用 / 書き込み保護ファイル - リビジョン管理の問題hashtag

metadata.jsonファイルに関する読み取り/書き込みや許可拒否のエラーが表示された場合、次の2つの方法を試すことができます:

  1. Windows 11でWindows DefenderがDocumentsフォルダに追加する自動書き込み保護(「保護されたフォルダ」)をオフにしてください。

  2. Perforceなどのリビジョン管理でmetadata.jsonやその他のDashファイルを常に書き込み可能としてマークし、その後インストールプロセスを最初からやり直してください。

chevron-rightプラグインはすべてのマシンでコンパイルする必要がありますか?hashtag

いいえ。ビルドに使用したのと同じエンジンバージョンを使っている各マシンに、事前ビルド済みのC++プラグインを配布できます。

chevron-rightすべてのアーティストのマシンにプラグインをインストールする必要がありますか?hashtag

Dashを実行するためには2つのコンポーネントが必要です:

  • Unreal C++プラグイン

  • Dash Pythonプラグイン

プラグインを各アーティストのマシンにインストールするか、カスタムビルドしたC++プラグインと共にバージョン管理で直接配布することができます。

chevron-rightC++プラグインの依存関係は何ですか?hashtag

C++層の依存関係一覧は以下の通りです:

Microsoftのメモリライブラリ(Unrealも使用)

  • mimalloc.lib

Dashの内部依存関係

  • IndexMeshSymbols.lib

  • _math.lib

  • _array.lib

  • meshoptimizer.lib

  • _gnmesh.lib

chevron-rightDash Pythonプラグインの依存関係は何ですか?hashtag

Dashは一連の内部およびサードパーティライブラリに依存しています。 以下のリストは変わる可能性がありますが、執筆時点で使用されているサードパーティライブラリは次の通りです:

  • abseil

  • eigen

  • embree

  • OpenSubdiv

  • Physix

  • tbb

  • robin-hood-hasing

  • tinyspline

  • FastNoise2

  • fast_obj

  • unordered_dense

  • blinker

  • boto3

  • botocore

  • certifi

  • dateutil

  • jmespath

  • orjson

  • pytz

  • semver

  • s3transfer

  • sentry_sdk

  • urllib3

  • numpy

  • PIL

  • PySide6

  • scipy

  • sklearn

  • shiboken6

  • torch_redstone

一部は純粋なPythonモジュールであり、一部はPythonモジュール内で使用しているC++ライブラリです。

chevron-right新リリースごとにプラグインを再コンパイルする必要がありますか?hashtag

はい。カスタムUnrealバージョンを使用している場合、C++プラグインを再コンパイルし、それに対応するDash Pythonプラグインを併せて再配布する必要があります。 一度構成が整っていれば、プロジェクトを再生成してビルドするだけで済むはずです。 リリース間で変更がある可能性があるため、init_unreal.pyも更新することを忘れないでください。

新しいバージョンのDashが利用可能になると、Dash内で直接通知を受け取れます。通知を受けたら、常に最新のZIPをここからダウンロードできます: https://www.polygonflow.io/download-latest-source-buildarrow-up-right

chevron-rightC++プラグインをコンパイルするときに警告が出ます。どう対処すればよいですか?hashtag

Dashは常に進化しており、アーティストやスタジオにワークフローを改善するための更新や新しいツールを継続的に提供することを最優先にしています。 この急速な開発ペースにより、コンパイル時に警告が残ることがあり、我々はそれを認識していますが重大ではない場合が多いです。 進行中に修正されることもありますが、もしゼロ警告ポリシーを採用している場合は、発生した警告に対処する必要があるかもしれません。

chevron-rightEnterpriseシートは何席必要ですか?hashtag

ツールにアクセスしてパラメータを調整したいアーティスト分のシートのみが必要です。ビルドマシンにはライセンスは必要ありません。

chevron-rightリソースエラー - プロジェクトにファイルをコピーできませんhashtag

Perforceなどのバージョン管理ソフトを使用していて、Dashを開いた際にリソース更新のポップアップが表示され、Resource Errorを示して失敗する場合、以下を行ってください:

  1. Dash 1.9.2以降を使用している場合は、手順5に進んでください

  2. Unrealを閉じて、

  3. PCのエクスプローラで次のパスを開いてください: DASH_INSTALL_ROOT\Plugins\UnrealEngineContext\Imports\GN、

  4. そしてこの ContentUtils.py ファイルを次で提供されているものと置き換えてください: https://drive.google.com/drive/folders/129GZoD6borfOGJ4-sGD_VTAdVMtMgbKr?usp=sharingarrow-up-right

  5. その後UEを開き、アップデートのポップアップは更新をクリックせずに閉じて無視してください

  6. 次に、メインのDashメニューからDashの設定を開き、Content Settingsセクションにある新しい「Skip Resource Acquisition」設定が利用可能になっていることを確認してください

  7. これで次回Dashを開いたときに更新ポップアップが表示されなくなるはずです

  8. 後でDashの更新がある場合、プロジェクトとプラグインをセットアップした1人の担当者(おそらく)が新しいリソースデータを取得してPerforceを通じて全員と共有するために次の手順を行う必要があります:

    1. 新しいバージョンのDashをインストールする

    2. PerforceでプロジェクトのContentフォルダ内にあるPolygonflowフォルダのロックを解除し、書き込み可能にする

    3. Dashの設定でリソース取得を再度オンにする

    4. プロジェクトとDashを開き、ポップアップからアップデートを実行する

    5. これで新しい更新ファイルがPerforceに追加され、チーム全員が利用できるようになります。

最終更新

役に立ちましたか?