unityでvrアプリを作ってみよう! (ハンズオン編)
TRANSCRIPT
今回のハンズオンの目標はこれです!
次のスライドで表示されます
PDF資料の場合は:https://www.youtube.com/watch?v=u8ON8pZsBMM
UnityVRHandsonフォルダについて
Git hubからクローンして作成したAsset/UnityVRHandson配下のファイルについては
@decchiがハンズオンのために作成、修正したものです。
Unityちゃんのデータを利用したUnityChanAIControlScriptWithRgidBody.csと
Unity-Chan_icon.pngはユニティちゃんライセンス、
それ以外についてはMITライセンスとしています。
VR機器に関する注意について
PlayStation VRが発売され、盛り上がってきたVR業界ですが、注意があります。 PlayStation VRの対象年齢が12歳以上に設定されているように、成長過程の子供がVR機器を利用すると斜視になる危険性があります。今回のハンズオンで使用する二眼レンズ式のCardBoardについても同様なので、お子様のいるご家庭は特に扱いに注意してください。
(参考: http://www.moguravr.com/13yearsold-limitation/)
大人についてもVRに夢中になってケガをしないよう注意しましょう!
大地を作る④
Inspectorビュー内にあるTerrainコンポーネントのPaint Textureツールを選択します(ブラシの絵)。
その後Edit Texturesを選択。
ダイアログが出るので、
Add Textureを選択。
Unityちゃん登場!①
ゲームの環境ができたのでUnityちゃんをシーンに配置してみましょう。
Assets¥UnityChan¥Prefabs¥for LocomotionにあるunitychanをHierarchyビューにドラッグ&ドロップします。
Transformについて
Unityちゃんが配置できたらUnityちゃんのInspectorビューにTransformコンポーネントがあるので、
Position(オブジェクトの位置)とRotation(オブジェクトの回転)の値を変えてみましょう。 Rotationはそれぞれの軸を中心とした回転であることが分かりますね。
最後は全部0に戻しておいてください。
カメラを追尾させてみる
どうでしょう?操作はできるけど、カメラが動いてくれませんね。カメラが追尾するようにしてみましょう。
①ゲームを停止する。 をもう一度押下。
② HierarchyビューからMainCameraを選択する。
③ InspectorビューのAdd Componentを押下。
④Thで検索し、 ThirdPersonCameraを追加。
⑤もう一度ゲームを起動してみましょう。三人称視点
になりましたか。
アニメーションの動きを確認する。
ゲームを起動したらアニメーションの動きがどうなっているかみてみましょう。
UnityちゃんのInspectorビューにAnimatorコンポーネントがあるので、その中にあるUnityChanLocomotionsをダブルクリック。
Animatorウィンドウが表示されます。
その状態でゲームを動かしてみましょう。
Unityちゃんを自動で走らせてみる
今回のHands-onではUnityちゃんを以下の仕組み自動で走らせます。
①目標物を作成し、 Unityちゃんを目標物に向かって
走るようにする。
②目標物とUnityちゃんがぶつかったら、目標物を
ランダムな場所に移動する。
目標物を作る
GameObject→3D Object→Sphere(球)を選択。
HierarchyビューにSphereが作成されるので、TransformコンポーネントのPositionのX,Y,Zの値をそれぞれX=0, Y=0.5, Z=5にして位置調整します。
Unityちゃんのスクリプト変更①
Unityちゃんの動きを自動化するためにスクリプトを変更します。
UnityちゃんのInspectorビューにあるUnityChanControlScriptWithRgidBodyと
FaceUpdateを削除します。
(スクリプトを右クリック→
Remove Component)
Unityちゃんのスクリプト変更②
削除できたらInspectorビューの一番下にあるAdd Componentを押下し、 Unity Chan AIで検索すると
Unity Chan AIとUnityChanAIControlScriptWithRgidBodyが出てくるので両方とも追加します。
Unityちゃんの目標物設定
先ほど追加したUnity Chan AIのコンポーネントにGoalというプロパティがあるので、そこにHierarchyビューにあるSphereをドラッグ&ドロップします。
目標物の衝突時処理の追加
衝突時処理の追加のためにSphereにAdd ComponentでRandomPosionを追加します。
これでSphereのSphere ColliderにUnityちゃんの
Capsule Colliderが接触するとRandomPosionの
OnCollisionEnterメソッドが呼び出されます。
目標物の透明化
最後にSphereのMesh Rendererコンポーネントの上部にあるチェックを外してSphereを透明にします。( Mesh Rendererコンポーネントの無効化)
ここまでできたらもう一度ゲームを起動してみましょう。Unityちゃんが走り回りましたか?
GoogleCardBoard対応②
Hierarchyビューに配置したGvrViewerMainを選択。
Gvr ViewerコンポーネントのScreen Sizeを自分のスマートフォンのものに設定します。該当するものがない場合は画面サイズに近いNexusを選んでください。
Viewer TypeはCardboard May 2015を選択します。
別のビューワをお持ちの方は合ったものを選択します。
1人称視点に戻す
HierarchyビューにあるMainCameraを選択し、ThirdPersonCameraのコンポーネントのチェックをはずして無効にします。
また、TransformコンポーネントのPositionのX,Y,Zの値をそれぞれX=0, Y=1.5, Z=0にして位置調整します。
ビルド及び実行
File→Build Settingsを選択。
Androidの場合、スマホをつないでBuild And Run、
iPhoneの場合、 Buildを押下し、出力されたプロジェクトをXcodeで実行してみましょう。
うまく実行できましたか?