MODO 機能紹介・チップスサイト このサイトでは、MODOの基本機能やチップスをご紹介していきます。

オーバースキャンを自動設定するためのリグの組み方

https://www.youtube.com/watch?v=-n0Nh-9L3xA

シーンに対してカメラの設定をした後で、オーバースキャンを設定した解像度でのレンダリング画像が必要になるときがあります。今回は既存のカメラに対して、オーバースキャンを自動設定するためのリグを組む方法をご紹介します。

このサンプルシーンには既にカメラの設定が行われています。デフォルトではレンダリング解像度はRender Itemに対して設定されていますが、作業用のカメラ、オーバースキャン用のカメラと分けるため、カメラごとに解像度を設定できるようにしておきます。カメラを選択し、解像度無効のカテゴリにあるレンダー解像度無効オプションをオンにします。これにより、カメラごとの解像度設定が可能になります。

次にオーバースキャン用のカメラを用意します。オーバースキャン用のカメラは、作業用カメラのトランスフォームやカメラの設定などをそのまま引き継ぎたいので、インスタンスとして作成し、さらに作業用カメラの子アイテムとして設定します。そうすることで、作業用カメラに対してアニメーションを設定するなどしても、そのままオーバースキャン用カメラに反映できるようになります。

アイテムリストからカメラを選択し、右クリックでコンテキストメニューから複製 > インスタンスを選択します。インスタンス複製されたカメラを選択し、作業用のカメラの上へとドラッグアンドドロップすることで、親子関係を設定します。これで作業用のカメラの設定を引き継いだカメラがもう一つ作成されました。こちらがオーバースキャン用のカメラですので、わかりやすいようにリネームしておきます。

ではここから解像度に関する設定を行っていきますが、解像度を変更してもレンダリングされる対象物の映り方が変わらないようにするには、フィルムバックカテゴリにあるフィルム幅と高さの設定が必要です。この関係性については、既に日本語解説ビデオ「被写体の大きさを変えずにレンダリングの幅や高さを変更するには」でも詳しく解説していますが、簡単に言うと解像度の比率とフィルムの比率とを合わせるということが必要になります。

まずリグを組んでいくうえで、オーバースキャンする際のその比率を設定するプロパティを用意しましょう。このプロパティはユーザーチャンネルで用意することにします。作業用のカメラを選択し、ユーザーチャンネルのタブからユーザーチャンネル追加ボタンをクリックします。ユーザー名称はCameraWidth、タイプはどのくらいオーバースキャンするかの割合を指定するためパーセンテージにし、初期値は100にしておきます。高さに対してもプロパティを用意したいので、ユーザー名称CameraHeightにして、同様のユーザーチャンネルを追加します。では実際にリグを組んでいきましょう。

必要となるのは作業用カメラおよびオーバースキャン用カメラの解像度とフィルム幅・高さ、そして先ほど追加した2つのユーザーチャンネルですので、それぞれをスケマティックビューへとラベルをドラッグして追加します。まずは演算ノードをひとつ追加します。追加 > 演算 > Basic Math:乗算ノードを追加したら、フレーム幅を値Aに、オーバースキャン設定用ユーザーチャンネルのCameraWidthを値Bに入力し、掛け合わせた値をオーバースキャン用カメラのフレーム幅へと接続します。フレームの高さに対しても同様の設定を行います。効果がわかりやすいように、オーバースキャン用ユーザーチャンネルの値を、幅・高さ共に110%に設定しておきましょう。

ビューポートの設定をカメラ > (現在の選択)に設定し、カメラを切り替えて確認してみると、カメラからの見た目に差がありません。本来であればオーバースキャン分だけ空白ができるはずですが、そうなっていません。これはフィルム幅・高さが連動していないからです。このフィルム幅と高さも、解像度の幅と高さと同じように設定します。演算ノード2個分を選択し、ノードを複製 > 複製を選択して複製し、値Aをフィルム幅と高さに切り替え、オーバースキャン用のフィルム幅とフィルム高さへと接続します。こうすることでそれぞれレンダリングしてみると、対象物の見た目を変えることなく、解像度を変更することができます。

今回はオーバースキャンということで、ユーザーチャンネルで比率を指定するようにしましたが、見た目を変えることなく幅や高さを変更したい場合などに、便利に使えるリグとなります。

2023年8月30日