今回はちょっと面白いチュートリアルがあるというのでやってみる。
learnの中にあるPROJECT: SURVIVAL SHOOTERってやつ。
Unite training day 2014.で使われたプロジェクトらしい。
4.6必須で初心者向けになっている。
スライド・・・全編英語!!ひぃ!!
と思ったのだがちゃんとPROJECT: SURVIVAL SHOOTERの左下に講演の動画がついているではないか。親切。とにかくやってみる。
先に感想から。
長い・・・・とにかく長い・・・・・動画だけで軽く3時間半以上はあるんじゃなかろうか。なので基本スライドの方を見ながら分からないところを動画でってやるのがスムーズだと思う。
でも内容は非常に充実していて「おっ?!」「初耳!」「知らんかった・・・」というような事が多々あった。
基本的にはやってみた方がいいと思うのでザックリと発見とか面白かったところをまとめます。一部適当翻訳(っていうよりそうなんじゃね?程度の感覚)が混ざっております。間違いが多分に含まれている可能性があるのでご容赦ください。
目次
PHASE 2
Mecanimでよく分かってなかったAny Stateの使い方
よくよく調べればここに載ってるじゃーん・・・って話なのだが、どのステートにいても特定のステートに遷移させるという事ができるということらしい。
ただし、どのステートにも属さないためAny Stateへtransitionを繋ぐのはダメ。
確かに読めば分かるって感じではあるのだけれど、グッドプラクティスとして見どころ十分だった。このチュートリアルではステートを止めたい、つまり死んだら死んだステートに遷移してどこにも遷移しないようにという使い方をしている。
すごく分かりやすいAny Stateの使い方で、動きを止めたいとか、パワーアップ状態の時だけのアニメーションステートへの遷移とかちょっと考えただけでも色んな使い道があると思う。
Drag & Angular Drag to Infinity
Rigidbodyの空気抵抗の話。
数値を入れる以外にInfinityって入れることが出来るらしい。これも当然リファレンスに書いてある訳です。
でもやっぱり手を動かしながらだと覚えが違う。
何となくでやってると物体がドカンスカンして吹っ飛んだりしてゲラゲラ笑ってハイお仕舞いみたいな事になってしまいがち(自分がそう)なのでこうやって言われるとなるほどーってなるし1つ起きてほしくない衝突による力の発生みたいなものを避けるための手段を与えられた気がする。
Animatingメソッド
内容は平凡なんだけど書き方に感動してしまった。
79 80 |
// Create a boolean that is true if either of the input axes is non-zero. bool walking = h != 0f || v != 0f; |
このメソッドはfloat h,float vを引数に取ってて移動キーの入力があると0じゃなくなるっていう性質がある。
だったら初期化にそのまま条件式を入れてしまえ!っていう発想がすごいスマートで驚いた。確かにboolなんだから当たり前なんだろうけど条件分岐の時に使うっていう固定観念でいると頭ガツンってやられる。っていうかやられた。条件分岐の時だってtrueかfalseを入れてるってだけなんだもんね。
カッコいいコード。見習いたい。
PHASE 5
UI(uGUI)の使い方
UI(uGUI)のチュートリアル動画はゴロッゴロあるわけだから見た人からしたらそらそうだろって感じかもしれないけれど、初めての人には色々と発見がある。
Raycastsが通るようにするとか、NGUIにもあるけどアンカーの掛け方とか、スライダーの実装とか。現行のGUIシステムを使ってる人からしたらスライダーとか楽勝にもほどがあるってくらい便利だし覚えておきたい機能てんこ盛り。
NGUI持ってる人からしたらハイハイ的なことが多いだろうけどNGUIもアップデートでUI Rootがバックグラウンドの物へのクリックを邪魔するようになったりして結構ヒィヒィなので色々比較して場合によっては乗り換えだって検討してもいいと思う。
NGUIそんなに詳しいわけじゃないけどぶっちゃけアレ便利だってのも分かってるのでちょっとどっちがいいとかはさすがに言えない。アレ機能めっちゃ多いので見落としてるのかも知れないけど、こっちのスライダーにはMax Valueを指定できるってところは大した手間ではないとは言え計算するコード書かなくていいから楽だなと思った。NGUIのValueはfloatでMAXが1で固定だったと思う。
PHASE 7
コンポーネントのコピペ
コンポーネントの右上の歯車からコピーして、別のGameObjectのtransformの右上の歯車からペーストが出来る!知らなかった・・・・一々値見比べて入れなおしてた。
そりゃこのご時世だもん・・・・・そういう機能あるよね・・・・ハズカシス
light
必ず出てくるDirectional lightの事じゃなくて。
正直全然使ってないから成る程!と感心してしまった。
銃の発砲時の効果としてこのコンポーネントをつける。結構機能そのものに必死になってしまってエフェクトっておろそかになっちゃうけどエフェクトってすごい重要だからこういう使い方が出来るって発想を得られたのはありがたい。
実装も簡単だから使いまくれる。やったね。
PHASE 9
Animator Override Controller
これはホントにびっくりした。すでにあるAnimator Controllerのアニメーション部分だけ上書き(Override)出来るっていう機能。
Any State使わなくてもパワーアップ状態だけ動きが激しくなるとかその程度のことだったらこれだけで事足りてしまう。すげえ。Override以外出来ないのでもっと色んなステートが・・・っていう場合は素直にAnimator Controllerを別途用意するか同一コントローラーに付け足して、遷移に気をつけながらコーディングしましょう。
ギズモにタグ付け
Inspectorにあるサイコロクリックして色選ぶとシーン上のオブジェクトにタグが付く機能。正直小ネタレベルだけど、スポーン地点とか目にみえないオブジェクトの場合は重宝すると思う。目に見えるものにつけると画面上のギズモの邪魔になりそうだから微妙。
その他のポイント
知ってたから触れなかったけど役に立ちそうなポイントや重要な機能を羅列。
- Mecanim
- キャラの移動
- クリックポイントの取り方(Ray)
- RayのLayer指定、回避
- Particle(成分少なめ)
- Nav Mesh(AIの経路探索)
- 触れなかったけどPHASE 5以外でもバンバン出てくるUI(uGUI)
- Line Renderer
- Animationビュー
ザッとでこの量なのですごいボリューム。
すごい基本的な部分を除いてもこれだけ書くことがあるので一通りやるだけでメチャメチャ勉強になる。
これからUnity始める人にも今すでにやってる人にもすごくいい内容になってると思う。
動画とスライドで分かると思うけど躓いたら動画にくっついている機能別のチュートリアル動画に更に遡ってみるのもアリかも。理解が深まると思う。
SURVIVAL SHOOTER編って書いたけど他のやるかは未定。
さあ!みんなもチュートリアルやってみようぜ!
コメント
No Trackbacks.