PliantMotionの使い方
入手
長谷川研究室のGitレポジトリ(注:アカウント作成が必要)から入手してください。
※PliantMotionは研究中のソフトウェアです。PliantMotionのソースを外部に公開しないでください。
PliantMotionの利用には2種類のライブラリが必要です。
SprUnity
- http://git.haselab.net/haselab/SprUnity.git
- 物理エンジンSpringheadをUnity上で利用するためのライブラリです。
VGent Core
人の物理モデル用のスクリプトが入っているレポジトリです。動作にはSprUnityが必要です。
サンプルプロジェクト
- PliantMotionSamples
- http://git.haselab.net/Ken/PliantMotionSamples.git
- PliantMotion用のサンプル
- ライブラリはgit submoduleの形で含まれているので、cloneした後にsubmodule update を行ってください。
チュートリアル
チュートリアルの進め方
- ゼロから始める: 「Unityの新規プロジェクトを作る」 から
- サンプルを元に試す
- 新しい動作を作りたい: 「Bodyを動かしてみる」から
- キャラクタを変えたい: 「キャラクタを追加する」から
Unityをインストール
今回使用しているUnityのバージョンは「2018.4.5f1」です。
Unityの新規プロジェクトを作る
SprUnityとVGentCoreとPliantMitionとUniVRM( https://github.com/vrm-c/UniVRM/releases )をAssets以下に追加。(今回はAssets/Libraries/)。開発する場合はSprUnityとVGentCoreとPliantMitionをGitのSubmoduleという機能を使ってください。

PHSceneをシーンに追加
新しいGameObjectを作り、PHSceneBehaviourをアタッチします

BodyのPrefabをシーンに追加
人の物理モデルの PliantBody.prefab(Assets/Libraries/PliantMotion/Prefabs/) をSceneに追加します

PliantBody.prefabをUnpack Prefabします

キャラクタをhttps://hub.vroid.com/characters/675572020956181239/models/6535695942068248968 からダウンロードしてインポート,キャラクタのPrefabをシーンに追加

PliantBodyのBodyスクリプトのAnimatorにキャラクタ(Darkness_Shibu)をセットしてFitToAvatarボタンを押す(PliantBodyの関節位置などをキャラクタに適用)

HierarchyWindowでDarkness_Shibuを選択してCtrl-Dで複製する

分かりやすさのために複製したDarkness_Shibu(1)をDarkness_Shibu_Inputに名前変更

Animation Trace ControllerのAnimatorをDarkness_Shibu_Inputをセットする

実行してみる

何が起こっているかの解説
PliantBody:各関節をバネで引っ張っているキャラクタの物理モデル
Darkness_Shibu: PliantBodyの結果を
Darkness_Shibu_Input: PliantBodyのバネの目標
Darkness_Shibuの腕が下がっているのは、腕自体の重みに耐えきれずにバネが下がってしまっているため
この状態で躍らせてみます
Darkness_Shibu_InputのAnimatorのControllerにC86unitychan_001_SIM01_Finalをセット

Animationを再生してみる。バネが弱く、うまく追従してくれません。ConsoleWindowにエラーが出ていますが無視して大丈夫です。

Darkness_Shibu_InputのSkinnedMeshRendererをOFFにする
Play動く