Unity Hands-on
UnityでVRアプリを作ってみよう! (ハンズオン編)
ハンズオンを始める前に
今回のハンズオンの目標はこれです!
次のスライドで表示されます
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に夢中になってケガをしないよう注意
しましょう!
Unityハンズオン始めます!
事前準備が終わってUnityエディタはこうなっていま
すか?Hierarchyビューにはライトとカメラしかない
ですね。
ゲーム世界の構築
大地を作る①
まずはゲームのキャラクターが動くための大地を作り
ましょう。GameObject→3D Object→Terrainを選択
大地を作る②
白い大地ができましたね。このままだと味気ないので、
大地っぽくしていきましょう。
大地を作る③
白い大地を地面にしてみましょう。まずHierarchy
ビューのTerrainを選択します。Inspectorビューに
Terrainの情報が表示されます。
大地を作る④
Inspectorビュー内にあるTerrainコンポーネントの
Paint Textureツールを選択します(ブラシの絵)。
その後Edit Texturesを選択。
ダイアログが出るので、
Add Textureを選択。
大地を作る⑤
Add Terrain Textureの左側のSelectボタンを選択
し、 Textureの選択画面でGrassRを検索、
GrassRockyAlbedoを選択します。
大地を作る⑥
あとはAddボタンを押すと、地面らしくなりましたね!
大地を作る⑦
最後に大地の中心を世界の中心にします。Terrainの
Inspectorビュー内にあるTransformコンポーネント
のPositionのXとZの値をそれぞれ-250にします。
空模様を変える①
大地ができたので、次は味気ない空模様を変えてみま
す。Window→Lightingを選択
空模様を変える②
Lightingビューが出てくるので、Skyboxの右にある丸
いマークを選択。skyで検索してsky5X3のskyboxを
選択します。
空模様を変える③
綺麗な空になりましたね!
Unityちゃん登場!
Unityちゃん登場! ①
ゲームの環境ができたのでUnityちゃんをシーンに配
置してみましょう。
Assets¥UnityChan¥Prefabs¥for Locomotionに
あるunitychanをHierarchyビューにドラッグ&ドロッ
プします。
Unityちゃん登場!②
Transformについて
Unityちゃんが配置できたらUnityちゃんのInspector
ビューにTransformコンポーネントがあるので、
Position(オブジェクトの位置)とRotation(オブジェク
トの回転)の値を変えてみましょう。 Rotationはそれぞれ
の軸を中心とした回転であることが分かりますね。
最後は全部0に戻しておいてください。
では動かしてみましょう
エディタ上部の を押下してみましょう。
ゲームが起動します。
カメラを追尾させてみる
どうでしょう?操作はできるけど、カメラが動いてくれませ
んね。カメラが追尾するようにしてみましょう。
①ゲームを停止する。 をもう一度押下。
② HierarchyビューからMainCameraを選択する。
③ InspectorビューのAdd Componentを押下。
④Thで検索し、 ThirdPersonCameraを追加。
⑤もう一度ゲームを起動してみましょう。三人称視点
になりましたか。
アニメーションの動きを確認する。
ゲームを起動したらアニメーションの動きがどうなって
いるかみてみましょう。
UnityちゃんのInspectorビューにAnimatorコンポー
ネントがあるので、その中にある
UnityChanLocomotionsをダブルクリック。
Animatorウィンドウが表示されます。
その状態でゲームを動かしてみましょう。
UnityちゃんのAI化
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ちゃんが走り回りましたか?
VR化
GoogleCardBoard対応①
HierarchyビューにGvrViewerMainを配置。
Assets¥GoogleVR¥Prefabs¥にあります。
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で実行してみましょう。
うまく実行できましたか?
以上でHands-onは終了です!
お疲れさまでした!

UnityでVRアプリを作ってみよう! (ハンズオン編)