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

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

Embed Size (px)

Citation preview

Unity Hands-onUnityで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は終了です!お疲れさまでした!