株式会社ヒストリアさん主催の第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 グラフをまるっとスクショにしてくれます。
選択範囲のみをスクショにすることも可能。
無料です。

