なんでもおきば📒

本やらセミナーやらのまとめなど。

Unityゲーム開発のお勉強

ゲーム開発でのUnityを知りたい、もっとUnityを使いこなせるようになりたいと思い

下記動画を見てみました。

 

www.youtube.com

 

 

動画の感想

・ゲーム制作に必要な回転、関数について初心者の自分でもわかりやすく知れてよかったです。

・ハンズオン形式で学べてよかったです。

 

 

ここから下は

自分へのまとめとして動画の内容をメモしてます。

---

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自体自分知らなかったので下記を参考にしました。

konichallengelog.com

 

---

Mecanim

Unityでアニメーションの作成から実行までを、Unityエディタで一貫して行うことができる機能。

 

 

 

---

ドローコール(Set Pass Call)

1フレーム描画するのに、CPUからGPUに対して何回描画命令を送っているかを示す値

 Set Pass Call数が少なければ少ないほど高いFPSを維持が可能

 

 Set Pass Call自体自分知らなかったので下記を参考にしました。

nn-hokuson.hatenablog.com