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) =
と書き換え。
いい感じで動きがずれた。
No comments:
Post a Comment