FPSを作ってみよう1-FirstPersonCharacterを使ってみる-

今回から『FPSを作ってみよう』というカテゴリを作り、少しづつFPSゲームを作っていく記事を作成したいと思います。
FPSを作りたい方が結構いるみたいです(わたくしの勝手な推測を含む)。

FPSってFirstPersonShooterの略だったんですね、FirstPersonShootingだと思ってました。
あれ?違う?(^_^;)

今までの記事では機能毎に新しくスクリプトを作成していたので、少しづつ作りたい人には少し不便だったかもしれません。

と言ってもすべての記事を段階的に作成していく記事にするわけでなくFPSに関してだけカテゴリを分けて作ってみようと思います。

FPS以外のゲームの機能に関しては今まで通りです。

あらかじめ言及しておきますが、ゲーム作り初心者向けになります。
機能を追加していくスピードもゆっくり進み、いきなり難しくならないようにしていきたいと思います。

ある程度ゲームっぽい感じに仕上げたいところですが、いかんせんわたくし自身がFPSが作れるかどうかわかりませんのでどの程度まで作れるかわかりません。

また、このカテゴリ以外の記事内容へのリンクがあり、その内容を理解する必要が出てくる項目も多々ありますのでご了承ください。
わたくしの能力不足で先に進まない事もありえます(+_+)

これだけ言い訳を入れておけば途中で投げ出しても許してもらえるかな・・・・(^_^;)

スポンサーリンク

Standard AssetsのFPSControllerを設置する

UnityのStandard Assets内にあるFPSControllerはFPSを作る時に必要なキャラクターの機能を搭載しているので、これをキャラクターモデルに設定すればキーボードとマウスを使った主人公キャラクターの移動や視点変更、ジャンプ等の機能が使えます。

ただスクリプトがC#で書かれている所、当ブログではJavaScriptでスクリプトを書いている所、
スクリプトを変更する時に既存のスクリプトを解析しなければいけない点を踏まえてこの機能は使いません。
今回はFPSの動きを確認する為に使用します。

もちろんFPSControllerを使って改造していくのもいいと思います。
というかFPSの機能を標準で搭載してくれてるのに使わない方がもったいない気もしますが・・・・(^_^;)
わたくしは一から作っていく事にします。(^_^)/

まずはUnityのインストール時に入っているStandard AssetsのFPSの機能を使って動きを確認してみます。

Unityインストール時にStandard Assetsのチェックを入れなかった人はUnityからStandard AssetsをダウンロードするかAsset Storeからもダウンロード出来ます。

FirstPersonCharacter

Assetsエリアの

Standard Assets→Characters→FirstPersonCharacter→Prefabs→FPSController

をヒエラルキーにドラッグ&ドロップしてください。

RigidBodyFPSControllerというのもありますが、こちらはRigidbodyとCapsuleColliderを使ってキャラクターを移動させ、
FPSControllerはCharacterControllerを使ってキャラクターを移動させます。

Unityではキャラクターを動かす時にRigidbody+コライダ、またはCharacterControllerを使います。
なのでどちらを使ってもOKです。

多少違いはありますが、わたくしの場合CharacterControllerを使ってキャラクターを動かします。

FPSControllerを見るとCharacterControllerの他にRigidbodyも取り付けてあり混乱しますが、とりあえずここでは気にせずいきましょう。

FirstPersonCharacterのインスペクタ

ヒエラルキーに設置したFPSControllerを選択するとインスペクタに↑のように表示されます。

TransformのYを2に設定しておきます。
これはステージを設置した時にステージにめり込まないように少し上から登場させる為です。

FirstPersonControllerコンポーネントの項目でパラメータを変更するとキャラクターの動きを変更出来ます。
歩く速さや走る速さ等は言及しなくてもわかりますね・・・。

細かい設定に関しては解析してないのでわかりませんが色々細かく設定出来るようです。
(FPSControllerは使わないので解析していません。ただ単にわからないだけと誰かが言っている・・・・)

FPSControllerの動きを確認する前にキャラクターが移動する土台を作ります。
ヒエラルキー上で右クリックし3D Object→Cubeを選択し、名前をYukaと変更します。

床のインスペクタ

Yukaを選択するとインスペクタは↑のようになります。
TransformのXとZを100に設定します。
これでFPSControllerが移動する床の作成が完了しました。

FPSControllerを使って床の上の移動を確認する

それではFPSControllerの機能を使って床の上を移動させてみましょう。

ここでキャラクターと言わずFPSControllerと言っているのはキャラクターモデルにFPSControllerを取りつけていないからです。

キャラクターモデルは視覚的に必要ですが、床との当たり判定や移動等はFPSControllerが行っているのでキャラクターモデルがなくても問題ありません。

それではUnityの実行ボタンを押してください。

キャラクターの移動はA(左)、W(前)、S(後)、D(右)または↑↓←→のキーで移動出来ます。
左Shiftキーを押しながら移動キーを押すと走ります。

キャラクターの向きはマウスで向きを変えるので、移動キーで左に移動してもマウスを動かさなければ前方を向いたまま左に移動するカニ歩きになります。
またSpaceキーを押すとジャンプします。

またUnityの実行ボタンを押すとマウスカーソルが非表示になるので、実行を停止する事が出来なくなります。
マウスカーソルを表示させるにはEscキーを押してください。

いきなりマウスカーソルが消えると焦りますが、Escキーを押すと表示されると言う事を覚えておいてください。

FPSControllerの動きの確認

↑が実行例です。

上の例ではSceneタブで確認しているので3人称視点になっていますが、Gameタブで実際の画面を確認すると1人称視点になっている事がわかります。

キャラクターが動くとカメラが上下に動きキャラクターの目の動きを表現してますね。
FPSではカメラがキャラクターの目になるので、こういった演出も必要になりますね・・・・大変そう((+_+))

またマウス操作で視点を変更するとキャラクターの向きが変わりますが、FPSControllerでは

FPSControllerを設置したヒエラルキー

↑のようにFPSControllerの子要素にFirstPersonCharacterがありそこにカメラが設置されています。

マウスの動きで横を向いた時は親要素のFPSControllerのY軸の角度を変更し、マウスの動きで上下を向いた時は子要素のFirstPersonCharacterのX軸の角度を変更しています。
移動方向は親要素で、視点の方向は子要素にしています。

親要素のX軸の角度を変更すると移動キーを押した時に空中の方向に歩いていこうとする為おかしい動作になってしまうのかも。
移動方向と視点の方向は別にするってことですね。

ここら辺の機能を作成する時は参考にしよう(-.-)

次回から作っていくFPSの機能について

さて、今回はUnityに標準装備されているFPSControllerを使って動きを確認してみました。

これから自前でキャラクターの動きを作成していくので、ある程度どのような動きにするか知っておく必要があったのでFPSControllerを使ってみましたが、
一から作成すると色々大変そうですね・・・(^_^;)

次回はAsset Storeでキャラクターをダウンロードして、キャラクターの移動の機能を取りつけるところまでやってみようと思います。

以前の記事でキャラクターの移動の機能はやっているのでスルーしておきたいところですが、再確認と言う意味も込めてまた作ってみましょう。
2度手間な気がしないでもないですが・・・・。

あぁ・・・ある程度機能を完成させてから記事を書き始めればよかった・・・・(^_^;)
機能が出来るかわからない状況でカテゴリまで作ってしまった(-_-)