Help us understand the problem. What is going on with this article?

HDKでアニメーションをSOPに取り込む

SOP でなんでも処理したいマンの最大の悩み「SOPでアニメーションを扱いたい!」を解決すかもしれない、FBX アニメーションを取り込む SOPノードを開発しました、という話をしたいと思います。

モチベーション

Houdini 18ベータテスト中のある日、BoneDeform のマニュアルに以下の記載をみつけました。
https://www.sidefx.com/docs/houdini/nodes/sop/bonedeform.html

Since Houdini 18.0, Bone Deform can also be used with point attributes in its second and third inputs.
The capture paths in the boneCapture attribute in its first input are matched with the point name attribute in the second and third inputs. Instead of using the rest transform within boneCapture, it is taken from the second input’s P and transform (matrix3) point attribute values. Instead of using the transforms from bone objects, they are instead taken from the third input’s P and transform (matrix3) point attribute values.

解説すると、Houdini 18 の Bone Deformer はインプット2 及び 3 にポイントアトリビュートを使用できるようになりました。bone object の代わりに、ポイントアトリビュートの name は boneCapture にマッチした名称、P、transform(matrix3) へ姿勢を与えることでボーン変形を解けるようになりました。インプット2 はバインドポーズ、インプット3 はカレントポーズになります。

と、これを発見した時に、あとはアニメーションさえ取り込めればいいのでは? という思いに至りました。

FbxAnimationSOP

前置きはこれくらいにして、FBXアニメーションを読み込み SOP を開発しました。Houdini をゲーム開発で活用している、活用していきたいと奮闘されている同志の助けになればと思いソースコードを公開しました。
https://bitbucket.org/hideki/houdinifbxanimation

ビルド方法を解説します。

準備

事前に用意するものは以下です

  • Houdini 18
  • Visual Studio 2017
  • cmake
    • 恐らくv3.6以上

ビルド

ビルドはcmakeでプロジェクトファイルを生成する必要があります。プロジェクトファイルは以下の手順で作成できます。 ※フォルダは例ですので、環境に合わせて変更してください。

>mkdir d:\work
>cd d:\work
>git clone https://bitbucket.org/hideki/houdinifbxanimation.git 
>cd houdinifbxanimation
>mkdir build
>cd build
>cmake -G "Visual Studio 15 2017 Win64" ..

Houdiniのプラグイン開発に慣れていない方は以下の手順でコマンドプロンプトを開いてください。
1. Houdini 18を起動
2. WindowsメニューからShellを選択
image.png

無事プロジェクトファイル (SOP_FbxAnimation.sln) が生成されたら、Visual Studioでプロジェクトを開いてビルドします。
ビルドが成功したら
%USERPROFILE%/Documents/houdini18.0/otls
に SOP_FbxAnimation.dll が追加されます。

fbxanim.gif

BoneDeformと併用すると
fbxanim2.gif

最後に

コードの解説をと考えていましたが締め切りを死守するために割愛しました… 公開したコードはこれから Houdiniでプラグインを実装したいと考えられている方に向けて、出来るだけコンパクトに実装しています。Houdini で FBXSDK を扱う方法や SOPノードでジオメトリを生成する方法を理解するためのサンプルコードとしても活用してもらえれば幸いです。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした