テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

【Unity】Unity 2018.2で追加されたPhysical Cameraとはナンゾや?

Unity 2018.2でCameraの設定にPhysical Cameraという新しいオプションが追加されました。この設定が今ひとつ分からなかったので、内容を確認してみました。

 

 

Physical Cameraは一般的なカメラ設定をUnityに持ってくる為の設定

Physical Cameraは「物理カメラ」と紹介されていますが、その実態は物理的なカメラ設定をUnityに持ってくるための設定みたいです。
正確には持ってこれるのはイメージセンサーのサイズ(Sensor size)焦点距離(Focal Length)、それとシフトレンズ(Lens Shift)で、ほとんどField Of View(FOV:画角)やカメラの角度の設定についてです。
動作はSensor Size、Focal Lengthの値でFOVを求めるモノです。

f:id:tsubaki_t1:20180909224239j:plain

何が嬉しいのかといえば、たぶんMayaや他の3Dソフト、もしくは実際のカメラでしょうか。そういった一般的なカメラワークフローで使う設定で撮影できることが良いんじゃないかなと思います

なお個人的にはF値の設定もココに付くかと思いましたが、特にありませんでした。

 

Focal LengthとかSensor Sizeとはナンゾや?

FOVは角度でしたが、Focal LengthやSensor Sizeとはどんなモノなんでしょう。ちょっと調べた所、何となくこんな感じっぽいです。
まずレンズの光の流下の図っぽいです。レンズが光を受けて内部で向きを補正、最終的にセンサーが光の情報を受け取りセンサーに転送し云々。*1

この時焦点距離(センサーと収束点の距離)が適切なら、画面いっぱいに被写体が表示されます。
f:id:tsubaki_t1:20180909225254j:plain

f:id:tsubaki_t1:20180909230014j:plain

今度は焦点距離を少し大きくしてみます。そうすると光の広がりに対してカメラの受け取る範囲が狭くなるので、結果的に像の一部しか表示されなくなります。これはFOVを小さくするのと似たような動作です。

f:id:tsubaki_t1:20180909231421j:plain

Focal Lengthは、この収束点とセンサーの距離。それを変動させることで最終的な画に変化を与えます。

 

焦点距離(focal length)を大きくするとズーム

焦点距離を大きくするとセンサーに光の一部のみが届くようになり、カメラの表示する範囲が狭くなります。カメラの表示範囲が狭くなるということは画角が狭くなり一部が拡大(ズーム)されます。
これは単に絵が大きく表示される他、絵の立体感が失われるという特徴を持ちます

例えば下の絵は3枚のスクリーンショットです。見た目の大きさは大体同じなのですが、焦点距離が少しずつ異なり、また焦点距離を離した分だけ実際のカメラを離しています。
一枚目は最も焦点距離が小さく(確か15くらい)距離も近い絵です。そして三枚目は最も焦点距離が大きく(確か300)カメラも離しています。
焦点距離を大きくするとズームされ、その上で大きさを合わせようとすると距離感がなくなっています。

f:id:tsubaki_t1:20180909233557p:plain

f:id:tsubaki_t1:20180909233615p:plainf:id:tsubaki_t1:20180909233634j:plain

立体感の有無は非常に重要な要素です。例えば奥行きを強調したいようなシーン…ロケーション全体を表現するような場合は広角(焦点距離が小さい)の設定を使いたい所です。逆に距離を圧縮(離れてる物も近いものも一緒くたに表示したい)する場合は望遠(焦点距離が大きい)設定するのが良さそうです。

 

焦点距離が同じ場合、センサーサイズが小さい方がズーム

この動作と似たような事がセンサー側でも出来ます。要するに小さいカメラセンサーを採用すれば狭い範囲での光の受け取りが出来ないので、大きなセンサーと比較すると同じ焦点距離に対してズームされたような絵を受け取ります。
これは焦点距離は同じですがセンサーが大きくなったので、広い視野が得られ結果として被写体の画面占有率を下げています。

f:id:tsubaki_t1:20180909231355j:plain

f:id:tsubaki_t1:20180909231703j:plain

まぁセンサーはそうそう変更するものでもないでしょう。カメラの本体を差し替えるようなものです。
なのでカメラのセンサーサイズはサンプルにある一つから選択するか、自分の思うカメラの設定にしてもよかな感じがします。
そもそもセンサーを切り替える理由が「多くの光を取り込めて画質が良くなる」という点だそうですが、3Dには全く関係のない事ですので。

www.photografan.com

シフトレンズでカメラの向きを変えずにパンする

シフトレンズは正直初めて聞いた言葉なのですが、カメラの向きを変更せずに光学的に表示内容を変えるアプローチみたいです。
ただ絵が歪むのであまり強烈にはかけられないみたいです。Unity側でもこの機能を使うと盛大に絵が歪みました。

ryoriphoto.comf:id:tsubaki_t1:20180909234853j:plain

f:id:tsubaki_t1:20180909235015j:plain

 

Cinemachineとの連携はどうなの?

カメラ関係の連携といえばCinemachineです。こちら、もしカメラがPhysical Camera設定担っている場合、FOVの項目がfocal lengthに変化します。
またforcal lengthがプリセットから選択できるようになります。用途次第で毎回設定するのではなく、一覧から選択するのはたぶん理に適っています。

  • 12mm
    超広角。近づいて撮影する専用、中央以外にあるものは歪む
  • 24mm
    広角。周辺が見えつつもそこまで歪まない
  • 35mm
    基本
  • 70mm
    望遠。ちょっと遠くのモノを撮影する
  • 105mm ~ 300mm
    超望遠。かなり遠くのモノを撮影する用。この設定で撮影すると立体感が死ぬ
    アニメキャラとかは多分だいたいこの設定

f:id:tsubaki_t1:20180909235507j:plain

f:id:tsubaki_t1:20180910000152g:plain

 

F値は?

Post Processing Stack側の設定です。

*1:昔大学でやってた内容なんですが、もう完全に忘れてますね。このレンズ作るのCADとかで色々やった事だけは覚えてるんですが…