BlenderとUnityで作ったものをVR(Oculus  Quest/Oculus Link)で動かします

VRで焚き火する #16 Magica Clothのスカートでアウトドアチェアに座る【Unity】

 
前回の記事では、開閉式のオイルライターに揺れる火をつけてみました。
 
キャンプ場には「ブログの女の子」がいるのですが、基本的には立っているだけでした。せっかくアウトドアチェアがありますので、そこに座らせてみたいと思います。
 
今回は、Very Animation でポーズを作成した後で、椅子に座ってもスカートができるだけはみ出さないよう Magica Cloth を設定します。



開発環境

・Unity 2020.3.15f2(High Definition RP 10.5.1)
・グラボ:ASUS ROG-STRIX-RTX2060S-O8G-GAMING
・Oculus Quest 2(Oculus Link利用)
・炎アセット:Ignis – Interactive Fire
・クロスシミュレーション:Magica Cloth
 

(1) Very Animation でポーズを作る

ポーズの作成には、Very Animation を使います。
 
以前の記事でも使いましたが、Unity上だけでポーズが作れる素晴らしいツールです。
 

Tポーズからはじめよう

VA Editor」タブで「Reset -> T-Pose」を選択すると、キャラクターが「Tポーズ」になってくれます。 
これが基本ポーズですので、ここから修正していくと良いですね。
 

IKでも設定できる

Original IK の一覧で、Head や Left Foot などにチェックを入れると、IK状態でポーズを設定できます。
頭や両手両足を掴んで操作すると、他の部分も良い感じに連動して動いてくれるのでとても便利です!
 
IKモードでざっくりとポーズを決めて、通常モードで細かな調整をするのが良いですね。
ポーズを作っていると、時間が経つのが異常に速く感じます。。。
 

全体の移動はRootを使う?

キャラクター全体を移動・回転したい場合は、Hierarchy で「Root」を選択した状態で操作すると良いようです。
 
移動できましたね。
恐らく、この方法で合ってるはず。
 
あとは、作成した Animation Clip(ポーズのデータ)を Unity の Animator で使えるよう設定しておきます。今回は、AIMotion という名前の Animator Controller を作成して、キャラクターに設定しました。
シンプルですね。
 


(2) 問題1:スカートが椅子を貫通する

今の状態でUnityで動かしてみると、問題がいくつかありました。
一つずつ、解決していきましょう。
 
椅子に座ったポーズになったのは良いのですが、スカートが椅子を貫通しています。
 
肘掛け部分があるのでそこは仕方ないとしても、座面(おしり部分)の貫通は改善したい。
 

[解決] 座面の下にコライダーを置く

解決方法の一つとして、座面の下にコライダーを置くことにしました。
 
Magica Clothには現在、長方形のコライダーはありませんので、 代わりに Magica Capsule Collider を使います。
 
Start / End Radius は大きめの方が調整しやすいかも知れませんね。
 
設置すると貫通しなくはなりました!
ですが、スカート後ろ部分が椅子からはみ出してますね。
 
いまのアニメーション設定では、UnityをPlayで開始したときのポーズは「座っているポーズ」です。Play前の「Unityエディター画面」では Magica Cloth は作動しないので、最初からスカート後ろ部分が椅子からはみ出していることになります。これは仕方ないですね。
 
試しに、Play中にコライダーを「椅子の後ろ側に移動してから、前に移動してみる」と、スカートが良い感じに前方に集まってくれました。
この方法を採用するかはさておき、こんな感じのアプローチが良さそうです。
例えば、最初から「座ったポーズ」ではなく、「立ったポーズ → 座ったポーズ」にアニメーションするとか。あとから試してみましょう。
 

(3) 問題2:スカートがめくれ過ぎる

次の問題です。
 
なぜかスカートがめくれ過ぎています。
 
別のスカートに変えても同じでした。
 
スカートが長いほど、症状が顕著なようです。
困りました。。。
 

[解決] Penetration をオフにする

最初、コライダーのサイズがおかしいのかと思いましたが、問題なさそうです。
 
いろいろ調べてみると、 Penetration(浸透制限)が原因でした。
 
Penetration は上記のサイトにもあるように、スカートの突き抜け防止するのに必須な機能なんですが、座ったようなポーズの場合、今回のような挙動になってしまうようです。座っている時は激しい動きもありませんので、思い切ってオフにしてみました。
 
すると、良い感じになりました!
 
膝の先から、スカートが下に下がっているのが分かります。
とても自然。
 
別のスカートでも試してみます。
 
ある程度、スカートが長い方が安定するようですね。
素晴らしいです!
 


(4) 問題3:スカート後ろ部分が椅子からはみ出す

これは、問題1で新たに見つかった問題でしたね。
既に解決策っぽいものがあるので、それを試しましょう。
 

[解決] 立つ → 座るポーズにアニメーションする

こんな感じで、アニメーション設定してみました。
 
Unityプレイ直後は立っていますが、数秒経つと椅子に座る設定です。
 
実行してみると、キャラクターが座っても、スカート後ろ部分が椅子からはみ出すことが減りました!
 
もちろん完全に防げるわけでは無く、時間経過とともにスカートが椅子から垂れ下がってくる場合もあります。
ですが、ある程度の効果はあったと思いますよ。
 

(5) 細かなところを調整していく

あとは、細かなところを調整していきましょう。
 

姿勢を変える

少し前かがみ気味でしたので、もう少し背もたれにもたれかかったようなポーズにします。
 
Root」を選択して、キャラクターを回転します。
 
あとは、位置を調整していきます。
こんな感じでしょうか。
 

キャラクターが焚き火を見る

IK で Head を調整して、焚き火の方を見るように調整します。
 

キャラクターをじわじわ動かす

以前購入していた「アンテナショップ【ねここや】」様のブレンドモーションを使わせていただきました。
 
大変便利ですね。
これで、移動量が調整できると更に素晴らしいのですが。
 

設定できた

これで一通りの設定が完了しました。
 
いまの設定の場合、ある程度短めのスカートでも問題なく座れています。
良い感じですね。
 


(6) 動画で確認してみる

VRモード(Oculus Link)で確認してみましょう。
 

ワンピースで立つ→椅子に座る→焚き火を見る

 

ワンピースで椅子に座る

 

長めのスカートで立つ→椅子に座る

 

長めのスカートで立つ→椅子に座る(横から)

 

メイド服で立つ→椅子に座る

 
どの服でも、ちゃんと椅子に座ることができました。
 

まとめ 

 
Very Animation でアウトドアチェアに座ったポーズを作成して、スカートができるだけはみ出さないよう Magica Cloth で調整してみました。
 
便利なアセットのおかげで、良い感じに座ることができました。
スカートの貫通もかなり防げたので良かったですよ。
 
スポンサーリンク

コメント

  • トラックバックは利用できません。

  • コメント (0)

  1. この記事へのコメントはありません。

VRで焚き火する #15 開閉式のオイルライターに揺らめく火をつける【Unity】

VRで焚き火する #17 環境音と効果音をつけて焚き火をする【Unity】

最近のコメント

だーしゅ
IT関係のお仕事してます。
VRは楽しいですね。

[当ブログについて]