読者です 読者をやめる 読者になる 読者になる

とあるプログラマの備忘録

都内某所に住むプログラマが自分用に備忘録を残すという趣旨のブログです。はてなダイアリーから移動しました!

【Unity入門】FPSのゾンビゲー見たいなのを作ってみたい(願望) 第二回「キャラ動かしてみようぜ」

前回はマップ作りましたが、まだFPSにはほど遠いのでとりあえず自分である
キャラクター置きたいと思います。
できれば銃を撃つ所まで行きたいのですがスクリプトも絡むのでどうなる事やら。。

何度も言いますが、ここはUnity初心者が七転八倒しながらUnityを勉強するときの備忘録になります。

1.とりあえずキャラ置こうぜ
新しいプロジェクトを作ったときにCharacter Controllerのパッケージをインポートしておいたので、
Assets > Standard Assets > Character Controllersの中の
「First Person Controller.prefab」をマップ上に置いてみます。

そうするとこんな感じなるので、

Hierarchyの名前が「First Person Controller」になっているのでこれを「Player」に変えておきます。
この状態で一旦シュミレートしてみましょう。
どうでしょう?
WASDで移動して、スペースでジャンプできると思います。
マウスを動かせば視点変更。

いつもやっているFPSの操作ができると思います。
(こんな山と草原のマップなんてあり得ねーですがねwww)

カメラ的に走っている感とかはありませんが、First Person Controller.prefabをマップに置くだけでここまでシュミレートしてくれるなんて
これがUnityゲームエンジンの実力が…

2.あれ?銃なくね?
銃無くしてFPSとは言えないのでUnityのAssets Storeから銃の3Dモデルを拾ってきます。
本当はM4とかAKとか欲しかったんだけど、有料なので今回はこれ。
無料の銃のモデルを公開してくれてるのでこれを使わせてもらいます。

これをインポートします。

3.銃を持ってる様な位置にセットしよう
インポートしたら
Assets > CunstomizableGun_FreeED > Prefab
の使いたい銃をキャラクタープレハブのカメラの位置に会わせて設置しましょう。
InspectorのScaleが100だと大きすぎるので、50程度に調整しました

何度かシュミレートして銃の位置を微調整するとおもいます。

いい位置がにセットできたら、銃のプレハブをPlayerにドラッグ&ドロップします。
これでプレイヤーと銃は一緒くたの存在になるんだと思います。

この状態で趣味レートするとどうでしょう?プレイヤーの視点から消えずに一緒にはしっていませんかね?
なんか円柱見たいなものから銃が生えてる端から見るとかなり滑稽な姿ですがwとりあえずこれでいいとしましょうww

名前がAssault Rifle Low Freeとか長いので「Gun」に変更しておきます。

4.この銃、弾出ないじゃん
はい、まだただのハリボテなので弾でないです。
では弾の元素材作りたいと思います。

Hierarchy > create > Sphereを選択して球体を出します。名前を「bullet」に変更
銃弾としては大きすぎるので
InspectorのScaleを0.2程度にしてみます。(これでもでかいけど、小さすぎると見えないので一旦これで)

そしたら銃弾をプレハブ化します。
Project > create > Prefabを選択して名前を「BulletPrefab」にします、
そしたらさっき作ったHierarchy > bulletをBulletPrefabドラッグ&ドロップします。
白色だとわかりづらいのでProject > create > Materialをだして赤色にします。
(プレハブ化、マテリアルで色づけができない人はググるとすぐでてきますよb)
こんな感じになります。

最後に銃弾プレハブに物理マテリアルを追加します。
inspector > Add Conponent > Physics > Rigidbodyを選択

これで一応プレイヤーと銃を画面にセットできました。

関連記事リンク
【Unity入門】FPSのゾンビゲー見たいなのを作ってみたい(願望) 第一回「マップ作ろうぜ!」
【Unity入門】FPSのゾンビゲー見たいなのを作ってみたい(願望) 第二回「キャラ動かしてみようぜ」
【Unity入門】FPSのゾンビゲー見たいなのを作ってみたい(願望) 第三回「銃弾が撃てるスクリプトが書きたい」
【Unity入門】FPSのゾンビゲー見たいなのを作ってみたい(願望) 第四回「敵に動きを入れたい」