LoginSignup
1
1

More than 3 years have passed since last update.

[UE4] Unreal EngineのPhysXをビルドする方法

Last updated at Posted at 2021-03-24

検証バージョン:4.26.0

はじめに

UE4の物理シミュレーションは現在Chaosの開発を行っていますが、元々はPhysXを使用しており、今もまだこちらを利用することがあります。エンジンはPhysXは.dllで配布して利用しますが、本記事で説明する手順でPhysXをビルドをすることによってシンボルなどを作成してデバッグに役立てる事ができます。

例えばPhysXのメモリをトラッキングしたい場合、MallocProfilerを使用する際にPhysXのビルドをする/しないの違いによって、コールスタックに以下の差異が出てきます。

・PhysXビルドなし
2021-03-29_01h36_32.png

・PhysXビルドあり
2021-03-29_01h36_04.png

また、ここで説明する内容は以下のリンクの内容を詳細に説明したものとなります。
https://www.ue4community.wiki/legacy/physx-source-guide-0mvucbzi

手順

本記事では以降で詳細な方法を説明しています。

1. Visual Studio 2015をインストール

PhysXはVS2015でビルドする必要があるため、以下のサイトからVisual Studio 2015をダウンロードします。[Visual Studio 2015 and other Products]の[ダウンロード]を選択し、CommunityやProをダウンロードします。VS2015のインストール時には"C++によるデスクトップ開発"にもチェックを入れてインストールしておきます。

UE4の4.26では現在VS2019が標準で利用するバージョンなため、ここがやや手間がかかる部分です。

2. 一部のソースコードを修正

PhysXのビルドを行う前に事前に一か所ソースコードの変更を行います。
以下のファイルの1か所をコメントアウトします。この行はPerforceにアクセスするためのコマンドなため、コメントアウトしない場合はビルド時に失敗のメッセージが表示されます。

【変更ファイル】
\Engine\Source\Programs\AutomationTool\Scripts\BuildPhysX.Automation.cs

【変更箇所】
23行目の[RequireP4]をコメントアウトする。

<変更前>
2021-03-24_12h18_54.png
<変更後>
2021-03-24_12h19_17.png

3. ビルド実行

\Engine\Source\ThirdParty\PhysX3\にあるバッチファイルBuildProfile_Win64.batを実行します。
問題なくビルドが完了したら、以下のように成功が表示されます。

2021-03-24_16h31_14.png

失敗しているような場合は、ビルド環境が問題の可能性があります。

例えばバッチファイルを実行した際に以下のようなエラーが出る場合はVS2015のビルド環境に問題があります。CMakeのビルドに失敗しているので、VS2015にC++のビルドに必要なコンポーネントが不足している可能性があります。

2021-03-24_14h23_38.png

-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
ERROR: CMake Error in CMakeLists.txt:
ERROR: No CMAKE_C_COMPILER could be found.
ERROR:
ERROR:
ERROR:
ERROR: CMake Error in CMakeLists.txt:
ERROR: No CMAKE_CXX_COMPILER could be found.
ERROR:
ERROR:
ERROR:
-- Configuring incomplete, errors occurred!

変更してコンポーネントを追加しても問題ないですが、一度VS2015を再インストールしてC++コンポーネントを選択して入れなおすのも良いです。

変更する場合は、[コントロールパネル]の[プログラム一覧]から選択できます。
2021-03-24_16h32_47.png
再インストールする場合は、[カスタム]インストールを選択してコンポーネントを一覧から選択してください。
2021-03-24_14h26_03.png

パッケージにデバッグシンボルを含める場合

上記が成功していればPhysXのシンボルも作成されるので、ProjectSettingsの設定からIncludeDebugFilesを有効にするだけです。

Win64以外のプラットフォーム向けにビルドする場合

バッチファイルBuildProfile_Win64.batの中身を見ると以下のようになっているので、TargetPlatformsの部分をビルドしたいプラットフォーム名称に変更するだけです。

@echo off

pushd ..\..\..\Build\BatchFiles
call RunUAT.bat BuildPhysX -TargetPlatforms=Win64 -TargetConfigs=profile -TargetWindowsCompilers=VisualStudio2015 -SkipCreateChangelist
popd

選択したプラットフォームによってはビルドが通らないこともあるため、その場合はフォーラムなどでお問い合わせください。

1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1