」と思ったので、「自分流の超簡易的なTPSカメラを作ろう」と考えました。 計算も保存もUnityに任せましょう. この記事は2016年11月4日に書かれたものです。内容が古い可能性がありますのでご注意ください。, ▶ using System.Collections.Generic; gif内でカメラ操作がカクついているのは、トラックボールマウスを使用しているからです。 Unity3Dでの視点操作の種類別コード シューティング系. googletag.defineSlot('/21812778492/blog_728x90_common_overlay_adsence', [728, 90], 'div-gpt-ad-1583302554779-0').addService(googletag.pubads()); メインカメラの位置調節 3. ゲームを作っているとプレイヤーをカメラで追従したくなることってありますよね。この記事では、2dと3dに分けてそれぞれの追従方法を解説していきます! 【2d】プレイヤーをカメラで追従する 動画 … ゲームを作っているとプレイヤーをカメラで追従したくなることってありますよね。この記事では、2Dと3Dに分けてそれぞれの追従方法を解説していきます!, わかりやすくするためにまずは背景を作っていきます。背景を作成するために背景の画像を取り込みましょう。Assets > Import New Assetsを押し、, ドラッグ&ドロップをした段階では背景のサイズが小さいと思うので、引き伸ばしましょう。, 背景ができたので次はプレイヤーを作っていきましょう。背景と同じようにプレイヤーも画像を取り込んで、ドラッグ&ドロップします。なので、まずはプレイヤーにしたい画像を取り込みましょう。Assets > Import New Assetsと押していきます。, 後ほどカメラを追従させた時にわかりやすくするためにプレイヤーを常に動くようにしていきます。プレイヤーを制御するにはスクリプトを追加する必要があるので、プレイヤーのオブジェクトを選択した状態でインスペクターからAddComponent > New Scriptを押してください。, 簡単に説明すると、int型の変数『PositionX』を作り、常に加算し続けます。そして、プレイヤーのx軸を加算され続けている変数『PositionX』の値と同じにすることで、プレイヤーが常に動き続けます。実行結果は、, 次はスクリプトを使ってプレイヤーをカメラが追従するようにしましょう。『Main Camera』を選択した状態でインスペクターから、Add Component > NewScriptを押してください。, スクリプト『CameraManager』にカメラの位置をプレイヤーの位置と同じにするコードを書いていきましょう。記述内容は、, スクリプト『CameraManager』に記述された変数『Sushi』にプレイヤーオブジェクトをセットしましょう。プレイヤーオブジェクトを変数『Sushi』にドラッグ&ドロップです。, 次は3Dでプレイヤーを一定の距離を保ってカメラで追従する処理を解説していきましょう!, まずはプレイヤーを作りましょう。今回はプレイヤーをSphereで作ります。作り方は、HierarchyビューでCreate > 3D Object > Sphereです。, 次にプレイヤーが乗っかる地面を作りましょう。作り方は、HierarchyビューでCreate > 3D Object > Cubeです。, Cubeのサイズを大きくしていきます。Cubeを選択した状態でScaleのxとyを共に100にしましょう。, プレイヤーを動かせるようにしていきましょう。スクリプトに記述して制御するのでまずはスクリプトをプレイヤーにつけましょう。付け方は、Sphereを選択した状態でAddComponent > New Script, 名前を『PlayerManager』に変更してCreate And Addで追加できます。, 次にプレイヤーにRigidbodyコンポーネントを追加しましょう。Sphereを選択した状態で、Add Component > Physics, 次は『PlayerManager』にコードを記述して、プレイヤーを十字キーで動かせるようにしましょう。記述内容は、, カメラをスクリプトで制御して、プレイヤーに追従するようにしていきましょう。まずはカメラにスクリプトを追加します。Cameraオブジェクトを選択した状態で、Add Component > New Script, 『CameraManager』スクリプトにコードを記述して、カメラがプレイヤーに追従するようにしましょう。記述内容は、, 簡単に説明すると、カメラの位置をプレイヤーの位置と同じにし、offset変数を加算することで位置を微調整します。コードを書いたら、Unityエディターからプレイヤーと、offsetの値をセットしましょう。プレイヤーはCameraを選択した状態でCameraManagerのPlayerにSphereをドラッグ&ドロップしてセットします。, これで実行した時に、カメラがプレイヤーを追従する位置がプレイヤーの位置よりもy軸に『+1』、z軸に『-3』されるようになりました。offsetの値を変えることで、追従する位置が変えられます。実行結果は、, 今回はプレイヤーをカメラが追従する方法について2Dと3Dでそれぞれまとめました。この記事を読んで、カメラを追従させる方法が身についたのなら幸いです!. 【Unity連載】C#入門 Camera入門②)カメラの切り替えをスクリプトで実現しよう! Camera入門④)プレイヤーにカメラを追従させよう!(3D) ↓Unity関連記事はこちらをご参考ください. 目次. public Vector3 offset; // Use this for initialization UnityのCineMachineを使うと通常のゲームシーンのカメラとしてだけでなく、イベントシーンのカメラワークの作成も簡単に作成出来ます。そんなCineMachineを使っていくつかのカメラワークを作成して … 2.1.1 位置情報の取得のために変数を用意; 2.2 カメラの追従にはカメラの位置を動かす記述が必要. Copyright © 2020 もぎブログ All Rights Reserved. HDRPでUnityちゃんのセッティングしてみて、Unityちゃんがピン… 2020-01-12 【改良版】追従+マウス視点移動のTPSカメラ #18.1 良くTPSシューティングゲームに採用されているカメラ操作方法です。PUBGやFortnightの標準操作はこれですね。 ▶ 2.1 カメラで追従するターゲットの位置情報が必要. このスクリプトはカメラに適用して使う。注視対象はインスペクタからターゲットを設定する。 注視対称の初期化は、注視対象にタグをつけて GameObject.FindWithTag() 等を使って自動で設定することもで … ゲームを作っているとプレイヤーをカメラで追従したくなる場合があるかと思います。 この記事では、 ・カメラの基本 といった初歩的なことから、 ・子に配置する方法 ・スクリプトで制御する方法 といった少し応用的なことまでわかりやすく解説します! }, void Update () { Copyright© chamlog , 2020 All Rights Reserved. WordPress Luxeritas Theme is provided by "Thought is free". googletag.defineSlot('/21812778492/blog_728x90_common_eyecatch01_adsence', [728, 90], 'div-gpt-ad-1566564252373-0').addService(googletag.pubads()); pbjs.setConfig({bidderTimeout:2000}); メインカメラをプレイヤーの子オブジェクトに設定 以上の流れでノンプログラミングによるカメラの追従を実現させます。 void Update () { googletag.enableServices(); 標準アセットを探せば似たような機能のカメラスクリプトがある気がしなくもないですが、「作れるものは作る!」の考えで実装してみました。, カメラはCamera.mainでメインカメラタグのついたカメラを指定していますが、任意のカメラに変更可能です。 Copyright © TECH Projin All rights reserved. 2.2.1 カメラの追従先情報を指定する 追従に関しては、ターゲットのフレーム間での移動量を取得し、自らの移動量としています。, カメラの垂直移動は、プレイヤーを中心に上下に移動します。必要がなければコメントアウトしてください。. var pbjs=pbjs||{}; googletag.defineSlot('/21812778492/blog_468x60_common_eyecatch02_adsence', [728, 90], 'div-gpt-ad-1567575393317-0').addService(googletag.pubads()); 3Dゲームでの一人称視点(FPS的な)、三人称視点(TPS的な)で使う、プレイヤーを追従するカメラの作り方です。 まあ普通にカメラのpositionをプレイヤーのpositionと紐づければいいだけなんですけど、プ … pbjs.que=pbjs.que||[]; ■【接写】マウスホイールでカメラの向きにドリーイン・ドリーアウトさせる googletag.defineSlot('/21812778492/blog_300x250_common_fixed01_adsense', [[300, 250], [336, 280]], 'div-gpt-ad-1565194485392-0').addService(googletag.pubads()); ▶ ▶ ▶ 以下のリンクより一度ご覧ください。, どうも、チャーさんです。 あなたはunityでゲームオブジェクトを、 スクリプトなどから削除したいですか? この記事では、関数を使い、 ゲームオブジェクトを削除する方法を書 …, どうも、チャーさんです。 あなたはblenderで作ったものを、 unityで表示(インポート)したいと、 思っていませんか? この記事では、あなたが作ったblenderの …, どうも大石です。 あなたはunityでボタンをクリックしたら、 他のオブジェクトの色を変更するという スクリプトを書きたいですか? この記事を読めば、あなたは …, どうも大石です。 あなたはunityで弾を発射するときの向き をコントロールしたいと思っていませんか? この記事を読めば、あなたはunityで 弾を敵に向かって発射させれる …, どうも、チャーさんです。 あなたはunityで敵を移動させたい、 そう思っていませんか? コライダーなどでもできるが、他の方法が ないかと探してませんか? & …, どうも、チャーさんです。 あなたはunityにblenderで作ったモデルを 持ってきたものの、面が透ける現象が起こって 困っていませんか? この記事は、透け …, どうも、チャーさんです。 あなたはunityで攻撃に当たり判定をつけたいですか? この記事では、当たり判定をつける 方法を書いてるので、読めば当たり判定をつけれます。 とい …, どうも、チャーさんです。 あなたはunityでコンポーネントを取得する方法を 探していますか? この記事ではコンポーネントを取得する方法、 その際の変数宣言の書き方や、 コンポーネント名 …, どうも、チャーさんです。 この記事ではunityのforeachループで get componentする方法を書きます。 なのでこの記事を読めば、   …, どうも、大石です。 あなたはunityでprefabをスクリプトで複製 したいですか? } 前回の連載記事はCamera入門③「カメラをマウスに連動させて回転させよう!」でした。, 連載の第四弾となる今回は、3Dゲームのプレイヤーにカメラを追従させる方法をご紹介します。, 本記事では被写体としてユニティちゃんを使用しますが、動かすプレイヤーはどのキャラクターでも問題ありません。, ヒエラルキービューでMainCameraを選択して、インスペクタービューのTransformを設定します。, この状態のまま実行すると、メインカメラは固定されたままになるのでプレイヤーを追従してくれません。, 原因はユニティちゃんの座標もメインカメラの座標もワールド座標を基準としているからです。, ワールド座標では世界の中心を(X,Y,Z)=(0,0,0)と考えます。そのためユニティちゃんが動いても、メインカメラのワールド座標の位置は当然変わりません。, ローカル座標では、親オブジェクトの座標を中心(X,Y,Z)=(0,0,0)として子オブジェクトの座標を考えます。, つまり、プレイヤーがワールド座標で動くとその動いたプレイヤーの位置が中心となります。(座標ごと移動するイメージ), 先ほど説明した通り、メインカメラをプレイヤーの子オブジェクトに設定することでプレイヤーを中心とした座標を指定することができます。, ヒエラルキービューでMainCameraをunitychanにドラッグ&ドロップしてください。, このような方法を用いることで、簡単にプレイヤーにカメラを追従させることができます。, 続いて3Dゲームでスクリプトを用いてプレイヤーにカメラを追従させる方法を解説します。, 結論から述べると、スクリプトによる追従は第三者視点での追従はUnity初心者には向いていません。, ですので今回はスクリプトで一定距離からプレイヤーを追従する方法のみをご紹介します。, 1〜2までの流れは先ほどと同じですので、「ノンプログラミングで追従」をご参考ください。, また、次に作業を始める前にメインカメラをユニティちゃんの子オブジェクトから外してください。, まず、赤枠のプロジェクトビュー→Create→C# Scriptを選択してスクリプトを作成してください。, 作成したスクリプトの名前は任意ですが、ここでは「CameraSample」とします。, まずはじめにStart関数でユニティちゃんのpositionの値を取得して、メインカメラのpositionとの差分offsetを求めます。, 次にUpdate関数で求めた差分offsetとプレイヤーの現在の値の合計をメインカメラの新しいpositionの値として代入しています。, このスクリプトだけでは先ほどのように常に第三者視点の追従は実現できません。どのような追従になり、なぜそのような追従方法になるのか想像しながら実行してみてください。, プロジェクトビューから作成したCameraSampleスクリプトをヒエラルキービューのMainCameraにドラッグ&ドロップしてください。, ユニティちゃんとメインカメラのpositionの値のみを参照しているため、向き(rotation)を参照していないことが原因です。, positionと同じようにメインカメラのrotationの値をユニティちゃんのrotationの値に変更しています。, 本来ならばユニティちゃんを中心に回転しなければならないところを、ユニティちゃんと同じように回転してしまっているためにうまく追従できなくなっています。, このようにユニティちゃんを中心に回転させるためにはもう少し具体的な計算が必要になります。, 最後に応用として、追従しながら左右のシフトキーで回転させながら追従する方法をご紹介します。, 回転には「RotateAround()」を使用します。詳しい使い方はリンクをご参考ください。, RPGなどでフィールドを移動させる時などは、ほとんどこの方式なのではないでしょうか。, 次にメインカメラをプレイヤー(ユニティちゃん)の子オブジェクトに設定します。(やり方は先ほどと同じです), プログラムの説明は省略しますが、これでユニティちゃんの周りをカメラが回転するスクリプトを作ることができました。, Unityカメラの連載(Camera入門)第四弾として、3Dゲームのカメラ追従についてご紹介してきました。, 基本的な追従であれば、子オブジェクト化するのが楽ですが、オリジナリティを出したい場合はスクリプトの記述をお勧めします。, Unity関連記事)【入門】Unityを使ったアプリ開発ができるようになる!Unityの基本からARへの応用まで, この記事はいかがでしたか?もし「参考になった」「面白かった」という場合は、応援シェアお願いします!, PSVR / Oculus Rift / Oculus Go / Oculus Quest / HTC Vive / Gear VR / Windows MR/ VRゴーグルまとめ / スマホ VR / スタンドアロン型 / SteamVR, キズナアイ / VRゲーム / VR ZONE SHINJUKU / Steamゲーム / PSVRゲーム / Vtuberまとめ, produced by x garden
Ť摩川 Ãリコプター Ļ日, ȇ転車 Ãャイルドシート žろ ĸ古, Vba Âート Âピー ŀのみ, Âイルスバスター Ɯ限切れ ƛ新, Apple Pay Suica定期 Ãメリット, ƥ天 Âマートフォン Ãニューアル, Âオン ȇ転車 ȩ判, Ãレビ Ãコーダー経由 Áか Ȧれない, ɻい砂漠 Ãバ Âらい Ɩ, Ãィファール Âックフォーミー Ãシピ, Ãイナポイント ƥ天カード Ãソコン, Âクセル ȉ別 Âウント, Ãンジャタウン Áん Âタ Ņ場 Ɩ, Âイ人 Ő前 Ȫみ方, Ãワーポイント Ãージ番号 0から, ɫ校 Ɯ末テスト ɛしい, Windows10 Âステムフォント変更 Ãジストリ, Enjoyパック Ãーナス Ãイント 5倍, ɘ神電車 Ȼ両 ƭ史, Ãロボックス Ãイブリッド Âスタム, Ãリンターのネットワーク設定情報を印刷する方法 Canon Mg6330, Âーボード Ãイアウト Ť更 ņ起動 Áし, ɟ国 Áついて ŭべる ɫ校, ĸ司 Ãレゼント Âイーツ, Facebook Ǯ理者権限 ʼn除, ǔ像 4分割 ō刷, Ãーメン Ź村 Ɯ幌, Âロナ Âアコンリモコン Âプリ, Iphone ǝ信 ưづかない, Âリコ ŏ座振替 ĸ明,