ロードバイク時々ものづくり

ロードバイクおよびゲーム開発について

【Unity】ユニティちゃんをロードバイクで走らせる【Final IK】

ユニティちゃんをロードバイクで走らせる。
VRサイクリングのライバルカーというかナビカーとして出すため。

↓のような動きになるまでの顛末


・モデル

使用したモデルはユニティちゃんと自作ロードバイクモデル。
ユニティちゃんのモデルデータは公式ページから。
特にどちらもコレといって特別なものは無し。
ロードバイクモデルもクランクが動かせるモデルデータであればなんでもOK。
ユニティちゃんモデルは、髪を動かすためにプレハブ内の「unitychan_dynamic」を使用。

f:id:vrcycling:20160312225850j:plain

こんな感じで配置。

f:id:vrcycling:20160312230151j:plain

使わないスクリプトはチェックを外し、Final IK(有料)の『Full Body Biped IK』をアタッチする。

・Referencesの設定

アタッチした時点で自動で設定してくれるので、この辺は特にいじらない。
Rootだけ『Character1_Reference』にしといたほうがいいかな。
f:id:vrcycling:20160312230720j:plain

・Bodyの設定

座る位置を設定する。
空のオブジェクトをサドルに配置し、Targetに設定する。
f:id:vrcycling:20160312231013j:plain
でも結局Position Weightは「0」のままだからいらないかも。お好みで。

ChainのPull Body Vertical を「0.5」に、MappingのMaintain Head Rotを「0」に設定。
上体を上げたり頭を上げる設定。好みに調整して問題ない。

設定しないとこんなことになる。


・LeftArmとRightArmの設定

両手がハンドルの位置に固定されるようにする。
空のオブジェクトをハンドルの両手それぞれの位置に配置し、「Left/Right Hand Effector」のTargetに設定する。
f:id:vrcycling:20160312232153j:plain
Position Weightは「1」に設定。

・LeftRegとRightRegの設定

両足がペダルの位置に固定されるようにする。
空のオブジェクトをペダルの位置に配置し、「Left/Right Foot Effector」のTargetに設定する。
f:id:vrcycling:20160312232640j:plain
Position Weightは「1」に設定。

さあこれで基本的な設定は完了!
では再生してみよう!


とまあ膝がうまくいかないわけです。
直しましょう。

膝を曲げたときに内側に向かないよう、Bend Goalを設定。
膝が曲がったときに維持して欲しい位置あたりに空のオブジェクトを作成し、ChainのBend Goalに設定する。
f:id:vrcycling:20160312233416j:plain
Bend Goal Weightを「1」に設定。

実行したら膝が内側にめり込まず、記事上部のような走り方になるはず。

・モーションの設定

デフォルトのモーションのままだと手が広がったままなので、
POSE02あたりを設定しておくと手が握り状態になるのでいい感じに。
f:id:vrcycling:20160312233815j:plain


以上です。
ユニティちゃんの髪の毛は動いていないとなびかないので注意。

Final IKの設定方法がメインとなりました。
Unity自体の勉強が知りたい方は下記の本をオススメします!
www.amazon.co.jp

Finak IK 参考:mekaさんサンクス!
machinemaker.hatenablog.com

f:id:vrcycling:20160313000435p:plain
© Unity Technologies Japan/UCL