Kinect v1(XBox360版及びWindows版)で動作するVRMモデル向けモーションキャプチャーツールです。
VMCProtocolを使用し、EVMC4U等の対応アプリケーションへモーションデータを送信します。
Kinect v1とVMCProtocolを結ぶバンジーガムのようなプログラムです。
どこのご家庭の押し入れにも眠っているKinect v1を活用して、ブイチューバーの真似事が出来るようになります。
EVMC4Uや、Oredayoにも簡単にモーションデータを送ることが出来ます。
Kinect v1はPCで使用する場合、Xbox360版が個人利用、Windows版が商用利用可能となっております。
各自Kinect v1の利用規約等をご確認の上、用途に合わせてご使用ください。
なお、Kinect v1は販売終了しているため購入する場合は中古のみとなり、故障のリスクがあります。
現行品と比較すると測定距離や解像度、精度の点で劣りますので、購入は推奨しません。
本プログラムについても、私の趣味の範囲で作成しておりますのでご了承ください。
Unity 2018.4.10f1
Unity上で動かします。私が使用しているバージョン以外での動作エラーは各自修正などしてください。
Kinect for Windows SDK v1.8
SDK v1.8がKinect v1に対応しています。
Kinect with MS-SDK
Kinect v1をUnity上で使用するための便利なアセットです。
VMCProtocol
OSCで姿勢情報を送受信出来る便利なプロトコルです。こちらを使用してEVMC4Uに動きを反映させます。
UniVRM、uOSCの導入も必要となります。
Unity、Kinect for Windows SDK v1.8を導入の上、Unityで新規プロジェクトを作成し、AssetStoreよりKinect with MS-SDKをインポートしてください。
続いて、上記VMCProtocolのページを参照の上、UniVRM、uOSCも使用出来る状態にしておいてください。
また、サンプルスクリプトのSampleBonesSend.csもインポートしておいてください。
本GitHubより「VMCPKinectGum.cs」もインポートしてください。
なお、現行のバージョンはリップシンク、まばたきをGUI上でオンオフ出来るよう実装されているので、LipSyncやblinker周りのコードを削除などしてください。
エラーコードから簡単にわかると思いますので説明は割愛します。
参考までですが、リップシンクを実装したい場合はAniLipSync-VRMを使用して実装してください。
まばたきはGUIでのオンオフを考慮しないのであれば、コードを若干修正するだけで対応可能です。
次に、空のGameObjectを作成し、以下のスクリプトをアタッチしてください。
GameObjectの名前を「Script」にしておくと本プログラムの修正の必要がありません。
- Asset/KinectScript/KinectManager.cs
- Asset/uOSC/Script/uOscClient.cs
- SampleBonesSend.cs
- VMCPKinectGum.cs
最後に、読み込ませたいVRMファイルを「default.vrm」とリネームし、「C:\VRM」を作成し、そこに保存してください。
これで動作するはずですので、実行するとVRMが非同期処理で読み込まれ、Kinectで操作可能になります。
VMCProtocolを通じ、EVMC4Uなどのアプリケーションに反映されます。
u OSC ClientのPort番号を転送先のアプリケーションの受け側Port番号に合わせて下さい。
私がビルドしたものをbooth、releasesにそれぞれ置いています。
背景の色は変えられませんが、カメラの画角やモーションフィルタは変更可能です。設定値は保存されません。
送信Port番号の変更も可能です。デフォルトは39540です。設定値は保存されます。
受信Port番号も変更可能です。デフォルトは35939です。設定値は保存されます。
リップシンク、まばたき、EDDPによる自動ポート設定(実質Oredayo4V専用)も実装しています。
VRMファイルはC:\VRMにdefault.vrmで保存してください。
"360KinectGum" is under MIT license.