FBX SDK はC++よりもPythonの方が圧倒的に簡単だ!:準備編

連載一覧 "FBX SDK はC++よりもPythonの方が圧倒的に簡単だ!"
  • FBX SDK はC++よりもPythonの方が圧倒的に簡単だ!:準備編 <- now

若干というか、普通にあおり気味のタイトルですいません、yosiです。

実は以前 C++ で FBX SDK を使ってデータを取得するプログラムを作って記事にしていたのですが、人に説明するには煩雑なコードになってしまった上に、他のモデルは多分読み込めないであろうプログラムになってしまって挫折気味です。

C++で書いていると「インタプリタ的に実行できたら楽なのになぁ」と思うことがしょっちゅうありました。

そして FBX SDK はC++の他にPythonへのバインディングが用意してあります。

そこでC++ではなくPythonで FBX SDK を使っていこうと思います。

これで圧倒的に簡単に3Dモデルからデータを取得できます。知らないけど。

Pythonのインストール

まずはPythonをインストールしていきます。

バージョンは2.7です。

なぜ、3.xではないのかというとFBX SDK は3系ではPython3.3までしか対応してません。

そしてPython3.3のインストーラはもう提供されてません。

Python3.6とかでFBX SDK を使おうとすると「ImportError: DLL load failed: 指定されたモジュールが見つかりません。」「ModuleNotFoundError: No module named ‘fbx’」みたいなエラーが出ます。

なので今回は2.7を使います。

https://www.python.org/downloads/

上のリンクからPython2.7のインストーラをダウンロードして、インストールしていってください。

PyCharmの設定

僕はIDEにはPyCharmを使ってます。

無料で使えるコミュニティ版がありますしおすすめです。

こちらからインストールしてください。

https://www.jetbrains.com/pycharm/

インストールしたら適当な名前でプロジェクトを作ります。

File -> Setting -> Project:OpenglSample -> Project InterpreterのProject Interpreterに先ほどインストールしたPython2.7のパスを設定しておきます。

僕の環境では「C:\Program Files\Python27\python.exe」となってました。

FBX SDK の設定

設定方法はこちらの公式サイトに書いてありますが、英語を読みたくない人も多いでしょうし説明していきます。

  1. FBX SDK に行きます
  2. 「Get FBX SDK」から配布サイトにいきます
  3. 「FBX Pythonバインディング」のところにあるインストーラをダウンロードします
  4. それを実行してインストールした後、インストールしたパス(デフォルトでしたら多分「C:\Program Files\Autodesk\FBX\FBX Python SDK」)にアクセスします。
    その中「C:\Program Files\Autodesk\FBX\FBX Python SDK\2019.0\lib」に以下の様にバージョン毎のフォルダがあります。

    今回は「Python27_x64」(自分の環境に合わせて変えてください)の中にある3つのファイルを以下のフォルダにコピーします。
    yourPythonPathはPythonの実行されているパスです(今回はC:\Program Files\Python27)。
    ・Windows→yourPythonPath\Lib\site-packages\
    ・MAC OSX→/Library/Python/x.x/site-packages/
    ・Linux→/usr/local/lib/pythonx.x/site-packages/

これで完了と思われます。

Tools ->Python Console… からコンソールを起動し、

from fbx import *

manager = FbxManager.Create()
manager.Destroy()

と実行してエラーが出なければ多分うまく設定できてます。

あー。C++の時よりも超楽ちん。

連載一覧 "FBX SDK はC++よりもPythonの方が圧倒的に簡単だ!"
  • FBX SDK はC++よりもPythonの方が圧倒的に簡単だ!:準備編 <- now

あわせて読みたい