2019年5月18日. Unityで使うカメラの設定値を変更したり、カメラがキャラクターを追従するようにするしていきます。 gametukurikata.com 2016.01.21 レーダーのように見せようと思います。, ヒエラルキー上で右クリック→Cameraを選択し、新しいカメラを作成し、名前をRadarCameraとします。, レーダー用カメラを↑のような位置とサイズに変更します(設定する値はもちろんそれぞれ変わると思います)。 全然プロフィールになってないな・・・・(-.-), の記事に記載の順番で見て頂くとUnityの基本的な使い方がわかり、簡単なTPSゲームの作成までが出来ます。, わたくしに出来る事は既に記事にしてあるので、ブログ右上の検索窓を活用してください。(._. Render ModeをWorld Spaceにしたことで他のゲームオブジェクトと同じ空間に存在出来るようになります。, ↑のようにRadarUIの子要素のImageのインスペクタを表示しWidthとHeightをレーダーカメラから見て見やすい大きさに調整します。, 矢印のImageを指定したいので、Source ImageにButtonArrowUpSpriteを設定します。 この記事用にメインカメラをキャラクターの子要素に設置した為、反転すると急激に画面が変わってます(キャラクターの後ろにカメラが移動する為)が気にしないでください。, これでレーダーカメラがキャラクターの進んでいる方向に回転する機能も出来上がりました。, カメラを回転させるRotateRadarCameraスクリプトのVector3.Slerpの第3引数でTime.deltaTimeに整数値をかけるとレーダーカメラの回転が速くなります。, 滑らかに移動させる時にVector3.Lerpをよく使いますが、回転等はVector3.Slerpを使う方がいいですね。, 現状レーダーカメラの背景には↑のように灰色が表示されています。 Unityなどでゲームを作っている時、必ずカメラを配置すると思います。. By following users and tags, you can catch up information on technical fields that you are interested in as a whole, By "stocking" the articles you like, you can search right away. What is going on with this article? Unityでカメラの向きを基準に移動する方法と、追従して回転できるカメラの実装 この記事は2016年11月4日に書かれたものです。 内容が古い可能性がありますのでご注意ください。 右上にゲームステージ全体を映すような視点のカメラが設置されます。, 次にキャラクターを単純な丸い単色の目印にして、キャラクターの代わりにレーダーカメラに表示させたいのですが、どうやったら実現出来るでしょうか?, キャラクターと同じように目印が動くという事に注目すれば意外と簡単に出来ちゃいます。 Qiita Jobsで転職すると、お祝い金30万円がもらえるキャンペーンを実施中!, you can read useful information later efficiently. Help us understand the problem. Copyright © 2016-2020 かめくめちゃん All Rights Reserved. 他に使いたい矢印があればそれを設定してください。, Scene画面を見てキャラクターが向いている方向に矢印が向くようにRadarUIを回転させています。, ↑のような感じで頭上に位置するようにします。 これはClear FlagsにSkyBoxが設定されていてそれを表示しているからです。, ↑のようにRadar CameraのClear FlagsをDepth onlyにすると背景を表示しなくなります。, ↑のようにレーダーカメラの背景がなくなりました。 キャラクターにカメラを追従させるには ProjectタブのAssetsフォルダで右クリック→Materialを選択しマテリアルを作成し、名前をMyRadarとします。, MyRadarを選択すると、インスペクタに↑のように表示されるので赤い四角の中をクリックし色の選択画面を開きます。, ↑のような画面が表示されるので、色を赤色に設定します。 これで主人公キャラクター用の目印マテリアルMyRadarが出来上がりました。, 出来上がったマテリアルをさきほど作成したRadarゲームオブジェクトにドラッグ&ドロップしてマテリアルを設定します。, ↑がマテリアルを設定した後のゲーム画面です。 デフォルトだと白いので目印としては目立ちません。, そこでマテリアルを新しく作りRadarにそのマテリアルを設定します。 ゲームステージ全体が大きい場合はゲームステージの一部だけを表示させ、キャラクターに追従するようにレーダー用カメラを移動させるといいと思います。, ↑が実際のゲーム画面になります。 敵キャラクターには別の色の目印を付けると敵がどこにいるかわかりやすくなると思います。, キャラクターが坂を登ったり、ジャンプした時も目印が同じように動くのでちょっとかわいらしくもありますね(^^)v, 次にキャラクターが向きを変えるとレーダーカメラも回転してキャラクターが進んでいる向きを常に上向きにしてみます。, キャラクターが進む方向がわかりやすいように目印を丸のオブジェクトから矢印のオブジェクトに変更します。, RadarUIを選択しインスペクタで上のようにCanvasのRender ModeをWorld Spaceにします。 Why not register and get more from Qiita? ゲーム画面とかぶって解らなくなる事もあるので背景があった方がわかりやすいとは思います。, メールはこちらにお願いします(記事に関する質問は送らないでください)。 レーダーカメラにも赤色が目立って表示されていますが、キャラクターが少し邪魔で目印が見えにくくなっています。, レーダーカメラは上からの視点なのでキャラクターの頭の上にキャラクターよりも大きい目印を作ればOKだ!, とやると確かにOKではあるんですが、目印よりも大きいキャラクターがいたり手が目印の端から飛び出ていたりで見えてしまうとカッコ悪いです。, そこでレーダー用カメラの表示する対象を選択して、ゲームステージと目印だけを表示するようにします。 ), HDリマスターで新・女神転生3が出来る!かなりやりつくしたゲームだけどまたやりたいなぁ・・・・, ゲーム開発エンジンUnityを使った3Dゲームの制作に参考になる情報を公開しています。これからゲーム作りを始めたい人にはいいかも?, Unityでサブカメラを作成し、メインカメラの右上に小さく表示します。これでキャラクターの頭上からの視点を右上に小さく表示するといったことが出来ます, Unityで使うカメラの設定値を変更したり、カメラがキャラクターを追従するようにするしていきます。, Unityを使った3Dゲームの作り方(かめくめ)で、はじめてUnityの学習をする時の当ブログの記事を読む順番を書きました。機能を積み上げていく形になるので便利かも?, Unityを使った3Dゲームの作り方(かめくめ)の機能積み上げ形式の記事のスクリプトの説明と寄せられた記事の機能についての質問への回答を掲載しています。, Unityインターハイとは、ユニティー・テクノロジーズ・ジャパン主催の高校生・高等専門学校生のゲーム開発全国大会です。, UnityのML-Agentsを使って敵キャラを強化学習して主人公を追いかけるようにする, UnityのVisual Effect GraphのOutput Particle Forward Decalで銃の弾痕エフェクトを作成し使用する. こんにちは、もぎです。 Unityでゲームを作る場合に必ず必要なカメラオブジェクト。 カメラオブジェクトをいじるといろいろなことができるようになります。 今回の記事はカメラオブジェクトをいじると、どのようなことができるのかまとめてみました。 アクションゲームなどではプレイヤーが動いた分だけカメラの表示範囲を変更したいですよね。 そのような時は、プレイヤーにあわせてカメラを追従させましょう。 kamekumechan@gmail.com, いずれはSIRENやバイオハザードみたいなアクションゲームを作りたいと思っています。, ゲームシナリオが書けないので面白いゲームはなかなか作れません・・・・。(^_^;), 名前の由来はカメが好きだからです。 これは足元に設置するとUIはペラペラなので坂などを登った時に半分埋まってしまうのを避ける為です。, 次はレーダーカメラがキャラクターの移動方向に従って回転するスクリプトを作成します。 カメラの表示対象はCulling Maskで設定出来ます。, と言う事でゲームステージにField、キャラクターの子要素のRadarにRadarというレイヤーを設定します。, ↑のようにLayerからAdd Layerを選択します。 そうです!, いや違います・・・・。 概要 キャラクターにカメラを追従させるには カメラを対象の子オブジェクトにすると簡単に実現できます。 でも、ころがる球にこの方法で追従させようとすると、カメラも一緒にクルクル回ってしまいます … 初心者による初心者のための初心者目線レクチャー、簡単Unity。今回は「キャラクターを追従するカメラ」について。カメラ制御もいろいろできたら楽しいものができそうですよね! (UnityのEditメニュー→Project Settings→Tags and Layersからでもレイヤーは作成出来ます), RaydarとFieldというレイヤー名をつけ、キャラクターの子要素のRadarはRadarレイヤー、ゲームステージ全体をFieldレイヤーにします。 以前の記事でメインカメラとは別のカメラを作成し、別の視点で小窓に表示して俯瞰してキャラクターの動きが見えるようにしました。, この記事ではメインカメラとは別のカメラを設置してゲームステージの全体像が別視点で見えるというものでした。, ゲームのステージが大きい時にステージ全体をカメラで表示した場合、実際に動いているキャラクターの色合いが地味で動きが見づらかったりします。, そこで今回は新しいカメラを作り別の視点で小窓に表示するところまでは同じで、キャラクターをもっと単純な形の丸で表示し、色も単色にして動きがわかりやすくなる これでレイヤーの設定が出来ました。, 最後にレーダーカメラの方でRadar、Fieldレイヤーのみを表示するように設定していきます。, また、メインカメラにレーダーカメラ用の目印が表示されてしまっているので、メインカメラには目印であるRadarは表示されないようにします。, ↑のようにMain CameraのCulling MaskでRadarレイヤーを外します。, これでキャラクターの目印の設定とレーダーカメラの設定が終了したので、Unityの実行ボタンを押して確認してみましょう。, キャラクターを移動させるとレーダーカメラの目印も動くようになりました。 カメラを対象の子オブジェクトにすると簡単に実現できます。, でも、ころがる球にこの方法で追従させようとすると、カメラも一緒にクルクル回ってしまいます。, このようなコードを書いてカメラにAddComponentするとクルクル回ることなく追従させられます。, プログラム開始時にカメラと球の位置関係を覚えさせて、適宜その位置関係に調整する仕組み。. もう少しスマートなやり方がありそうですが・・・、頭が働かない・・・(+_+), これで機能が完成したので、RotateRadarCameraのインスペクタでcharacterに主人公キャラクターをドラッグ&ドロップします。, キャラクターが進んでいる方向が上向きになっていますね。 目印を作ってキャラクターの子要素に配置すればキャラクターの移動と共に動く目印が作れます。, キャラクターの子要素に右クリック→3D Object→Sphereを作り、名前をRadarとします。 3Dゲームでの一人称視点(FPS的な)、三人称視点(TPS的な)で使う、プレイヤーを追従するカメラの作り方です。 まあ普通にカメラのpositionをプレイヤーのpositionと紐づければいいだけなんですけど、プ … 今回は3Dゲームにおいて「後ろについてくるカメラの設定」です。3Dのカメラを強く意識したのって、マリオ64のカメラジュゲムの功績ですね!(オジサン的意見), 2)まず操作キャラクターがあり、そのキャラクターをカメラが追ってしまうと、キャラクターは常に画面の中心にいることになります。中心…はちょっと奥にあるものが見えにくいこともあり、理想は「中心より少し下」の方がよい場合があります。そこでカメラの注目するポイントを作ります。(とりあえず今回はCubeに注目させます。本当は空のオブジェクトのほうがよいかもです。), 「カメラが注目するポイント」は「操作キャラクター」の配下(子)として設定します。そうすれば操作するキャラクターに追従してくれます。まぁ、カメラも配下にすれば追従はするわけですが、いろいろとカメラでその他のことをするためにも、スクリプトの制御は使ってみましょう。, 今回は「car_root」という空のオブジェクトの中に、操作キャラクターである「Car_body」があり、それと並列して「Camera_LookPoint」(という名のCube)を用意し、それと並列して「MainCamera」もあります。, 以下のスクリプトをカメラに「AddComponent」します。やり方はHierarchyタブにてカメラを選択し、「Inspectorタブ」にて「AddComponent」ボタンで「NewScript」とし、「」スクリプトを書きます。スクリプト名は「CameraController」とでもしておきます。, これだけです。中身は「CameraController」クラスしかなく、「Camera_LookAtPoint」という宣言があり、これでCameraの注目点を指定します。LookAtにて指定。簡単でした。スクリプトは保存して閉じます。, あとは「Hierarchyタブ」にて「MainCamera」を選択し、「Inspectorタブ」のCameraContoller(Script)に「Camera_LookAtPoint」という枠ができているのでそこに2)で準備した「Cube」を設定して完了です。, カメラの高さなどをうまく調整すれば理想的な画面が作れるものと思います。カメラの動きを少しスクリプトで調整したわけですし、何か応用もできるかもしれませんね。. 新しいスクリプトRotateRadarCameraを作成しRadarCameraに設定します。, Updateメソッド内ではVector3.Slerpを使いカメラの現在の角度から主人公キャラクターの角度まで徐々に変更し、それをカメラの角度に設定します。, レーダーカメラで使用するのはキャラクターの向き(Y軸の回転)のみなので、Y軸以外は元のRadarCameraの角度を指定しています。, 回転に関してはものすごくシンプルなスクリプトだけになります。