MMD4Mecanimを使って、Unityにミライアカリの.pmxファイルをインポートして3Dモデル表示した際につまづいたのでメモ。
#この記事の要約
Unity on MacでMMD4Mecanimを使って.pmxファイルを.fbxファイルに変換する際にxmlファイルしか生成されない問題が起こった。pmx2fbx_275がversion 8.0.0以上のlibiconv.2.dylibを参照するようにパスを指定すると解決する。
#環境
Mac OS X High Sierra 10.13.3
Unity 2018.1.0b8
MMD4Mecanim Beta
ミライアカリのモデルはニコニ立体で配布されています→
http://3d.nicovideo.jp/works/td31639
#UnityにMMD4Mecanim、MMDモデルをインポート
@ngron さんのQiita記事などを参考にしてください
#問題
####「上の記事を参考にMiraiAkari_v1.0.MMD4MecanimのInspectorからProcessをクリックするも、fbxファイルが生成されず、xmlファイルしか生成されない」
秋田大学プログラミングサークルTNPのガナリヤさんが「MMD4MecanimのMacでのエラーについて」というタイトルで、同じ問題についての記事を書いてくださっていますが、自分の環境ではこれだけでは解決しませんでした。
#解決の流れ
##①UnityのEditorログを見る
公式によるとmacでは
~/Library/Logs/Unity/Editor.log
にあるそうです。
開いて見ると、ガナリヤさんの記事にある通り、確かに
dyld: Library not loaded: /opt/local/lib/libiconv.2.dylib
Referenced from: /Users/Shared/Unity/MiraiAkariTest/Assets/MMD4Mecanim/Editor/PMX2FBX/pmx2fbx_275
Reason: Incompatible library version: pmx2fbx_275 requires version 8.0.0 or later, but libiconv.2.dylib provides version 7.0.0
との表記が。
pmx2fbx_275(自分の環境では/Users/Shared/Unity/MiraiAkariTest/Assets/MMD4Mecanim/Editor/PMX2FBX/pmx2fbx_275にありました)がversion 8.0.0ではなくversion 7.0.0のlibiconv.2.dylibを参照してしまっているため問題が起こっています。
##②iconvをアップデートする
ガナリヤさんの記事、@lapun さんの記事を参考に
brew update
brew install libiconv
でlibiconvをアップデートして見るも、問題は解決せず。
##③pmx2fbx_275の参照ライブラリを変更する
ターミナルで
$otool -L {pmx2fbx_275へのパス}
と叩くと
/opt/local/lib/libiconv.2.dylib (compatibility version 8.0.0, current version 8.1.0)
とあります。しかし、自分の環境では/opt/local/libにlibiconv.2.dylibがありませんでした。/usr/local/opt以下を見るとlibiconvディレクトリがあり、
$ otool -L /usr/local/opt/libiconv/lib/libiconv.2.dylib
と叩くと
/usr/local/opt/libiconv/lib/libiconv.2.dylib:
/usr/local/opt/libiconv/lib/libiconv.2.dylib (compatibility version 9.0.0, current version 9.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.0.0)
と返ってきたので、こちらを参照するように変更しました。
$ install_name_tool -change /opt/local/lib/libiconv.2.dylib /usr/local/opt/libiconv/lib/libiconv.2.dylib {pmx2fbx_275へのパス}
改めて
$otool -L {pmx2fbx_275へのパス}
と叩くと
/usr/local/opt/libiconv/lib/libiconv.2.dylib (compatibility version 8.0.0, current version 8.1.0)
とあり、参照するパスが確かに変わっています。
#結果
以上の修正をした上でUnityエディタに戻り、processをクリックすると、ミライアカリの.fbxが生成され、Sceneに配置できました。
#ライセンス
(c)Mirai Akari Project