XaiJu
comal
comal

fanbox


blenderで絵を動かす実験

あまりこの用途での日本語記事情報がみつからなかったので

色々参照しつつぼくなりに捻り出した方法の覚書を共有します

長いんで敬語省きます


MOHOとかLive2Dとか以前触ったことあるけどあんま覚えてないので

ここ数年寝食共にしたblenderで色々できるならぼくはとても助かる


目標ゴール

イラストにUnityで命令通りうごいてもらう

揺れものに揺れてもらう


メリット

そもそも3Dソフトだけあってウェイト塗る力がグンバツ

立体を併用した表現もできそう

dynamicboneとかのアセット使って直感的に揺らせる

アニメーションもシェイプキーも簡単にできるしシェーダーノードも使えるし講座やノウハウが充実している思いつく限りのblenderの恩恵が享受できる


デメリット

調べ方が悪いのかなんかあんま関連記事出てこない

blenderとUnityの機能をある程度知っている前提なのでハードル高いのかもしれない

べつにLive2Dを想定しているアセットで使えるようになる方法ではないので

Facerigで動くわけでもない

じゃあLive2Dでよくねってのはほんとそう


前提

blender4.1 アドオンは今回の作業では特に使わないでできるよ

blenderやUnityの細かい説明は省略します

揺らしにはDynamicBone(有料アセット)を使うけどspringbone的挙動をするものならなんでもいいと思うよ



いるかわかりませんがぼくのフォロワーは以下の下絵と展開図画像を使ってOKです

自作発言とひどいことしなければ自由に使っていいです


下絵


展開図


手順

plane用意

画像取り込む

Kキーでざっくざくパーツごとに切り抜く(楽しい)

後日試行錯誤した結果

ここはモディファイアの細分化適用したやつ使ってパーツ分けた方がよかった

あとから編集しやすくなる

選択してPキーで選択分離

hairとかheadとかリネームしとく

自分さえわかればいいので命名規則はないけど日本語使うとUnityでバグる恐れあるので一応半角英数で名前つける


下絵の透過の値弄って分割したパーツを重ねる

パーツの重なりがぎゃざぎゃざになるのでGキー→Yキーで奥行をちょっとずつずつずらす


動かすメッシュをざくざく刻む

物理演算使うパーツ(スカートとか髪とか)は

モディファイヤで細分化したらいいと思った

メッシュの位置が気に食わなかったらG二回おして頂点移動で位置調整すると

UVずれなくてめんどくさくなくていい


(だいぶあとの作業から遡って髪の毛周辺を加筆修正したので髪のハネが消失しています)

ボーンいれる

Humanoid準拠じゃなくていいので

ここで折れ曲がれば矛盾が少ないなってとこに気軽にボーンをいれる

連動したらうれしいとこは親子になってもらう

腰と上体と首で制御

腕はワンチャン曲げらんないかなと肘で分割

足のボーンは結局ニート

揺れもの入れるとこだけ細かくボーンいれる

髪は正中線に極太ボーンいれてサイドに細かいのいれた


絵のアウトラインのキワに骨いれると綺麗に曲がりそう

だってMOHOとかで骨いれてたのがそういう位置だった


ctrl+Pで骨とメッシュくっつけて

ウェイト塗る

ここの作業がとても気楽

さすがblender

アニメーションタブで

ボーン選択して回転とキー入力で

必要なループアニメ作る

必要に応じていくつでも作れる

今回はIdleとkubihuriの二種を制作(弱肉強食幻想郷リスペクト)


動かすとこう

(frame embed)


シェイプキーもつくっておこ

メッシュなのでModelingタブから好き勝手に動かせる

のでシェイプキーに使うメッシュはまとめて選択してctrl+Jで結合しとくといいと思った

ひと段落したらFBXで書き出し

Unityいってからも気軽に帰ってこれるので気軽にUnityいこ



Unityに取り込む

materialつくってさっきの展開図あてこんで

それを取り込んだFBXのインスペクターから貼り付ける

hierarchyに置いたらなんか向きおかしくなったりしたけど180度回転させたら出てきた

VRCにPB実装されて以降一生死蔵してたdynamicboneをアセットストアから引っ張り出す

揺れものが存在するボーンにべたべたアタッチして

preview参照しながら数値調整

そういえば2DなのでZ方向フリーズさせとくといいのかもしれない

この時点でも再生してsceneで掴んで振り回せば動くっちゃ動く


以下蛇足

動かす為のひと手間


作ったアニメーションをFBXから取り出して

アニメーターでステートとパラメーター作ったものをFBXにアタッチする

エモートはtoggleにしたかったのでBool

Blinkは一瞬ONにするだけなのでtriggerにした

ベースレイヤー

IdleとEmoteにそれぞれのループアニメいれて

トランジションでEmoteとつないでパラメーターのオンオフで遷移させる

Blinkレイヤー

(どのポーズの時でもまばたきオーバーライドさせたいのでレイヤわけた)

(animatorのレイヤーでは下に表記されているレイヤーほど優先度が高いとVRCで学んだ)

entryからは空のステートにつないでdefault状態ではなんの感情もない状態にしといて

AnyStateからトランジションひっぱってBlinkのtrigger入力を受け取ったときだけまばたきするようにした

動くけどこれが最適かは ごめんわかんない

スクリプトで遷移パラメーター送信するやーつ作る


独学なので依然ふわふわしてるけど

Scriptの中で使うオブジェクトを最初に宣言して

箱にそれぞれ固有機能つけてって

それをStartやUpdateの箱から呼び出し方を指示すると動くって雑な理解をしてる

動くので多分あってる 筈


このスクリプトは

ボタンを押すとanimatorにエモートの状態を切り替える指示と

指定秒数ごとにまばたきする指示を送る


これを空のゲームオブジェクトにアタッチして

インスペクターからさっきのanimator保有FBXと

Canvasでボタン作って指定する


動かすとこう

(frame embed)


動いたね



これを応用すると絵の任意の場所をClickすると揺れものを起動できるようになるんですね

以下その実装例

x.com
https://x.com/comarukun/status/1803531869277004111/video/1


生意気そうな猫耳盗賊娘のケツを一生ひっぱたける俺だけ幸せになれる電子ドラッグ


このゲームはなんかレギュ的にどこに上げたらいいのかいまいちわかんないので

調整終わったら各種支援サイトで配布しようかなと思います

Unityroomっておしりアップロードしていいのかわかんない








blenderで絵を動かす実験 blenderで絵を動かす実験 blenderで絵を動かす実験 blenderで絵を動かす実験 blenderで絵を動かす実験 blenderで絵を動かす実験 blenderで絵を動かす実験 blenderで絵を動かす実験 blenderで絵を動かす実験 blenderで絵を動かす実験 blenderで絵を動かす実験 blenderで絵を動かす実験 blenderで絵を動かす実験 blenderで絵を動かす実験 blenderで絵を動かす実験 blenderで絵を動かす実験 blenderで絵を動かす実験 blenderで絵を動かす実験 blenderで絵を動かす実験 blenderで絵を動かす実験

More Creators