WindowsでUnity用のFBX SDKをビルドする
Unity用のFBX SDK(com.autodesk.fbx)のビルドをやってみたところ、READMEの手順通りにやってもうまく行かなかったので、忘れないうちにメモを残します。
試したPC環境
- Windows 10
- Chocolatey 0.10.14
Unity 2018.1のインストール
Unity公式サイト からUnity Hub等でインストールしてください。
(ちなみに、私のPC環境にはすでに 2018.4.11f1
がインストール済みだったため、改めて 2018.1
はインストールしませんでしたが、後工程でエラーはでませんでした。)
CMakeのインストール
以下のコマンドで 3.12
をインストールします。
choco install cmake --version=3.12.4 --installargs 'ADD_CMAKE_TO_PATH=System'
ADD_CMAKE_TO_PATH
をつけ忘れた場合は、以下のパスを環境変数 PATH
に手動で追加してください。
C:\Program Files\CMake\bin
(ちなみに、私のPC環境にはすでに 3.19.5
がインストール済みだったため、改めて3.12はインストールしませんでしたが、後工程でエラーはでませんでした。)
SWIG 3.0.12のインストール
以下のコマンドで 3.0.12
をインストールします。
choco install swig --version=3.0.12
試しに、最新版の 4.0.2
をインストールしたところ、後工程で以下のようなエラーが発生してしまうので、 3.0.12
をインストールしましょう。
com.autodesk.fbx\Source\fbxproperty.i(87): error : A deprecated csdestruct typemap was found for FbxPropertyFlags, please remove it and replace all csdestruct, csdestruct_derived and csfinalize typemaps by the csdispose, csdispose_derived, csdisposing and csdisposing_derived typemaps.
Python 2.7のインストール
Python 2.7をインストールします。以前、インストール方法の記事を書いたことがあるので、ご参照ください。
WindowsにPython2.7とPython3.7が共存できるようにインストールする
※Python 3系のインストールは不要です。
Visual Studioのインストール
Visual Studio公式サイト から Visual Studio Community 2017
をインストールします。
※READMEには Visual Studio Community 2015
と書いてありますが、 2017
でないとダメでした。
以下も追加でインストールする必要があります。
-
.NET デスクトップ開発
(C# sdk) -
C++ によるデスクトップ開発
(C++ sdk) -
ユニバーサル Windows プラットフォーム開発
(Universal Windows App Development Tools)
FBX SDKをインストール
FBX SDK 公式ページ から FBX SDK 2020.0.1 VS2017
のインストーラーを入手してインストールしてください。
※Python版ではなくC++版をインストールしてください。
インストールできたら、以下のパスを環境変数 PATH
に追加してください。READMEには記載がありませんが、後工程でCMakeが参照するため、この手順は必要です。
C:\Program Files\Autodesk\FBX\FBX SDK\2020.0.1\lib\vs2017\x64\release
ビルドする
com.autodesk.fbx
フォルダーで以下のコマンドを実行します。READMEには build.cmd
と書いてありますが、そのようなファイルは存在しないためご注意ください。
python build.py
build/install/com.autodesk.fbx
フォルダーが生成されていれば成功です!
エラーが出た場合
もし、エラーが発生した場合は、エラーメッセージを読んで1つずつ修正していきましょう。
File Not Found
のようなエラーメッセージが表示されている場合、環境変数 PATH
の定義漏れが濃厚です。
また、再度ビルドする際には、 build
フォルダーを削除した上で実施した方がよいです。私の環境ではこれによってエラーメッセージが消えたこともありました。
Unityプロジェクトに導入する
生成された com.autodesk.fbx
フォルダーを、使用したいUnityプロジェクトの Packages
フォルダーの直下にコピーすればOKです。
Unityでプロジェクトを開いた際に、Consoleに以下のようなエラーが発生する場合があります。
Assembly has reference to non-existent assembly 'UnityEngine.TestRunner' (Packages/com.autodesk.fbx/Tests/Runtime/BuildTestsAssets/FbxBuildTestAssets.asmdef)
FbxBuildTestAssets.asmdef
をInspectorで開き、 Test Assemblies
をONにして Apply
すれば、エラーは消えます。
さいごに
いろいろつまづきポイントがありましたが、何とかビルドできてよかったです!
作業にあたり、以下の記事を参考にさせていただきました。ありがとうございました!