Edited at

MMD4MecanimのUnity on OSXでのエラー解決

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ファイルしか生成されない」

スクリーンショット 2018-03-21 17.03.46.png

秋田大学プログラミングサークル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に配置できました。

スクリーンショット 2018-03-21 17.37.39.png


ライセンス

(c)Mirai Akari Project