Feb 17, 2016

Houdini : CROWD | Audience Random Action




Note of Crowd Audience in Houdini.


Crowdに対してSideEffectsのセミナーなのでいろいろ教わったのと仕事でスタジアムの観客をHoudiniで作ったりしてるのでメモ。




[ Agent Bakeをするときの注意点 ]
① MIXAMOなどのモーキャプデータをCHOP内でループさせる。

短い秒数のカットで使用するCrowdだとしても2000Fくらいのアニメーションをベイクしないと動きが似てきたりしたので注意。

Fetch CHOPの設定 : MIXAMOのデータの種類によってFBX内のBorneの名前が違うので
              状況によって以下のChannnel Nameを書き換える。

*/*の多様性 : ただ余計なchannelデータも読みこんでしまう危険性も・・・

     
Hips/*
RHipJoint_To_RightUpLeg/*
RightUpLeg_To_RightLeg/*
RightLeg_To_RightFoot/*
RightFoot_To_RightToeBase/*
RightToeBase_To_RightToeBaseEnd/*
LHipJoint_To_LeftUpLeg/*
LeftUpLeg_To_LeftLeg/*
LeftLeg_To_LeftFoot/*
LeftFoot_To_LeftToeBase/*
LeftToeBase_To_LeftToeBaseEnd/*
LowerBack_To_Spine/*
Spine_To_Spine1/*
Neck_To_Neck1/*
Neck1_To_Head/*
Head_To_HeadEnd/*
RightShoulder_To_RightArm/*
RightArm_To_RightForeArm/*
RightForeArm_To_RightHand/*
RightFingerBase_To_RightHandIndex1/*
LeftShoulder_To_LeftArm/*
LeftArm_To_LeftForeArm/*
LeftForeArm_To_LeftHand/*
LeftFingerBase_To_LeftHandIndex1/*

- Set Fetch = OP Control Channels
- Set Select = Create Channels
- Set Channel Names = OP and Channel Names


自分が使用したFBXのボーンの場合はこんな感じのChannelに書き換えた。



Trim CHOP

- Set Unit Values = Absolute
- Set Start and End = そのモーションの始点と終点
- Set Units = Frames [ common tab ]

Cycle CHOP


Null

- Set Export Prefix = ループ処理したいFBXのSubnetを指定。

Export マークをクリック。茶色のやつ。





② 別のモデリングに対してFBXのアニメーションをバインドする方法。

同じTポーズのモデルを用意する。ArembicでガイドとなるオブジェクトをHoudiniからエクスポート。
Houdiniに読み込む。Maxからエクスポートした時にArembicで書き出した方がNormalやUVなどの
情報がHoudiniに正確に読み込めたので注意。


このスクリーンショットのような流れ。
Materialは意味ないっぽい。Deformの前までのノードが有効となる。
一度FasetをDeformの後にしてAgent BakeしたらFasetの結果が無効になってたりした。



③ Agent Bakeの実行と注意点

後にCrowd Source : Randomize Default Stateを使用して色々なモーションを混ぜたい場合
現状は

Agent の名前 & Agent Clipの名前 に共通性をもたせる

たとえば audience : action_1 , audience : action_2 , audience : action_3
というふうにStateに対して共通のルールをつけること。

Crowd SourceのRandomize Default Stateの設定


混ざった。

④ Crowd Simを使わないでそれぞれのAgentのアニメーションをずらす方法


20000人とかのCrowdすると10とか20パターンのモーションだと動きが似すぎてしまう。
Crowd SimをかけてTime Shiftをかける方法もあるが、観客などの立ち位置が動かない場合
はCrowd Simを使わないでやりたいなと。重いし。


Crowd SourceをAllow Editing Contents して中に入る。
set_clipnames _cliptimesというAttribute Wrangeleがあるので

cliptimes[0] = (@ptnum/10) = @Time;
と書き換え。


いい感じで動きがずれた。


No comments:

Post a Comment