Unityを使った3Dゲームの作り方(かめくめ)Unityを使った3Dゲームの作り方(かめくめ)ゲーム開発エンジンUnityを使った3Dゲームの制作に参考になる情報を公開しています。20:23に記載している通りStandardAssetsのEthanをご使用ください。今回からスクリプトを作成していきます。前回3DモデルにCharacterControllerコンポーネントを取りつけてキャラクターを移動させる機能を取りつけました。実際にキャラクターを動かすにはスクリプトを記述してキャラクターである「Musasi」君に取りつける必要があります。スポンサーリンクキャラクターを移動させる方法を考えるまずはFPSゲームでキャラクターをどのように動かすか考えましょう。第3者視点のアクションゲームでは↑のキーを押せばキャラクタが上の方向を向きそちらに移動します。←のキーを押せば左の方向を向きそちらに移動します。向きを変えずに押した方向に進むようにします。前進は問題ないと思いますが、後進の場合は前を向いたまま後ろ歩き、左右に移動する場合は前を向いたままカニ歩きするという感じになります。キャラクターが向きを変える場合はマウス操作やゲームパッドの右スティックを使うようにします。キャラクターの向きに関しては次回以降やると思います。これ結構大変そう・・・・(^_^;)キャラクター移動のスクリプトに関してはUnityでキャラクターの移動をプログラミングしてみるUnityで3Dキャラクターモデルを配置し、キャラクターをCharacterControllerの機能を使って移動させるようなプログラミングをしてみます。02:49を参照してください。キャラクター移動のスクリプトの考え方を記載しています。前後に動く場合はキー操作のInput.GetAxis(“Vertical”)左右に動く場合はキー操作のInput.GetAxis(“Horizontal”)キャラクターには重力を働かせ、地面と接地している時だけ移動出来るようにします。キャラクターを移動させるスクリプトMyCharaの作成ではスクリプトファイルを作成していきます。↑のようにProjectタブのAssetsフォルダで右クリックしてスクリプトファイルを作成する事が出来ます。Componentから選択する方法と、スクリプトファイルをゲームオブジェクトにドラッグ&ドロップする方法があります。Scriptを選択します。キャラクター操作スクリプトはMyCharaという名前に設定しました。Time.deltaTime);}}詳細はさきほど紹介したキャラクター移動のスクリプトに関してのリンク先を見てください。Startメソッド内でCharacterControllerコンポーネントの取得をし、Updateメソッド内ではCharacterControllerのisGroundedプロパティで地面にコライダが接地しているかどうかを確認しています。地面に接地していたら重力加速度は0になるのと、移動値も0に初期化します。地面に接地していたら前後左右のキーの押している度合いをそれぞれの軸の速度に設定します。地面に接地しているかしていないかにかかわらず重力は働くので重力値Physics.gravity.yの値にTime.deltaTimeをかけ重力を計算しています。Time.deltaTimeはパソコンの処理能力によってUpdateメソッドの呼ばれる回数が変わってくるので、性能差で処理する回数が変わらないようにかけています。重力に関してはUnityで間違った重力の計算をしているかも!?Unityのキャラクター等に重力を働かせる事は多いですが、重力を働かせる処理が実は間違っているかもしれません。20:39を参照してください。最後にCharacterControllerのMoveメソッドでキャラクターを移動させています。これでスクリプトが完成しました。Assetエリアでスクリプトを作成し、まだキャラクターにスクリプトを取りつけていない場合はスクリプトを「Musasi」君にドラッグ&ドロップして取りつけてください。↑のようにスクリプトファイルを「Musasi」君にドラッグ&ドロップするだけでコンポーネントを取りつけられます。キャラクターの動きを確認するそれではUnityの実行ボタンを押してキャラクターが移動するかどうか確認しましょう。現時点では床が真っ白で平らで広く、カメラの視点がキャラクターの視点なので移動している事が解りづらくなっています。その為、Sceneタブで第3者目線で見えるようにして確認します。SceneタブとGameタブを別のウインドウにドラッグ&ドロップして同時に確認出来るようにします。↑のようにひとつのウインドウ内にSceneタブとGameタブがあると同時に確認が出来ません。Sceneタブをちょっとだけ下にドラッグして上のような状態でドロップするとGameタブの左に別のウインドウが出来て横に並びます。↑が横並びにした状態です。ここでUnityの実行ボタンを押せば実際のゲーム画面(Gameタブ)と作者目線(Sceneタブ)とを同時に確認出来ます。実際のゲームで見える範囲だけでなく周りの状況等を確認したい時はSceneタブが見えると便利です。横並びがうまく出来ないという方は、Consoleタブ等がある下のウインドウにSceneタブをドラッグ&ドロップして確認するのもいいかもしれません。これで同時確認が出来るようになったのでキャラクターの動きを確認してみましょう。上が前後左右にキャラクターを移動させてみた結果になります。Gameタブでは移動の確認が難しいのでSceneタブで確認しています。キャラクターが前方を向いたまま前、後ろ、左、右に動くようになりました。アニメーションの切り替えを行っていないのでキャラクターはずっと同じ状態のままおばけのようにスーッと動きます(=_=)FPSだと自分自身を見る事はあまりないのでアニメーションを設定しない、というよりキャラクター自体を作らず手だけを動かすという場合もあるようです。わたくしの場合はとりあえずキャラクターモデルを配置し、アニメーションを設定していこうと思います。FPSからTPSに変更する時も結構楽にいけるかもしれません。これでキャラクターを簡易的に動かす事ができるようになりました。歩くモーションへの切り替えやキャラクターが走る、視点を切り替えるという機能を作成していないので、キャラクターの動きとしては全然物足りませんが、少しづつ出来る事を増やしていきましょう。次回はキャラクターが走る機能とアニメーションの切り替えの機能あたりを作っていこうかなと思います。23:30今このサイトをベースにFPSを作成しています。カメラの事で質問なんですが、Unity上で実行した際カメラがどんどんキャラから離れて行ってしまい最終的にはカメラがキャラを追従する形になってしまします。分かる方いらっしゃいましたらご回答よろしくお願い致します。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。サイト内検索が出来ますプロフィール管理人のかめくめちゃんです。(-_-)メールはこちらにお願いします(記事への質問はコメント欄にお願いいたします)。kamekumechan@gmail.comいずれはSIRENやバイオハザードみたいなアクションゲームを作りたいと思っています。ゲームシナリオが書けないので面白いゲームはなかなか作れません・・・・。(^_^;)名前の由来はカメが好きだからです。Д`)シクシク...お知らせ2020/01/18個人的にUnity2019.2.18f1をインストールしました。2020/01/01あけましておめでとうございます。(^^)/ユニティちゃんのRPGを作ってみようのPartyStatusスクリプトでpartyMembersのListの型がCharacterStatusとなっていたのでAllyStatusに変更しました。変更したというか、元々AllyStatusに書き換える前のスクリプトを掲載していたので修正しました。ユニティちゃんのRPGを作ってみよう10ーコマンド画面の作成とステータスの表示ーユニティちゃんのRPGでコマンド画面の作成とステータスコマンドを作成し、選択したキャラクターのステータスを表示するようにしていきます。20:00GetPartyStatusメソッドの戻り値もそれに伴って変更しています。2018/08/07コメント欄へのわたくしの返信は停止しております。わたくしに出来る事は既に記事にしてあるので、ブログ右上の検索窓を活用してください。(._.)またブログの最初の方の機能を積み上げていく記事に関しての疑問点は当ブログ記事のスクリプトの説明と寄せられた質問への回答Unityを使った3Dゲームの作り方(かめくめ)の機能積み上げ形式の記事のスクリプトの説明と寄せられた記事の機能についての質問への回答を掲載しています。21:41も参照してみてください。コメントの返信はありませんが、回答は記事に反映されている可能性があります。当ブログはハイスピードプランです。WordPressの編集画面の動作が早くなった。Unityを使った3Dゲームの作り方(かめくめ).。