LoginSignup
6
8

More than 5 years have passed since last update.

アニメーションを含むUSDZを生成する

Last updated at Posted at 2018-12-10

アニメーションを含まない場合は
https://qiita.com/noppefoxwolf/items/2a410ebe2db919fe236d
の記事を参考にobjからusdzへ変換するのが手っ取り早いです。

アニメーションを含む場合(今回はキーフレームの補間アニメーションを指します)、gltfからusdzへ変換する方法でうまくいきました。

Blenderでgltf形式でexportする

デフォルトではgltf形式でエクスポートする事が出来ないのでaddonを追加する

scripts/addons/io_scene_gltf2フォルダをblenderのscripts/addons/へコピー
[Blenderユーザー設定]>[アドオン]からImport-Export glTF 2.0 formatにチェックを入れて有効化する

exportからglTF2.0 (.gltf)を選択して適当な名前で保存する。
この際に、テクスチャなどの関連するファイル名に2バイト文字が含まれないように注意する。

gltfをusda形式へ変換する

を使って変換します。
以下うまくいった環境

python - macOSに入っているsystemのPython
USD - USDPythonではなく自前で後述のパッチをあててビルドしたもの

ビルドスクリプトへパッチをあてる

py_initializeで突然死んだりするのでパッチをあてる。

build_scrips/build_usd.py
def InstallUSD(context, force, buildArgs):
    with CurrentWorkingDirectory(context.usdSrcDir):
        extraArgs = []

        if context.buildPython:
            extraArgs.append('-DPXR_ENABLE_PYTHON_SUPPORT=ON')
+            if MacOS():
+                import distutils.sysconfig
+                pyLibPath = distutils.sysconfig.get_config_var('LIBDIR')
+                pyIncPath = distutils.sysconfig.get_config_var('INCLUDEPY')
+                extraArgs.append('-DPYTHON_LIBRARY=' + pyLibPath + '/libpython2.7.dylib')
+                extraArgs.append('-DPYTHON_INCLUDE_DIR=' + pyIncPath)

ビルド。適宜sudoで

python USD/build_scripts/build_usd.py /opt/local/USD

少し時間がかかる。
終わったら

set -x PYTHONPATH /opt/local/USD/lib/python
set -x PATH $PATH /opt/local/USD/bin

とかにパス通しておく

usdaへの変換

直接usdzへ変換することは出来ないようなので、一度usdaへ変換する

python gltf2usd.py -g file.gltf -o file.usda --arkit

--arkitを付けると多分最適化される。

usdzへの変換

xcrun usdz_converter file.usda file.usdz -color_map uv.png -v -a -l

適当にオプションを付けてusdz_converterでusdzへ変換する

6
8
0

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
6
8