自分でIKリグやIKリターゲティングを設定したことがなかったので、いざやってみたら大変だった。コツが分かっていないせい。ある程度は同じように動くのに、なぜか上下に動かない。すり足でしか歩けない状態だった。結局、なんてことはない。RootBoneに設定したお尻の骨をチェーンに含めちゃいけなかっただけ。そんなこと知らないからね。これ1つに10時間以上掛けたかもしれない。ソルバの設定が悪いせいなのか?とか、いろんな設定方法があるから一通り試さざるを得なかった。そんなことをするよりも最初からVRM4Uさんが作ってくれるIKリグをよく観察して真似してみれば良かったんだ。大失敗。
しかしそもそもこれは必要ないはずのこと。エディタでもシッピング版でも互換スケルトンがちゃんと動くんだ。コマンドラインからの起動(マルチプレイのデバッグ用)だけがちゃんと動かない。どうしてなのか分からないけど、その原因を調べていたら先に進めなくなる。もうIKリターゲティングをやるしかない。それでどうしてもダメってなったら公開する時だけIKリターゲティングをやめるとか。それはそれで面倒な気もするが。変数を作っておいてすぐに切り替えられるようにしておけばいいのかな。
モーフターゲットのコピーも諦める。どうやらレンダリングの問題らしい。ランタイム時にスケルタルメッシュを弄る場合は、レンダリングを調整しないとアクセス違反だかになるっぽい。D3D12Bufferだかで落ちる。DX11にしてみてもダメだった。FSuspendRenderingThreadなんてのも使ってみたんだけど上手くいかなかった。これを使うのにRenderCoreなるモジュールが必要になったりしてコンパイルも時間が掛かるし、ほんと進まなくなっちゃう。
もう一つ問題を抱えていて、新しく追加した入力キー(アクション)がセッション中に動かないw いや、キーの受付はされているのかもしれないんだが。RPCだかレプリケーションだかの問題なのか。下手にC++で書いているせいで余計な苦労をしているかも。C++プロジェクトで作っちゃったせいで、それなりにキー入力処理やジャンプ処理なんかが最初から書いてあるから、そこに追加しちゃったわけだけど。もうキャラクター操作だとかアニメーションだとかBPメインでやるべきなんだと思う。今後は攻撃モーションだのコリジョンだのやるようになるはずだが、そんなの絶対BPでやるしかないんだろうし、もっとBPで頑張る。
(追記)
と思ったけど、BPのプロジェクトを作ってキャラクター操作部分がどうなっているのか眺めてみたら難しそうだったから、やっぱりやめた。C++とBPのいいとこどりでやっていく。
(更に追記)
と思ったけど、やっぱりキャラクター操作関連は全てBPでやることにした。カメラも自分で設定する。この辺りの基礎をちゃんと理解しておく必要があると思う。
コメント
[…] 【UE5】いろいろ妥協する […]