Tanksのカメラについて | Unity Forum | Tech Stadium Forum

Tanksのカメラについて
 
通知
すべてクリア

Tanksのカメラについて  

  RSS

Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1351
16/03/2021 5:28 pm  

Tanksのカメラについて

①カメラリグとは必ず設定するものではないのでしょうか?どのような意図で作られるのかが動画だけだとわかりませんでした。

②画像のFindRequiredSizeメソッドについて、Tankのカメラリグに対するローカル座標を用いていることはわかったのですが、特に81−87行目で何を求めているのかが分からなかったので教えていただきたいです。


引用
Teacher
(@admin)
メンバー Admin
結合: 5年前
投稿: 1318
16/03/2021 5:30 pm  

①スクリプト「CameraControl」内で、タンクの位置を計算しやすくする為です。
タンクの位置は「transform.InverseTransformPoint」を使い、CameraRigのローカル座標に直しています。
この時、CameraRigのローカル座標を使用しないとタンクの位置は3軸(X軸Y軸Z軸)を使うことになりますが、CameraRigのローカル座標を使用すれば2軸(X軸Y軸)で済みます。

②81−87行目の内容は以下の様になります。
この分はfor文内で書かれているので、タンクの数だけ以下の処理を行います。

81行目:タンクの位置をカメラのローカル座標化し、タンクがカメラのどこに映っているかを「targetLocalPos」に収納83行目:カメラのローカル座標上で、"タンクの位置"から"タンク同士の中間地点の座標"を引いたものを変数「desiredPosToTarget」に収納

85行目:変数「desiredPosToTarget」のY軸とカメラの画角のサイズを比較し、大きかった方を変数「size」に収納※この変数「size」はカメラの画角なります。
つまりカメラの画角よりタンクの位置が外にあれば、変数desiredPosToTargetを採用し、カメラを引いて画角を広げます。

87行目:変数「desiredPosToTarget」のX軸とカメラの画角のサイズを比較し、大きかった方を変数「size」に収納


返信引用
Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1351
16/03/2021 5:30 pm  

CameraRigのローカル座標を使用すれば2軸で済むとのことですが、そもそもz軸が存在しないと言うことなのでしょうか.....?


返信引用
Teacher
(@admin)
メンバー Admin
結合: 5年前
投稿: 1318
16/03/2021 5:30 pm  

Z軸は存在しています。
CameraRigでは角度をつけていましたが、その角度を原点座標としたものがCameraRigのローカル座標です。

今回の場合、CameraRigのRotationは(40, 60, 0)としています。
これを原点座標(0, 0, 0)として扱うのがCameraRigのローカル座標です。

なので、CameraRigの子オブジェクトとなっている「MainCamera」のRotation(0, 0, 0)はCameraRigのローカル座標が適応されている為、ワールド座標ではCameraRigのRotationである(40, 60, 0)にあたります。


返信引用
共有:
タイトルとURLをコピーしました