マンガでわかるUnity

もんりぃ先生と湊川あいによる、マンガ + 実践で楽しくゲーム制作するブログ。

#マンガでわかるUnity 第4話 Camera について知ろう!

前回のあらすじ
世界を創って、いざビルド!………しかし、相変わらず殆ど何も映っていません。どうしてでしょうか?

Unity Editor のレイアウトを変えてみよう

f:id:llminatoll:20180712174958p:plain
Camera について学ぶ前に、Unity Editor のレイアウトをちょっと変えておこうか。

f:id:llminatoll:20180712180004j:plain
レイアウトを変えることなんてできるんですか!?

f:id:llminatoll:20180712174958p:plain
Unity Editor はタブの位置や大きさを変えるコトができるんだ!

f:id:llminatoll:20180712180004j:plain
………でも、なんでそんなことを?

f:id:llminatoll:20180712174958p:plain
これから、「ゲーム画面での見た目」を確認しながら「編集画面で操作」をしていきたいから、Game View と Scene View を一度に見られる状態にしておきたいんだ。

f:id:llminatoll:20180712174618j:plain
なるほど!やってみます!

▼動画で見ながら、一緒にやってみよう!

www.youtube.com


Camera について学ぼう!

f:id:llminatoll:20181106160136p:plain

f:id:llminatoll:20180712174958p:plain
前回のゲームは「Camera が近すぎる」「Camera の角度が良くない」などの理由によって、本来見たかった「創った世界」を見るコトができていない状態だったんだ。

▼動画で見ながら、一緒にやってみよう!

www.youtube.com


Camera とは、Unity で創った世界を現実世界に投影するための カメラ です。

もう少し正確な言い方をすると、Camera は設定に応じて投影可能な範囲に存在する GameObject を描画する機能です。

この Camera が1つ以上存在することではじめてゲームの世界がスクリーンに投影され、Camera に何を描画させるのか?を考えることがゲームデベロッパーの仕事の一つと言えます。

ここでは詳しく触れませんが、複数の Camera を配置し、それぞれの Camera が描画する映像を重ねたり、ワイプのような表現にしたりすることも可能です。

なお、有効な Camera が一つも存在しない場合、真っ暗な画面が描画される仕様になっています。

Camera の投影方法には大きく分けて「透視投影」と「平行投影」の2種類があります。

透視投影: Perspective

f:id:llminatoll:20181106155357p:plain

遠近感を持った投影方法です。

遠くにある GameObject ほど小さく、近くにある GameObject ほど大きく描画されます。

Camera の視野角は Field of View というパラメータに Camera の視野となる角度を入力することで調整します。

四角錐型の Gizmo により、視野範囲が提示されます。

平行投影: Orthographic

f:id:llminatoll:20181106155412p:plain

遠近感を持たない投影方法です。

距離に応じた拡縮が掛からないので、2D ゲームや UI を開発する際に用いられることが多いです。

Camera の大きさは Size というパラメータに設定したい Camera の高さの半分の値を入力することで調整します。

直方体型の Gizmo により、視野範囲が提示されます。


f:id:llminatoll:20180712174618j:plain
じゃあ、だいたいこのくらいの距離から、この角度で映そうかな…!

f:id:llminatoll:20180712174958p:plain
うんうん。良い感じだね。
じゃあビルドしてみよう!

youtu.be

f:id:llminatoll:20180712174618j:plain
おーーー!創った世界がちゃんと映し出されてます!!

f:id:llminatoll:20180712174958p:plain
ゲームが2Dであっても3Dであっても、「Camera に何をどうやって描画させるのか?」を意識して開発することがとっても大切なんだ。

次回予告「第5話: ゲームの世界に彩りを添えよう!」

f:id:llminatoll:20180712180004j:plain
んー…、でもちょっと味気ないですね…。
それに、やっぱりゲームとは呼べない気がするんですが…。

f:id:llminatoll:20180712174958p:plain
うん、そうだね。Unity 標準の機能で、ある程度影が付いたり天球が表示されていたりはするけど、まだまだゲームとは呼べない代物だよね。
じゃあ、次は「世界に彩り」を加えつつ、「GameObject と Component と Asset の関係」についても学んでいこう!

f:id:llminatoll:20180712180004j:plain
おおっ!何やら難しい話になってきそうだぞ…?ついていけるかなぁ…?