blenderでベッドの作り方を模索しunityに持って行ってみた!③ ~ベッドにボーン入れてシェイプキーを仕込む~

3Dモデリング

バーチャル3Dクリエイター神部まゆみです(*^-^*)

 

この記事は前回の続きで、blenderでベッドを作ってunityに持って行ってみました。

前回までの記事はこちら。

blenderでベッドの作り方を模索しunityに持って行ってみた!① ~モデリングしてunityで見てみる~
バーチャル3Dクリエイター神部まゆみです(*^-^*) この記事では、blenderでベッドを作ってunityに持って行ってみたよ。 できれば最終的に、unity-webxr-exportでwebVRにビルドして、Ocu...
blenderでベッドの作り方を模索しunityに持って行ってみた!② ~布団クロス、ベッドスローと枕作成~
バーチャル3Dクリエイター神部まゆみです(*^-^*) この記事は前回の続きで、blenderでベッドを作ってみたよ。 クロスシミュレーションとか結構やってるから、知りたい人には参考になるかも。 クロスシミュレ...

 

今回はベッドにボーンを組んだりシェイプキー入れて動かせないか?試行錯誤してみました。

unityではジェネリックで動かせるようなので、動いたら面白いかなぁと思って。

試行錯誤しながらやったから、文章がかなりとっちらかってるかも(;^_^A

————-PR———————-

現在、500以上の人気アセットが50%オフで買える unityブラックフライデーセールをやってるみたいです(日本時間2021/12/05 PM16:59まで)

unityブラックフライデーセール50%OFF

ダイナミックボーンなどの有名アセットも安くなっている大規模セールなので、欲しいアセットはこの機会に買っておくと良いかも。

アニメーション作成に便利なVery Animationあたりは私も使っててお勧めです。

————————————-

ベッドにボーンを組んだりできるのか?

これ布団部分にボーン入れたら、布団をめくったりできて良いかなと思ったんだけど(笑)。

まぁウェイト載せれば普通にいけるとは思う。

unityではジェネリックリグで読み込めばいけるはず。

適当にボーンを組んでみる

とりあえず頭側を三つに分かれさせる感じで作れば十分かな?

blender ベッド ボーン

ボーンは以前何回か組んだから、以前の記事を見ると参考になるかも。

blenderでボーンを組んで人間モデルを作り、unityでhumanoidリグをインポートした備忘録
バーチャル3Dクリエイター神部まゆみです(*^-^*) この記事は、blenderでhumanoidリグを組んでunityに持って行って動かしてみた備忘録です。 私はVRoid StudioやMake Human...
BlenderでVRoidのお尻にキー入力だけでボーンを仕込んでウェイト付け!ダイナミックボーン用に揺らしたり手動で動かしたり
バーチャル3Dクリエイター神部まゆみです(*^-^*) 今日はVRoid製の私のモデルのお尻にボーンを仕込んでウェイト付けするよ。 ウェイト付けはあんまり詳しくないから、参考くらいに留めてね。 blende...

 

X軸ミラーにして先端を分岐させて、最後に真ん中から伸ばして三股みたいにしてみる。

blender ベッド ボーン

分かりにくいと思うけどこんな感じに組んでみた。

もっとマシな組み方があると思うけど、どこまでやるべきか…?

シェイプキーは頂点移動だけでもかなり作れそうだし、一応このくらいでいいだろうと思ってこれで行ってみます。

自動でウェイト付けしてみる

オブジェクトモードにして布団を選択 ⇒ Shiftキー押しながらアーマチュアを選択 ⇒ オブジェクト ⇒ ペアレント ⇒ 自動のウェイトで を選ぶ。

被ってて選択しにくいから、一旦マットレスとかは非表示にしておくとやりやすいかも。

blender ベッド ボーン

ポーズモードにして見てみる!一応動いたっぽい

つられて足側の布団も動いちゃってるけど、一応動きました( *´艸`)

blender ベッド ボーン

これ一応足側と側面にもボーン伸ばしておくと、良い感じにウェイト載せてくれるかも?

或いは自分でウェイト塗ったほうがいいかもしれない。

布団全体にボーンを組めば、いい感じにウェイト付けできるかな?

概ね布団全体をカバーできるようにボーンを伸ばしてみた。

blender ベッド ボーン

多分これならそれぞれのボーンにウェイトが分散されて良い感じになるはず。

 

お、今度はいい感じ。

blender ベッド ボーン

前回作ったベッドスローが置いてきぼりになってるので、この後ウェイト付け前に戻して、布団とベッドスローをCtrl+Jでオブジェクト結合しました。

 

unityで使うなら、ポーズモードで動かした状態をシェイプキー化してしまったほうが指定しやすくて楽かな?

blenderポーズモードの状態を「シェイプキーとして適用」した備忘録
バーチャル3Dクリエイター神部まゆみです(*^-^*) この記事は、blenderのポーズモードでボーンを動かした状態のメッシュをシェイプキーに登録してみた備忘録です。 これしょっちゅう手順を忘れるから、詳しく書いておく...

条件満たしたら布団がめくれるアニメーションに遷移させればいいし、多分↓の感じのスクリプトでも動かせると思う。

UnityでVRoidのブレンドシェイプや赤面をキー入力で切り替えるスクリプトを動かしたのでメモ
参考にした頭のいい先輩のページ とても参考になりました。 ありがとうございます(*^-^*) 書き換えた部分 こちらの先輩のコードをそのままコピペして、モデル名とブレンドシェイプ名だけ書き換えたら動いた。 ...

布団が盛り上がるシェイプキーを作ってみる

人物モデルが布団で寝るために、布団が盛り上がる感じのシェイプキーもあるといいかも。

これがないと布団の上に寝る羽目になって寒いし(笑)。

はみ出ないように少し大きめにするか…。

 

ボーンを組んだので、ポーズモードでボーンを動かした状態をシェイプキーに登録してみます。

blenderポーズモードの状態を「シェイプキーとして適用」した備忘録
バーチャル3Dクリエイター神部まゆみです(*^-^*) この記事は、blenderのポーズモードでボーンを動かした状態のメッシュをシェイプキーに登録してみた備忘録です。 これしょっちゅう手順を忘れるから、詳しく書いておく...

私も毎回やり方を忘れるので(笑)、↑の記事を見ながらやります…。

自分用の備忘録を残しておくと便利ですね。

布団が盛り上がるシェイプキーを作る

布団をかぶって人が寝ている感じに使いたい。

ポーズモードでボーンを動かして…。

blender ベッド シェイプキー

オブジェクトモードに移行して、布団メッシュを選択 ⇒ モディファイアメニューのアーマチュアの「シェイプキーとして適用」を押せばいいらしい。

やり方忘れてたけど、過去の私はそう書いている(笑)。

blender ベッド シェイプキーとして適用

ちゃんとシェイプキーとして動作してますね。

blender ベッド シェイプキー

名前はとりあえず up にしとく。

ボーンを戻して、メッシュにアーマチュアモディファイアを追加して完了

これをやらないとボーンが動いたまま、ボーンを動かしてもメッシュが追従しない。

blender ベッド シェイプキー

ポーズモードでボーンを全選択、Alt+Gでボーン移動を戻す。そして布団メッシュにアーマチュアモディファイアを追加すればOK。

unityで動かしてみる

ちょっとこの状態でunityに持って行ってみます。

問題:スキンメッシュレンダラーにブレンドシェイプの項目がない…

unityに持って行って動作チェック……と思ったらなぜかブレンドシェイプがない(-_-;)

ちなみにblenderのシェイプキー = unityのブレンドシェイプです。念のため。

通常は「範囲」の下あたりにブレンドシェイプの項目があるんだけど…。

解決:モディファイアメニューのコリジョンを消したら動いた

なんかこれ消したらちゃんとブレンドシェイプ表示されました。

これはベッドスローをクロスシミュレーションした時に設定したんだけど、使い終わったモディファイアは適用するか消したほうが良さげ。

コリジョンを消して保存してunityに持っていったらちゃんとブレンドシェイプ使えました。

モディファイアが残っていて変な不具合が出ることは前にもあったかも?

まさかこんなことで…?と思ってコリジョンを追加し直してやり直したら、またブレンドシェイプが出なくなったので間違いなさそう。

 

こういう細かい点で躓いて、blenderやunityに挫折した人って結構いそう(;^_^A

不具合が出たら一つ一つ条件を変えて、問題を切り分けて特定するしかないですね。

まぁ動いたからいいかな。

足がはみ出ちゃうからボーン動かして調整したほうがいいか…

一応動いたけど足がはみ出ますね( ̄▽ ̄;)

結局ボーンで調整するのがいいかな( ̄▽ ̄;)

ちなみにアニメーション編集に使っているのはVery Animationっていうアセットです。これ便利。

Very Animation|Unity Asset Store

ボーンでやるならもう少しボーン構造を考えたほうがいいかも。

まぁ試作品だからこんなものかな。

 

或いはメッシュコライダーとRigidbodyとかでやれるのかな?上手く調整しないとズリ落ちていきそうだけど…。

でもそこまでやらなくていいかな。

まぁシェイプキーでやりたいなら複数作っておいて、併用してやるといいかもしれない。

普通にメッシュ動かしてシェイプキー作ったほうがラクかも(;^_^A

普通に移動ツール+プロポーショナル編集で上に動かしたほうがラクかも。

パラメーターは100にする必要はないし、かなり大きめに作っておいて数値を調整すればいいかも。

大きめに作っておけば大きいキャラにも対応できるし。

まぁボーン組んで動かせることは分かったし、ボーンはあって困るものでもないだろう。

 

うんいい感じかな。

横と足側がはみ出しやすいかもしれない。

そこは別々にシェイプキー作って併用してもいいかも。

調整したら割といい感じに!もうこれでいいか…

布団を盛り上げるシェイプキーと、頭側をめくっていくシェイプキーを作って併用するようにしました。

blender ベッド シェイプキー

いける!これで画面の前のあなたとも寝れる!( *´艸`)

シェイプキーを増やしてみる

味を占めた私は、シェイプキーを増やしてみるのであった。

布団をめくるシェイプキー

ボーンを使って90度上げる、頂点移動で下げるシェイプキーを併用させた。

2つのシェイプキーを使ってめくることになるけど、シェイプキーならパラメーター指定するだけだからラク。

 

シェイプキーは線形補間なので、こうやって複数併用してアニメーションで自然に見せたほうがいいかも?

シェイプキーは始点から終点の形に一直線で変化するので、動く過程でマットレスを突き抜けたりして変な感じになってしまったので。

片側の布団をめくるシェイプキー

これもシェイプキー併用しないと途中経過ではみ出ちゃうっぽい。

  • 上げる
  • 移動させる
  • 下げる

の三つを併用するといい感じっぽい。

自然な感じに動かすには、上げ50くらいになったフレームで移動シェイプキーを動かしはじめて、移動シェイプキー50くらいになったフレームで下げシェイプキーを動かし始めると、自然でいい感じになるかな?

unityで動作確認してみる

うん、ちゃんと動いてますね。

せっかくだからめくるアニメーションを作ってみるw

アニメーションはVery Animationっていうアセットでサクッと作りました。

Very Animation|Unity Asset Store

ベッドをモデルの子にすれば、モデルのアニメーションファイルでベッドを動かせるっぽい

ベッドを私のモデルにドラッグ&ドロップして、ベッドをモデルの子にしてみる。

これはVeryAnimatonの編集画面だけど、モデルのアニメーションファイル編集画面でベッドのシェイプキーが動かせる。

これならモデルの一つのアニメーションファイルだけで、ベッドと連動してアニメーションが作れますね。

これインスペクター表示非表示のスクリプトを以前動かしたことあるから、色々なオブジェクトをモデルの子にして仕込んでおけば、出し入れして動かせそう。

Unityで二つのオブジェクトの表示非表示を切り替えるスクリプトを書いたのでメモ
使い方 空のオブジェクトにアタッチし、消したいオブジェクトをHideObjectにセット、表示したいオブジェクトをAppearObjectにセット。 unityで実行してCキーを押せば発動。 機能 オブジェクトを表示...

 

うん、キャラと連動して動かせた。

アニメーションファイルだけで色々表現したい時は結構使えそう。

【VRあり】せっかくだからwebXRビルドしてVRで見てみる(笑)

特に意味はないけど、せっかくだからVRで見れるようにビルドしてみた。

Oculus Quest2のOculusブラウザとFirefox RealityでVRで見れました。
https://knb-mayumi.com/webgl/bedxr/bedxr/index.html

ちなみにこんな感じ。重かったのでGIFにしたらカクカクになったけど…(;^_^A

でも作ったものを目の前で見れるとモチベーション上がるね(*^-^*)

Oculus Quest2は3万円台で安いし、メタバースに行けるのでオススメです。

Oculus Quest 2—完全ワイヤレスのオールインワンVRヘッドセット—128GB

 

webXRは以前記事を書いたのでこちらを参照。

unity-webxr-exportでブラウザでWebVR!LookAnimatorでVRoidモデルとVR空間で遊べたよ
バーチャル3Dクリエイター神部まゆみです(*^-^*) 前回の続きで、unity-webxr-exportをいじって、Oculus Quest2でWebVRを動かして行こうと思うよ。 前回の記事はこちら。 ...
unity-webxr-exportをいじったメモ。VRでバーチャル女子のおっぱいを鷲掴みできたでござるぞ( *´艸`)
バーチャル3Dクリエイター神部まゆみです(*^-^*) 今回はunity-webxr-exportをいじっていくよ。 前回の記事はこちら。 機能を網羅的に調べていこうかと思ったけど、VRでおっぱいを掴もうと...

続く

ちょっと動かしてみたい程度だったけど、思いのほか長くなってしまった(^_^;)

でもこれで動かせることは分かったから、ベッドに近づいたら自動でめくれるとか、VRコントローラーで触れてトリガーを引いたら布団をめくる…とかもできそう。

判定さえできればアニメーションファイルを切り替えるだけだし。

 

次はunityでシェーダー設定してみるか…。

もう少しスタンダードシェーダーの勉強をして、いい感じにできるかやってみたい。

最終的に私の部屋を作ってwebXRビルドして、トップページあたりに置いておきたい。

いつ完成するか分からないけど(^_^;)

 

まぁぼちぼちやってみます(*^-^*)

タイトルとURLをコピーしました