【Unity】Playmaker 公式チュートリアル動画を日本語で読み解く04 - Device Roll
今回の動画は15分以上あるので、長いです。
デバイスを傾けたときに、中の宇宙船も傾くというアプリを作ります。
04 - Device Roll(デバイスの回転)
ロールとは
こうやってデバイスを傾けること。
ボタンが左、頭が右にあるのでこのポジションはLandscape Right。
ぐりぐり。
平衡状態は0。
右にこの辺りまで傾けると-1。
左にこの辺りまで傾けると+1。
全てを数値に当てはめるとこんな感じで表現ができる。
PlayMakerにてアプリ制作
Space Shipを置く
すでに宇宙船が置いてある・・・。前後左右がわかりやすいオブジェクトで代用できるので、自分でやるときは何かを代わりに置けばよい。
(Rotationが動くのをグリグリして確認)
Sceneにある宇宙船を掴んでドラッグしながらグリグリすると、右のInspectorにあるRotationの数値が変化。
縦に動かすと、Xの数値が、横に動かすとYの数値が、宇宙船の羽がグラグラするような感じで動かすと(画面でいうと、丸い玉みたいになってるのに沿って動かす)、Zの数値がそれぞれ変化。
下記は、Z数値が変化している様子。
Roll_Managerを作る
Empty Objectを置く
Game Object > Create Empty で作って、Roll_Managerと名前を変える。
FSMを作る(PlayMakerの中身)
① Set Orientationステートを作る
現在デバイスがどっちの向きになっているかを検知する。
アクションブラウザより「Device Orientation Event」を二つ設置し、以下のように設定する。
※orientation_leftとorientation_rightはあらかじめイベントとして作っておく。作り方は過去記事。
② Device Roll LとDevice Roll Rステートを作る
二つのステートは内容は同じ、ただ、左右に注意。
アクションブラウザより「Device Orientation Event」「Get Device Rall」「Convert Float To String」「Set GUI Text」を置いておく。
一つ目のDevice Orientationは先ほどのSet Orientationと同じ働き。向きが変わったら、検知する必要があるため設置。
二つ目にある、Get Device Rollをチェック。
Base Orientationはかなり重要。これを間違えるとうまく反応しない。きちんと左右があっていることを確認する。
Store Angleには変数を保存しておくところを設定する。ここではGlobal変数を用意する。
ーーーーーーー
グローバル変数の作り方
⑴ PlayMaker一番右端にある、Variablesをクリック。
⑵ 下部にあるGlobal Variablesをクリック。
⑶ 入力して、addを押す。
⑷ 注意喚起のポップアップができる時もあるが、OKで問題なし。
GlobalVariables用のフォルダを作りましたよ、と言うお知らせポップアップ。
⑸ できた。簡単。
ーーーーーーー
Limit Anglie とSmoothingはどんな動きにしたか個人の好みによるので、お好みで。
ビデオで設定しているSmoothing 2はそれなりにスムーズな模様。
常にアングルの情報を獲得していたいので、Every Frameは確実にチェックを。
三つ目にあるConvert Float To Stringと四つ目のGUI Textは以下のように設定。
ただ、この二つは傾きを数値で画面に出すだけのものなので、ただ傾いていることがわかればいいのであれば、設置しなくて問題なし。
ちなみに設置する場合は、GUI Textを画面上に置いておく必要がある。設置の仕方は過去記事。
device_roll_outputは先ほどのグローバル変数のように、変数として用意する。
が、今回はグローバルでなく、ローカルの変数として用意。
こんな感じで入力して、Addを押す。
(ただ、今回の検証だけであれば、正直別に変数であれば、グローバルでもローカルでも問題なし。)
テキストをこんな風に置けたら完璧。
Space Shipの中身を作る
FMSを作る
ステートは一つ。その中に、アクションブラウザからそれぞれ下記のように選んで設置。
今回も、Convert Flot To StringとSet GUI Textはお好みで。
ship_rollと言うローカル変数も作っておく。(Float)
① 先にSet Rotation
傾いたときに変動するのはYの値のみなので、YAngleのみにship_roll。これでデバイスを傾けると、宇宙船が傾いた動きにをしてくれる。
② Sample Curveの説明
宇宙船が傾く仕様はここで設定!
緑の線をクリックすると、こんなグラフが出る。
全体でみると、左は-1.5。右は+1.5。上は50。下は-50の範囲。
左右の数値はまさに上で書いた、ローテーションの位置、上下の数値は角度を表す。
ここで設定されているものは、左は、-1.5、45の位置にポイント。 右は+1.5、-45の位置にポイント。
つまり、-1.5の位置に動かすと、宇宙船が45度傾いて、1.5の位置に動かすと、反対側に45度傾くということ。
Sample Curveを設置した直後は緑の線がなく、ブランクになっているが、そこをクリックすればOK。
ちなみに、下の方にある基本の緑の線をどれか選択すれば。線を自分でグリグリ動かすことが可能。(例えば、最初と最後の点をクリックするとペンツールみたいにハンドルが!)
デバイスで確認する。
Runの仕方は過去記事に。
ヌメヌメと傾いてる。
もちろん上下を逆にしても、いい感じにくるっと反転して、同じような動きをしてくれる。
次の記事はこちら
前の記事はこちら
↓Unity全然わからない人への、はじめの一歩にオススメの本
Unity5入門 最新開発環境による簡単3D&2Dゲーム制作
- 作者: 荒川巧也,浅野祐一
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2015/07/29
- メディア: 単行本
- この商品を含むブログ (1件) を見る