FBX SDK(Python)でunityちゃんを解析し、WebGLでアニメーションする!
前書き
最終目標
unityちゃんのfbxファイルを、Python版のFBX SDKを用いて解析し、WebGLにおいてスキンメッシュアニメーションを再生することを目指します
WebGL関連のライブラリは使いません
開発環境情報
Windows 10
Visual Studio Code
Python 2.7
FBX SDK 2017
(作成したPythonコードは、FBX SDK 2020.0.1でも動作することは確認済み)
主な参考サイト
FBXの解析に関して
「〇×(まるぺけ)つくろーどっとコム」さんの「FBX習得編」
WebGLに関して
WebGL 開発支援サイト webgl.org
これら二つのサイトに、目を通している、あるいは目を通しながら、本記事を読んでいることをほぼ前提としています
対象者
WebGLでスキンメッシュアニメーションを組みたい方
FBX SDK を使って、fbxファイルから必要な情報を抽出する所から始めたい方
未達成の内容について
同様のことがしたくて、既に色々調査された上で、本記事を見つけられた方のために、先んじて書いておくと、解決出来なかった問題が一つあります
それは、「Python版のFBX SDKを用いて、マテリアルからDiffuseに設定されているテクスチャのファイルパスを取得する」ことです
Pythonでのテクスチャのファイルパスの取得方法に期待して本記事を読まれている方には申し訳ないですが、Pythonだと多分不可能かと思われます
マニュアルを読む限り、「PythonではC++のtemplate関数は提供しない」と記載されており、かつ、FBX SDK 2017において、templateを使わない版の関数が削除されたらしいです
テンプレート関数はPythonで使えない
テンプレート関数ではないClassId指定の関数が削除された
そのため、C++で作っても構わない方は、最初からC++版のSDKを使った方がよいと思います
(もし、Pythonで「GetSourceObject」関数を呼び出す方法をご存じの方がいれば、教えてください...)
本題
本記事は、「FBX解析編」「WebGL編」の2部構成になります
書いてみると長くなってしまったので、記事を分けて投稿することにしました
1. FBX SDK(Python)を使って、unityちゃんのfbxを解析する
2. unityちゃんをWebGL上でスキンメッシュアニメーションさせる
備考
本記事の内容を実際に私が作成した際のソースコードを一応GitHub公開していますので、必要であれば、ご確認ください
ソースコード