Unity Freeに対応したOculus SDK 0.4.3を試す - ReDo

2014年10月28日

Unity Freeに対応したOculus SDK 0.4.3を試す

Oculus VR SDK 0.4 Version 0.4.3 Beta
https://developer.oculusvr.com/?action=hist&ver=21
> Unity 4.5.2 and 4.5.5 are supported; 4.5.3 and 4.5.4 are not. Also added support for Unity Free in Unity 4.5.5 and up.
期間限定Pro Licenseを借りているので、いったん返却してFreeに戻します。

Unity 4.xライセンスの管理 / Managing your Unity 4.x license
http://docs-jp.unity3d.com/Documentation/Manual/ManagingyourUnity4xLicense.html
Help -> Manage License... -> Return License で初期状態に戻ります。

ランタイムはまだ0.4.3に上げずに0.4.2の方がいいらしい...?

上記のtweetに続く野生の男さんとザバイオーネさんの会話を見ても安定板が見つかるまでは人柱雰囲気がプンプンします。まぁそんなもんでしょう。

以前のエントリでUnity Proで試したこれが、Free版で問題なくイケるかを試します。

【Oculus Rift DK2】Unity Proでオキュラスに嫁を召喚するマニュアル【MMD】
http://greety.sakura.ne.jp/redo/2014/10/OculusDeMMD.html


<環境>
Unity(4.5.5)
http://japan.unity3d.com/unity/download/
Oculus Rift SDK(Version 0.4.3 Beta、DK2本体のFirmware ver.は2.12。)
https://developer.oculusvr.com/?action=hist&ver=21
Stereoarts:MMD4Mecanim(MMD4Mecanim_Beta_20141020.zip)
http://stereoarts.jp/
モデル:Appearance Miku あぴミク
http://piapro.jp/t/KPU3
楽曲:サイバーサンダーサイダー
http://piapro.jp/t/_Anb
モーション:【MMD-DMC4】サイバーサンダーサイダー【モーション配布】
http://www.nicovideo.jp/watch/sm19635968

著作権等は各製作元に帰属します。ピアプロライセンスについてはこちらを参照ください。
http://piapro.jp/license/pcl/summary

<手順メモ>
・新規Projectを作成、名前はFree043に。
・OculusUnityIntegration.unitypackageをダブルクリック、ProjectにImport。
・MMD4Mecanim.unitypackageをダブルクリック、ProjectにImport。
・あぴミクさん、サイバーサンダーサイダー楽曲、サイバーサンダーサイダーモーションをAssets配下にフォルダ毎D&D。
・Appearance Miku/Appearance Miku.MMD4Mecanimを選択、Readme.txtを確認後、利用規約とPCLに同意。
・Advanced ModeのチェックをON、Vertex Scaleを12に増加、VMDにサイバーサンダーサイダー(さっちゃそ).vmdをセットしてApply->Process。
・ProjectタブからCreate->Animator Controllerを選択、apmiku等適当な名前に設定、ダブルクリックでAnimatorウィンドウをopen。
・生成されたAppearance Mikuモデル配下のサイバーサンダーサイダー(さっちゃそ).vmdをAnimatorウィンドウにD&Dして保存。
・Ctrl+sするとシーン名を聞かれるのでMainと入力してEnter。
・Cubeを0,-0.5,0でScale100,1,100にして床っぽく配置、Drectional Lightをななめ上に配置、あぴミクさんを配置してRotationを0,180,0にしてこちらを向かせます。最初から配置されているMain Cameraはちょっと遠いのでzを調整して近づけます。
・Hierachy上に配置したAppearance Mikuに先ほど生成したAnimator ConrollerをD&Dで適用。
・Hierachy上に配置したAppearance Mikuを選択してMMD4Mecanim ComponentのPhysicsタブで物理演算を有効に、Animタブで同期用音楽をセットします。wave曲の3D Soundチェックは外してApplyを選択。
・ここで再生してモデル・モーション変換とAudio適用が動作していることを確認。

・Main Cameraをおもむろに削除、代わりにAssetsからOVR/Prefabs/OVRPlayerControllerをHierarchy上に配置します。

ovr043.png

・OVRPlayerControllerの構造が変わってますね...。Use Player EyeHeightドコー?ひとまずえいやハックして、XBOX360コントローラで上下左右カメラが自由に動けるようにします。

i) Gravity Modifierを0にして重力をなくします。
ii) OVRPlayerController.cs UpdateMovement()内でisGroundまわりをちょっとコメントアウトして空中でもカメラが操作できるようにします。

    // No positional movement if we are in the air
// if (!Controller.isGrounded)
// MoveScale = 0.0f;

iii) GamePad Buttonの定義まわりが変わっていることに気を付けながら、L1/R1で高さが動く様にします。Update()後ろの方で、y方向のmoveDirectionを強制的に書き換えます。

    // L1/R2 Eye Height
    if(OVRGamepadController.GPC_GetButton(OVRGamepadController.Button.L1) == true)
    {
        moveDirection.y = -0.01f;
    }
    if(OVRGamepadController.GPC_GetButton(OVRGamepadController.Button.R1) == true)
    {
        moveDirection.y = +0.01f;
    }
    
    // Move contoller
    Controller.Move(moveDirection);
※SDK0.4.3.1でGamepadの定義名が変わってるのでL1をLStickに、R1をRStickに変更する必要があります。

・適当にBuild Settingしてexeを生成、起動。
・DisMonでメインディスプレイを切り替えてもRiftじゃない方のディスプレイに出力される病が出たのでshift押し起動で回避。
・無事動作。75fpsで特におかしいところなし。めでたしめでたし。

free043.png

【2014.11.02追記】
つみ式榛名改ニにうおおおしてたところ、どうもパフォーマンスがよろしくないことに気づきました。具体的にはモデル3体ぐらいで75fpsが保てなくなってこれはどういうことだろう、とモデルの数を増減させてみたところ、Unity Free4.5.5+SDK0.4.3ではUnity Pro4.5.5+SDK0.4.3と比較して大幅にパフォーマンス低いことが判明してしまいました。
runtime0.4.2と0.4.3両方試しましたが傾向に大差なし。バージョンアップを待ちましょう。

freesamaso.zip
prosamaso.zip
Free/ProどちらもUnity4.5.5+Oculus SDK0.4.3。
モデル:あいえるたん
モーション:【第12回MMD杯EX】反動三段蹴り&サマーソルトキック・モーション配布

【2014.12.14】
0.4.4で追試、MMD4MecanimのJoin Local Worldチェックを外すことで4, 5体までは問題ないことを確認。Unity Pro買ったのでまた別途時間できたら調べなおしますgdgdですいません

コメント(2)

記事の<手順メモ>に沿ってがんばったら召喚できました!
知識ゼロなのでまったく理解していませんが、とりあえず好きなモデル好きなモーション好きな曲で愛でられるのがすばらしいです。
バージョンが上がっても可能な事と手順を示して頂きありがとうございました。

>匿名さん
とりあえず試してみたレベルの分かりにくいメモで恐縮です、召喚おつかれさまでした!

ちょっとパフォーマンスに疑惑があるのですがきっと今後そのあたりもどうにかなると思います。

コメントする