UnityでFPSゲームを作る⑥エイムを実装する。

前回の記事

UnityでFPSゲームを作る⑤銃を実装する。

 

今回は前回の記事で設置した銃にエイムを実装してみましょう。

マウスをクリックすると銃が動くわけですがその動く仕組みは以下の2つの方法どちらかで実装することになると思います。

  • AnimaterController、Animationの機能を使い銃の位置が変わるアニメーションを再生する。
  • ObjectのTransformを動的に変更する。

今回はスクリプトのみで実装するので、後者を採用することにしましょう。

 

UnityでFPSゲームを作る⑤銃を実装する。

前回の記事

UnityでFPSゲームを作る④ジャンプの修正

前回の記事まででFPSの基本的な視点操作を実装しました。

今回は銃をつけて打てるようにしたいと思います。

それでは必要な無料アセットを紹介します。

近未来の武器感がよかったのでこれにしました。

①これをインポートしてください。

こんなフォルダができました。

Prefabにはそのままシーンに配置してマテリアルも割り当てられたものができるのでそれを使いましょう。

 

赤が好みなんで赤にします。

②シーンに配置してください

その銃をMain Cameraの子オブジェクトにします。

以下のような構造になります。

 

③武器の位置をいい感じに調節します。

私の場合、以下のようになりました。インスペクターの位置も確認してみてください。

回転はさせていません。

 

いい感じですね。

 

次回は画面真ん中の十字とエイムを実装していきたいと思います。

UnityでFPSゲームを作る④ジャンプの修正

前回の記事

UnityでFPSゲームを作る③RigidBodyとジャンプの実装

 

前回の記事で実装したジャンプの連続で飛べてしまうという問題点を直島しょう。

実装するアルゴリズム

床にtagをつけ床にPlayerのClliderが接触しているかつスペースキーが押されたときにジャンプするようにする。

 

①Groundタグを作成する。

PlayerのインスペクターからGroundタグを作成しアタッチします。

②スクリプトを変更する。

前回のPlayerJump.csを以下のように変更します。

地面となるオブジェクト(その上でジャンプを許可したいオブジェクト)にはGroundタグをアタッチしてください

UnityでFPSゲームを作る③RigidBodyとジャンプの実装

前回の記事

UnityでFPSゲームを作る②FPS視点操作の調整

 

前回までで基本的なFPSの視点操作を実装しました。

 

今回は物理演算(RigidBody)とジャンプを実装します。

①空のPlayerオブジェクトにRigidbodyコンポーネントとCapsule Colliderを追加。

設定は以下の通りです。

Use GravityにチェックをいれConstraintsのFreeze Rotationすべてにチェックを入れます。これで転がらなくなります。

 

Capsule ColliderはEdit Clliderをクリックし形を調整します。

CenterのYを調節し地面の高さより少し高くします。

 

 

床をすり抜ける場合は床にColliderが付いているかを確認してください。

 

②ジャンプを実装します。

新しいスクリプト、PlayerJump.csを作成し、Playerオブジェクトにアタッチします。

 

インスペクターでの設定は以下の通りです。

PlayerにPlayerをアタッチし、Upseedはスペースキーを押したときの力の大きさです。調整してみてください。

以下のようになります。しかしこのスクリプトには問題があります。

 

上記のスクリプトの問題点

  • 連打で連続して飛べてしまう。

次回はこの問題を解決してみます。

UnityでFPSゲームを作る②FPS視点操作の調整

前回の記事

UnityでFPSゲームを作る①FPS視点操作

前回の記事で作ったFPS視点のスクリプトの問題点を改良します。

 

前回のスクリプトの問題点

  • 視点が一回転できてしまう。

ので縦方向の視点操作を制限しましょう。

以下が前回のPlayerController.csを改良したものです。

これでいい感じに角度が制限させると思います。

 

UnityでFPSゲームを作る①FPS視点操作

Unity初の記事はFPSゲームを作っていきたいと思います。

作業環境

  • Unity5.5.2
  • windows10 64bit
  • CPU i7 6700K メモリ 16GB GPU GTX1060

参考にさせて頂いたサイト

① プロジェクトの作成。

3Dのプロジェクトとして新規プロジェクトをさくせいします。

②平面を配置

(0,0,0)に3dobjectのPlaneを配置します。

③Playerを作成

HierarchyにCreate emptyで空のGameObjectを作成します。

名前をPlayerにしタグをPlayerにします。

 

④CameraをPlayerの子オブジェクトに

 

⑤スクリプトの作成

以下のPlayerController.csを作成しMain Cameraにアタッチします。

 

 

コンポーネントの設定は以下の様にしてください。

Speedは歩く速度なので調節してみてください。

すると、マウスでの視点操作、WASDで移動ができます。

 

AngularJSでHello World


さて、AngularJSが動作する環境を用意した次は実際にAngularJSを利用してHello Worldを表示してみましょう。

仕組みとしては

  1. JSファイルでモジュール、コントローラーを作る
  2. HTML内のどの範囲で上のモジュール、コントローラーが動作するかを記述
  3. HTMLの{{}}内がjavascriptの変数として扱われAngularJSで操作できる

といった感じでしょうか。

なにはともあれコードを見ていきましょう。

AngularJSの機能はモジュールとメソッドという単位で実装していきます。

 

 

AngularJSの基本形

 


それでは早速AngularJSを書いていきましょう。

以下がAngularJSを導入したindex.htmlです。

キモは <html ng-app> angular.min.jsの読み込み、そして{{}}内でJavascriptの処理が行える点でしょう。

では定番のHello Worldを表示してみましょう。

こんな感じで{{}}内にjavascriptを記述できます。

が、これではAngularJSを使ってHello Worldを表示したとは言えません。

あくまでAngularJSを導入してJavascriptをbody内に記述できるようにしてHello Worldを表示したにすぎませんよね。

それでは次回AngularJSを使ってHello Worldを表示してみましょう。

Modifierの使い方①基礎編

今回は3DオブジェクトにModifierを追加していきましょう。

Modifierとは非破壊で簡単にオブジェクトのディテールアップ、造形が行える機能のことです。

Modifierにもいろいろありますが今回はその全てに共通している基礎について説明します。

真ん中にキューブだけの簡単なシーンがあります。

まずmodifierを適応したいオブジェクトを右クリックで選択します。

Modify Generate Deform Simulate という列がありますが今回はGenerateのArrayを使ってみます。

Array をクリックするとModifier パネルにArray が追加されます。

するとなんか伸びましたか?

実はこれは伸びたのではなく並べられているのです。

試しにそのArrayの様々なプロパティをいじってみてください。

数が増えたり、xyzにオフセット(間隔)を持たせることが可能です。

そしてもう一つ、共通して重要なのはこれ

  • カメラマーク レンダリングに反映するか否か
  • 目マーク  プレビューに反映するか否か
  • □マーク エディットモード時に反映するか否か
  • 逆三角 そのModifierによって生成された点にたいしてエディットモードで編集可能か

Apply  :適応(破壊)

Copy   :Modifierをコピーしてほかのオブジェクトにペーストできます。