bvh を fbx に変換する。Blender の Python を使う。Blender の background モードで bat で動かす。
bvh ファイルを fbx に変換したくて、見よう見まねでやってみたメモ。
- Windows 10
- blender をインストールする
- blender コマンドが使えることを確認
- 入力の bvh ファイルたちがあるフォルダは bat ファイル内に記述
- 出力の fbx たち用のフォルダは python スクリプトに記述
Blender バージョン
PS C:\> blender --version Blender 2.83.20
bvh_fbx.bat
@echo off for %%f in (C:\Users\r9\Desktop\data\*.bvh) do ( echo %%f blender --background --python C:\Users\r9\Desktop\convert.py -- %%f ) pause
convert.py
import bpy import sys from pathlib import Path output_dir_path = 'C:\\Users\\r9\\Desktop\\fbxoutput\\' def import_and_export(path): bpy.ops.import_anim.bvh( filepath=str(path), filter_glob='*.bvh', target='ARMATURE', global_scale=1, frame_start=1, use_fps_scale=False, use_cyclic=False, rotate_mode='NATIVE', axis_forward='-Z', axis_up='Y' ) fbx_out = output_dir_path + path.name + '.fbx' print(fbx_out) bpy.ops.export_scene.fbx( filepath=fbx_out, axis_forward='-Z', axis_up='Y', use_selection=True ) def main(): print(sys.argv[-1]) import_and_export(Path(sys.argv[-1])) if __name__ == '__main__': main()
実行
PS C:\Users\r9\Desktop> .\bvh_fbx.bat
感想
想像以上に bpy 経由で Blender を操作できるようで、驚いた。