Godot 玉転がし 07 「カメラとライト」
前回カメラをシーンに設置しなかったので、「あー、ゲーム画面、真っ暗、どうしよう」というおやくそくをみごとに実行できた(やや満足)。今回は普通にカメラを置いていこうと思う。ついでにライトもね。まー、シーンのルートノードに「Camera」ノードと「DirectionalLight」ノードを追加して、イイ感じの所に動かせばいいだけだけどね。
カメラ
カメラは結構近づかないと、どっちを映すかのカメラ枠(ピンクっぽい線)が見えないから注意ね。枠が見えればハッキリするけど、映す方向はマイナスZ軸方向。
プロパティも、分かるところだけ書いとこうかな。
- Keep Aspect: ゲーム画面の大きさをいじった時、見え方をどうするか。縦横どっちに合わせますか? の設定。縦方向固定なら、"Keep Height"、横方向固定なら"Keep Width"。
- Cull Mask: 知らん。たぶん映すレイヤーと映さないレイヤーを決めるんだろな。
- Environment: 知らん。たぶんスカイボックスとかの設定だろな。
- H OffsetとV Offset: Hはhorizontal(横)で、VはVertical(縦)だろ。置いたところよりちょっとずらしたい時にいじるんかな。
- Doppler Tracking: しらん。なんか追跡カメラとかにした時の便利機能かな? 面白そうだ。
- Projection: "Perspective"と"Orthogonal"が選べる。近くがおっきく、遠くがちっちゃい、奥行き感じちゃうのがPerspective。近くも遠くも同じ大きさなのがOrthogonalな。前もどっかで出てきた用語だな。
- Current: カメラが複数あった時、優先的に有効にするとき、ここチェック。メインカメラをどうするかの設定。カメラ1この時はどうでもいい。
- Fov: "field of view"。視野だよね。デフォでは70度ってことだな。
- NearとFar: カメラに映す距離だな。NearとFarの間のものだけ映すって、デフォでは100メートル先までしか映さんの? ずいぶん省エネやな。
そして、一番重要なのが、メインパネルの[View]ボタンとの連携。カメラを選択すると、画面右上に[Preview]ってボタンが出てくるから、これを押す。すると、カメラビュー、つまり実際のゲーム画面の見え方になる。で、普通の人にとっては1画面での編集はむずいから、画面を分割して、編集画面とカメラビューと分けてみましょうってことな。
図では、上部を編集用画面、下部をカメラビューとした。だから、上部画面で、カメラを引っ張ったり回転させたりして、下のゲームビューがイイ感じに見えるようにすればいい。後は、きっちりしたい人向けにインスペクターパネルから、Transform情報を手打ちすればいいな。俺は、
- Translation (0, 25, 28)
- Rotation Degrees (-45, 0, 0)
としたけど。お好きにどーぞ。
ライト
ライトを追加した瞬間パッと、玉とか壁とかの色の変化があって、なんかライト置いたんだなーという感じがして、すごくいいよね。
ライトは、めちゃくちゃいっぱい設定項目があるんだけど、これ、ライト博士に聴かないといけないぐらい、意外と奥が深い。だから、今回は、
- Lightカテゴリ > Shadow > Enabled: "On"にチェックで影が表示される。
ここだけ有効にしよう。後は、ライト博士におまかせするとする。
で、今回置く「DirectionalLight」は太陽光を再現する感じのライトね。光の射す方向、つまりどっちから太陽に照らされてるようにするかは、ギズモ(マニピュレータ)の回転で好きにすればいいと思うぞ。
ちょっとだけ注意することは、「DirectionalLight」はどこに置いても、大丈夫ってこと。太陽は東にあることにしようと思っても、別に東の方に置く必要はないってこと。ゲーム世界のど真ん中に置いても、立派に太陽光を世界に放ってくれるぞ。だから、ゲーム世界を構築する時に、一番邪魔にならない箇所で、さらに分かりやすい所に置くようにするのが鉄則らしい。どこに置いたっけ? とならぬよう注意だ。俺は、ステージの真下に引っ張ってきたぜ。上にあると見た目、邪魔だからな。
では、シーン再生(又はゲーム再生)
やってみてくれ。
どや、重力感じちゃったろ。
またな。