ゲーム開発でのUnityを知りたい、もっとUnityを使いこなせるようになりたいと思い
下記動画を見てみました。
動画の感想
・ゲーム制作に必要な回転、関数について初心者の自分でもわかりやすく知れてよかったです。
・ハンズオン形式で学べてよかったです。
ここから下は
自分へのまとめとして動画の内容をメモしてます。
---
ジンバルロックとはオイラー角(XYZで回転を表現する形式)で表現された3D物体の回転を行うときに、2つの回転軸が同じ方向を向いてしまう現象
UnityではY→X→Zの順番で回転計算が行われるのでジンバルロックが起きる
ジンバルロックを行わないようにするのにクォータニオン(四元数)を使う
Unityでは下記のようなクォータニオン用関数が用意されている
Quaternion.Euler | オイラー角からクォータニオンを作成 |
Quaternion.AngleAxis | 任意の回転軸からクォータニオンを作成 |
Quaternion.FromToRotation | ある方向からある方向へ向かわせるクォータニオンを作成する |
Quaternion.LookRotation | 向きたい方向に向かわせるクォータニオンを作成する |
AngleAxisを使ってクォータニオンを使ってみる
各回転軸のクォータニオンを作る
var rotX=Quatanion.AngleAxis(input.x,Vector3.right);
var rotY=Quatanion.AngleAxis(input.y,Vector3.up);
var rotZ=Quatanion.AngleAxis(input.z,Vector3.forward);
UnityではY→X→Zの順番で回転計算するので
Y→X→Zの順番で回転軸の合成をする
transform.rotation *= rotZ * rotX * rotY; //C#では右から計算される
---
SphereCast
Unityに実装されているRayCast(何かを飛ばして当たり判定を取得する)のひとつ、球を飛ばす
他にも点を飛ばすRayCast,箱を飛ばすBoxCast,カプセルを飛ばすCapsuleCastがある
---
Photon
Photonはオンラインゲームの通信システムを簡単に創ることができるサービス
PUN(Photon Unity Networking)をアセットとしてオンラインゲームが実装できる。
ゲーム開発動画のなかでPhotonのハンズオンがあったのですが、
Photon自体自分知らなかったので下記を参考にしました。
---
Mecanim
Unityでアニメーションの作成から実行までを、Unityエディタで一貫して行うことができる機能。
---
ドローコール(Set Pass Call)
1フレーム描画するのに、CPUからGPUに対して何回描画命令を送っているかを示す値
Set Pass Call数が少なければ少ないほど高いFPSを維持が可能
Set Pass Call自体自分知らなかったので下記を参考にしました。