この記事はOculus Rift Advent Calendar 2018の9日目です.
Unity公式マニュアルにドリーズームのやり方が載っていたので試してみました.
参照:ドリーズーム (別名「トロンボーン」エフェクト) - Unity マニュアル
まずはプロジェクトを作成してカメラとモデルを配置します.
お気に入りのアセット「昭和の町モデルセット vol.1 民家」と「"Unity-chan!" Model」をプロジェクトに追加したところ. pic.twitter.com/uqwsNqeI2N
— Hisa Itami (@hisaitami) December 8, 2018
公式マニュアルのExampleScript.csをコピペしてカメラにアタッチします.この時にエラーが発生したので,2つのメソッドの戻り値をvoidからfloatに修正しました.
$ diff -ur ExampleScript.cs.orig ExampleScript.cs
--- ExampleScript.cs.orig 2018-12-08 17:10:16.000000000 +0900
+++ ExampleScript.cs 2018-12-08 17:10:25.000000000 +0900
@@ -10,13 +10,13 @@
private bool dzEnabled;
// カメラから指定の距離にある錐台の高さを計算します
- void FrustumHeightAtDistance(float distance)
+ float FrustumHeightAtDistance(float distance)
{
return 2.0f * distance * Mathf.Tan(camera.fieldOfView * 0.5f * Mathf.Deg2Rad);
}
// 指定した距離で指定の錐台の高さを得るために必要な FOV を計算します
- void FOVForHeightAndDistance(float height, float distance)
+ float FOVForHeightAndDistance(float height, float distance)
{
return 2.0f * Mathf.Atan(height * 0.5f / distance) * Mathf.Rad2Deg;
}
このスクリプトをMain Cameraにアタッチして,適当にカメラの設定を調整するとドリーズーム効果が...
ドリーズーム的な... pic.twitter.com/6xhwUi1H6h
— Hisa Itami (@hisaitami) December 8, 2018
角度を変えても面白いかもしれません.
上から pic.twitter.com/4QmUP5BrPK
— Hisa Itami (@hisaitami) December 8, 2018
ドリーズームはヒッチコック監督の作品で有名になったカメラワークだそうです.メインの被写体はそのままに,背景の遠近感を変えることで不思議な効果が出せるのが面白いですね.
他にもバレットタイムとかケン・バーンズ効果とかカメラの動かし方を色々と遊んでみると面白そうだなと思いました.