unityでkinect v2による操作

こんにちは~

動作させる上でいろんなトラブルがあったんですがなんとか動かせるようになりました(;’∀’)

違うモデルも制作してたら記事が遅れてしまいました。

上の画像ではkinectの位置が少し上斜めからとっていたためモデルが少し前のめりになってしまってます。(部屋が狭い)

HtcViveとか、Oculus Riftも使ってみたいのですが、KinectV2で動かしている方がいて、

お金もあんまりなかったのでkinectv2を中古で購入しました。

 

現時点では体は動くんですが、口や目は動かない状態です。リップシンクをやりたいと思っていろんな記事を参考にしたのですが、何日か格闘したのですが、全然うまくいかない(泣)でももう少しがんばってみます。

0311:追記  下記の記事のおかげでunity上で口パクうごかせるようになりました!ですがkinectv2のアセットと同時に使うとうまくいかなかったです。 プログラムを書きかえるかしないといけないのかな・・・?プログラミングさっぱりわからないTT

参考にした記事

Unity でリップシンクができる OVRLipSync を試してみた

ようてんさんのツイート

【VTuber】OVRLipsyncでUnity上のキャラをリップシンクさせる方法

 

目や口など表情を動かしたい方は3tene(ミテネ)っていう無料のアプリがあったのでこれはおすすめです。webカメラなどが必要になりますけど、顔の表情を認識して、音声認識もあるので自分で作ったモデルが動いてくれます。それに操作が簡単なので使いやすい。グリーンバックにもできるので他の動画と合成もできますね(クロマキー合成

手も動かしたいって人は、LeapMotionが必要になります。

ただ、3teneの表情で笑顔などの目をつむった表情を設定しているときに、瞬きする設定にしていると、目をつむった状態で瞬きしてしまうのでかなり変になります。

目を閉じた表情に設定しないようにするか、目を閉じた表情の時は極力瞬きをしないか、、瞬きの設定を外すと良いかもしれません。

 

この前の記事の続きになりますが、

blenderでモデリング制作。(シェイプキー・ボーン・ウェイトペイントのメモ)

ボーン(リグ)の設定が終わってシェイプもおかしくなければOKなんですが、
unity上に入れる前にボーンの設定で私みたいにちゃんとウェイトが塗られていない所があると、下の画像みたいに服に変なとんがりができてしまいます。

(これは3teneのやったーのポーズに動かした時。肘もおかしいが脇もおかしい。)

なので、unityに入れる前にはちゃんとボーンのウェイトがうまくついているか、ボーンを動かして、しっかり確認しておくと良いと思います。

 

モデルをVRMファイルにする

おぐらちゃんのVRM講座を参考にして作りました。

●blenderをFBX形式で保存。

まずblenderでつくったモデルをfbx形式でエクスポートするんですが、Unityに持っていく前にFBXの中にテクスチャを埋め込みます。

ファイル→エクスポート→fbx

パスモードをコピーにして隣のアイコンをクリック(fbxをバイナリファイル内にテクスチャを埋め込みますと書いてある)

右上のFBXをエクスポートをクリック。

 

●UnityでモデルをVRMファイルにする。

まずunityをダウンロードしておく。

VRM公式ページからUniVRM

Download
Go to the releases page

から最新版をダウンロードして、unityを起動した状態でUniVRMを実行するとパッケージ画面?が表示されるので、インポートをクリック。

するとAssetsフォルダにVRMフォルダが入ります。

次にfbx形式で保存したモデルをAssetsフォルダに入れて、

Hierarchyの中にモデルを入れます。

インポート後、FBXのImport SettingsのRigタブでAnimationTypeをHumanoidににする。(公式参照


そのままだとテカテカしてるし、裏面表示されてないので、scene内のモデルを選択し、右側に表示されるInspecterからマテリアルのシェーダーを変えていきます。

cull modeをOffにすると裏面にもテクスチャが表示されます。髪の毛や、スカートなど、blenderで両面表示などにしている場合はここをoffにしておくと両面表示になります。

Lit Color,Alphaはテクスチャのベースカラーで、Shade Colorは影の色。Sahading Shiftは影の範囲、Shading Toonyは影の境界をぼかす。マテリアルの設定は好みで設定します。私はこんな感じにしました。

設定できたら左上メニュー欄のUniVRMからExport humanoid

[settings] Authorに作った人の名前を入れてExport(Assetsの直下はわかりにくいので適当にフォルダを作って保存。)

Hierarchyにあるモデルは削除して、先ほどexportしたモデルに入れ、insppector内にあるライセンスなど表記。

●モデルの表情を設定するblendshapeや視線の設定VRMLookAtHeadを設定。

モデルを選択した状態で右側に表示されるInspectorからVRM Blend Shape ProxyのBlend Shape Avatarを設定。

  • BLINK(瞬き)
  • JOY(喜び)
  • ANGRY(怒る)
  • SORROW(悲しい)
  • FUN(楽しい)
  • BLINK_L(左目)
  • BLINK_R(右目)

LOOKUPなどはボーンが入っていたらいれないくてもいいみたい。

視線の設定はhierarchyのcreate▼から3D Object→Sphereを作成し、
Sphereを選択した状態でInspectorのtransformのscaleの値をすべて0.1くらいにしました。

モデルを選択し、InspectorのVRMLookAtHeadのtargetをSphereにする。

再生ボタンを押すとモデルの目がSphereのある方向を見るようになるので、
それを見ながら目の可動範囲を設定していきます。

VRM Look At Bone Appkyerの数値を変える

私はこれくらいにしました。人によっては5とかだったりします。
(入れたボーンのサイズとかによるんでしょうか?)

●揺れ物設定

hierarchyのモデルの中にあるsecondaryを選択し、Root Bonesから設定する。

sizeは揺らしたい数。揺らしたいボーンの親をElementにドラック&ドロップして設定。
私はサイドの髪に2つ、後ろ髪に2つ、横にはねている毛に1つ。合計5ついれました。

 

●当たり判定をいれます。
髪の毛をめり込ませないようにしたいので、わたしはchestのボーンに2つ入れました。

当たり判定を入れたいボーンを選択。InspectorのAddComponentからVRMで検索し、下のほうにあるVRM Spring Bone Collider Groupを選択。

設定できたらHierarcyのモデルを選択した状態で上メニューのUniVRM→Exportで完了です(*’▽’)

 

unityでkinectV2によって動かす

kinectでモデルを動かすために
unityのアセットストアからKinect with MS-SDK(有料版)を買いました。2700円くらい。

(私はわからなくて有料版のを購入しましたが、リアルタイムに動かすだけなら無料版で動かせるみたいです。)

unityで新規プロジェクトを作成し、unityのAsset StoreからKinect with MS-SDKをImportしておきます。

HierarchyにK2Examples>KinectDemos>AvatarsDemo>KinectAvatarsDemo1を入れる。

Hierarchyに作ったVRMモデルを入れる。

ダウンロードしたK”Examples>KinectsCripts>AvatoarContoroller

Hierarchy内にある自分のモデルにアタッチ(ドラック&ドロップ)

これで再生ボタンを押すと動かせるようになります(*’▽’)

再生した際にGame画面の右下の本人が映っているのを消すには、
HierarchyにあるKinectContorollerを選択→inspectorからKinect ManaggerのDisplay User Mapのチェックを外すと非表示になります。

 

背景の色はMainCameraのBackgroundから変更し、地面の色は FloorPlaneのマテリアルのcolorから変えています。地面のテクスチャも変えられそうです(*’▽’)

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です