株式会社ヒストリアさん主催の第15回UE4ぷちコンの作業進捗。
Control Rigの続き③。
イマココ
とりあえずの動作確認で、Sequencer でシンプルなアニメーションを組んだ。
IK付きのリグだと、こういうのが作りやすくて助かる。
(IKというより、リバースフット(reverse foot) ←リバースフット最高!)
Control Rig はこうなった
「UE4.26で追加されたControl Rig Componentの使いかたについて - ぼっちプログラマのメモ」によると、ランタイムで動かすには ControlRigComponent が必要で、Control Rig Graph の方にもSetup Event
の実装が必要とのこと。
…ということで、Setup Event
, Forward Solve
, Backward Solve
の3つを組んだ。
とりあえず、記録としてスクショを貼るが、誰かの参考になる気がしない…
とにかくRig Graph の実装が地道すぎて地獄だった。
今後、途中でリグ階層に何かを足したり、何かを引いたりしたときに、Setup Event
, Forward Solve
, Backward Solve
の対応がきっちりとれる気がしない。
ひたすら似て非なるコードを組み続けるので、ヒューマンエラーが入っている自信がある。
上述のおかずさんのページに「つらい」と書いてあるが、まったくその通りでした…
本当に、Editor UtilityとかPythonとかで、自動作成した方がいい。
リグ階層
Setup Event
参考までに。(誰かデバッグしてください…)
どちらかというと、膨大さと地道さに愕然としてほしい気分です。
クリックすると拡大されます(だが、見る気にならない)
Forward Solve
本体というべきところ。
クリックすると拡大されます(だが、見る気にならない)
Backward Solve
こちらについては、まだ実際に動かしていないので、鵜呑みにはしないでください。
クリックすると拡大されます(だが、見る気にならない)
気づいたこと:Replace Items のワナ
Epic Games提供のControl Rig Mannequinの中にこういうグラフがある。
- Children ノード
-
hand_l
の子ボーンをまるっと取得(index_01_l
,index_02_l
とかの指ボーンたち)
-
- Replace Items ノード
- Children ノードで取得できた子ボーンたちの名前の「_l」を「_r」に置き換えたボーンを取得
- つまり、
index_01_r
とかの、右手の指ボーンたちが取得される。
- For Each Item ノード
- これらのボーン群(=両手の指ボーン全部)をループを回して処理
なるほど参考になるな!と真似して使っていたのだが、こういう(↓)名前のコントロール(…などのアイテム)があると、困ったことになる。
「Rig_LowerArm_L」
いかにも良く使いそうな名前だが、このコントロールの「_L」と「_R」を置き換えると、こういう(↓)名前になる。
「Rig_RowerArm_R」
こんな名前のコントロールはない!
右の Lower Arm (下腕) だけ処理が行われない事態が発生して、なぜ動かないのか気づくのに小一時間かかった。
皆さんもお気をつけて。
なお、これらの文字列は Name 型なので、大文字小文字は区別されない。
追記:プラグインの紹介。Graph Printer最高です。
ご存じの方も多いかも。
Blueprint グラフをまるっとスクショにしてくれます。
選択範囲のみをスクショにすることも可能。
無料です。