背面騎乗位モーション/糸引きエフェクト
あっという間に3月も終わろうとしています。みなさんはいかがお過ごしですか?私は時間が経つのが速すぎて震えが止まりません。
というわけで、今回は一連の背面騎乗位のモーションと糸引きエフェクトを作ってきました!
フォロワー以上限定無料
無料プラン限定特典を受け取ることができます
無料
クリエイター支援サイト Ci-en
フォローするにはユーザー登録が必要です。
リンリン 2024/02/04 16:44
今回は水着の作成に挑戦してみます。
市販の水着モデルを着せるのもいいですが、Unityで乳とかを揺らせたらにいかんせん貫通しまくっていたので、もっと体にフィットしたものならば貫通も抑えられるのではと思って自作するに至りました。ちなみに後述ですが関係なかったです。
作り方はこちらの動画を参考にしました。とても分かりやすいので神です。
【Blender】だいたい1分でわかるパンツの作り方【VOICEROID・琴葉茜】
見よう見まねで水着の型を切り抜きます。ソリッド化はまだかけません。
軽くリトポロジーして1回サブディビジョンサーフェスをかけます。
そして同じくメッシュフィルター/面セットをリラックスで縁の形を整えます。ちなみに上の動画を観るまではこの作業に一番悩まされていました...
ここでソリッド化を付けて適用します。ソリッド化のパラメーターでふち/ふちのみにチェックを入れると裏面を消してくれます。
いったん複製して、ハイポリにして細部を作り込みます。縁に厚みをつけるとよりそれっぽくなります。
次に縫い目を作ります。縫い目部分をフリル状にすると縫い目に見えます。見えるのか...?
やり方はこちらの動画を参考にしました。
フリルの作り方【Blender3.6】
あとはノーマルマップをローポリに焼き付けて、着色して質感を付けて完成です!
手持ちの水着(?)と照らし合わせて一番それっぽいのを見つけました。
残りは体のウェイトを水着に転送するだけですが、下乳と胴体のポリゴンが入り組んでいて正しく転送されませんでした。そこで体と水着をそれぞれおっぱいとその他の部分を頂点グループで分けて、それぞれウェイト転送したらキレイにできました。
あとは出力して動作確認!
本題の乳揺れの貫通対策ですがいくつかの方法を試してみました。
左から
①おっぱいのメッシュを極限まで平らにする(乳袋の下は空洞状態)
②水着に体と同じアーマチュアを共用させる
③水着に自分のアーマチュアを持たせて体のアーマチュアと入れ子構造にする(VRChatで服着せる時によくやる方法)
④ウェイト転送をモディファイアではなくメニューのコマンドで行う
結果は①が一番良くて、②③④は全く同じ挙動をしました。
つまりいくら服が体に似たような構造していても貫通は免れないということ。冒頭の仮説は間違っていたとさ。
ただし一つ気づいたことがあって、服を体と入れ子構造にするときはリーフボーン(名前に_endの付くボーン)まで入れ子にした方が良いかもしれません。
これまではリーフボーンはそのままにしていたのですが、今回の実験でリーフボーンを付け替えたら初めて体とアーマチュアを共用するときと同じ揺れ方をしました。
実験に使ったのはPhysBoneだったので、DynamicBoneでも同じことをやろうとしたらまさかの問題発生。
なんとリーフボーンを付け替えると末端のボーンが揺れなくなるのです。
しかしリーフボーンを付け替えなければ末端ボーンの揺れがズレて貫通しまくってしまう...
問題の映像です。
左尻はリーフボーンが付け替えられていて右尻はそのまま。ご覧の通り右尻は揺れて貫通しまくるのに対して左尻は全く揺れません。
更に厄介なのは左尻のボーンをBoneRendererとかで可視化すると、確かにボーンは揺れていることが確認できるのにメッシュ自体は揺れていません。
揺れているのに揺れていません。なんだこれはたまげたなぁ...
いろいろ検証したところDynamicBoneが唯一正しく動いたので現時点の最適解だと思います。
入れ子にした服のボーンをExclusionsに割り当てれば本体のボーンに完璧に追従するようになります。
これから揺れ物は主にDynamicBoneを使うことになると思います。
※追記
のちにリーフボーンを入れ子にした上でExclusionsを設定しないでやってみたらなぜか普通に揺れました。
仮説ですが実行前にボーンを入れ子にしておくと揺れなくなって実行中にボーンを入れ子にすると揺れると思います。どうして...
着せ替えをする上で使ってみた感想。
DynamicBone:普通。コンポーネントを直接ボーンに追加してもRootに自身を追加しなければならないのが少し面倒。
MagicaCloth2:揺れが一番きれい。しかし入れ子にしたボーンを無視する方法が分からないので貫通しまくります。
SpringBone:未検証。
PhysBone:使い勝手が一番良かった。しかしVRChat専用...
Phys Boneをなんとか抜き取って一般のプロジェクトで使おうとしても失敗したので論外。
リンリン 2023/11/30 00:00
「新規作成」から男性のデフォルトキャラを生成。
服や髪の毛など剥がせるのもはすべて剥がして、パンツとか剥がせないものは代わりにテクスチャを透明にしました。
筋肉のテクスチャはこちらの素材を使用しています。
【Vroid正式版】【色変更可】【男性】肌、筋肉、顔、鼻、唇、歯テクスチャ/【Vroid Stable ver.】【Color changeable】【Male】Skin,Muscle,Face,Nose,Lips,tooth texture
これを出力してblenderにインポートます。
目のメッシュをすべて削除して埋めて平らにしました。
さらにテクスチャペイントで欠けた部分を塗りつぶしました。塗ったのは顔テクスチャ「_04」とアルファマスクらしき何か「N00_000_00_Face_00_out」2枚。
モデルをVRMのまま出力してUnityに読み込みます。
読み込むためのアセットUniVRMをインストールしてモデルを読み込みます。
vrm-c / UniVRM
開発環境がURPなので当然デフォルトのシェーダーは非対応なのですが、インスペクター内でMaterials/ Render PipelineをURPにすれば一発で対応してくれます。素晴らしいです。
これにて導入完了です。それでは竿役くんの雄姿をご覧ください。
...女性用のモーションしかないのであしからず。
アニメーション作成はUMotionというアセットを使っているのですが、VRMオブジェクトをそのままUMotion Editorに置こうとこのように弾かれます。
解決方法についは、こちらのページを参考とさせていただきました。
VRMファイルをUMotionEditorで使いたくなった時の対処法
要約するとVRMモデルをFBXに変換してそっちでアニメーションを作成すればいい、ということです。なるほど。
右が変換したFBXモデル。見た目は変わっていますがアニメーション作成にしか使わないため問題ないとのこと。
これでいよいよアニメーション作業に突入できると思います。それではまた...