Maya2017→Unityに挑戦⑥ ゲームのように動き回るカメラの設定

どうも!Maya太郎です。

Unityに興味を持った方が週末にUnityいじりが出来るように
今回も金曜ネタとしてUnityを紹介します。

今回紹介の機能で興味が出た方は、週末にUnityを使ってみてはいかがでしょうか?
自宅にMayaが無い方でもOK。(モデルデータは用意しておくこと)

Mayaユーザーでも簡単にUnityが操作できるように特化した内容ですので
細かいことはすっ飛ばしています
きちんとUnityを学ばれる方はUnity目線での学習をオススメします。

今回は、FPS(主人公視点)のゲームのようにMayaで作ったシーン内を動き回る
もっともシンプルな方法を紹介します。
シーンはこのシリーズ③から使用している街角のシーンの続きです。

本来はマテリアルの設定の話しをするつもりでしたが、
少しでも早く、FPS操作が出来るようになって「移動を体感」していただくために
カメラ操作のやり方を優先しました。
すでに簡単なマテリアル設定やシーンのライティングなどを行っております。


FPS用のアセットを読み込む

Unityはゲームエンジンですので、
FPSやTPS(第三者視点)のコントロール用のアセットが付属しています。
それを読み込んで使えばいい、それだけです
しかしTPS用のアセットは、まともに使えるようにするためには
スクリプトを書く必要があります。ということで挫折。(きっぱり)
FPSオンリーで割り切って紹介いたします。

現在のアセット欄は、MayaからインポートしたFBXデータ関連のものだけですが
ここに必要なものをどんどん追加していくのです。

Unityでは、付属のアセットを必要に応じて追加インポートするようになっています。
無駄なものを読み込まないようにするためでしょうね。
Assets→Import Package→Characters
キャラクター制御関連のアセットを読み込みます。

より細かなインポート項目が選べますが
慣れない内はすべて選んだ初期状態のまま「Import」をしましょう。

しばらくすると、アセットが追加されます。

追加されたアセットは幾層にもフォルダ階層が分かれていますが、
FPSのコントロールに使うのは下図の階層にある
FPS Controllerというプレハブです。
「プレハブ」というUnityの機能については
Unityをよく理解しないと、うまく説明できません。
アセットの詰め合わせのようなイメージかな?(適当)

FPS Controllerをシーン内にドラッグすることでFPSコントロール用の「モノ」が現れます。

実は、この「モノ」にはカメラや音源(歩行音やジャンプ音を鳴らすため)
衝突判定用のカプセルなど、FPS視点制御用の一連の機能が詰まっています。
こういうのをプレハブというのでしょうか?(適当)

インスペクタ(Mayaでのアトリビュートエディターのようなもの)をみると
コントローラー用スクリプトやリジッドボディ、
音源などがシーンビュー内で見た目どおり収められてるのが分かります。
ここのWalk SpeedやRun Speedなどを調整すると
面白いことになります。(今回はやりませんが)

初心者のうちは混乱のもとになるので
最初からあったカメラ「Main Camera」はしておきましょう。
(対処の仕方が分かっていれば、消さなくてもいいです)

 


実行する

Unityは「ゲーム再生ボタン」で実行開始です。

地面に相当するオブジェクトに衝突判定を設定していない場合、実行直後に地面を突き抜けて
奈落の底に落ちてゆきます。よくあることですが…(下記の動画、落下音は編集時の後付けです)

 

読み込んだオブジェクトに衝突判定をするよりも手っ取り早い方法が
Unityで板オブジェクトを作って、それを地面の下に設置する方法です。

Unityで作るオブジェクトには最初からコライダ(衝突判定)が設定されているのです。

地面のぎりぎり下にもぐりこませます。

 

これでうまくいきました。
走ったりジャンプもゲーム感覚で遊べます。すばらしいです。
しかし、床以外の衝突判定はしていませんので突き抜けてしまいます。(動画後半)
これらもコリジョン設定を後ほど行いますが、そういった調整は後回しでもいいかと…

 

今回のFPS用の設定が出来るだけで、
Mayaでは体験できないインタラクティブなシーンの没入感が得られます。
Occulus RiftやHTC VIVEなどのVRメガネがあれば、これだけでVR空間を歩き回れる…はずです。
(Maya太郎は持ってないので未検証ですが…)

簡単な背景シーンでもいいからUnityにインポートして動かしてみればきっと面白さがお分かりいただけると思います。

ということでよい週末を!