2016年1月28日木曜日

360度映像レンダリング_01

ちょいと、学生が360度映像を制作するということで、
modoでの360度映像としての出力まわりを検証してみました。
色々と手さぐりな部分もありますが、お付き合いください。


まずは背景となる画像を準備、
360度カメラで撮影した画像データをあずかりました。
とりあえず今回は静止画でやってみます。


「シェーダツリー」より「Environments」を展開し、
その中に「レイヤー追加」から画像を読み込みます。


「Environments」>「Environment」に画像が読み込まれました。


「F8」プレビューレンダーを開いてまわりを見回してみましょう。


読み込んだ画像とプレビューレンダ―の背景に張られている画像の
左右が反転しているのが確認できます。
画像を球状に配置したものを内側から見ている状態になっているためにおこる不具合です。


「シェーダツリー」から「Environment」に読み込んだ画像を選択して
「プロパティ」>「テクスチャロケータ」の「水平方向ラップ」に「-1.0」を入力します。


これで元となった画像と背景画像が反転していたものを一致させることができました。
下準備完了です。


一度カメラを360度映像用に切り替えてみます。
「アイテムリスト」から「Camera」を選択し、
「プロパティ」>「カメラ」>「プロジェクション」の「プロジェクションタイプ」を
「パースペクティブ」から「球面」に変更します。


「F8」プレビューレンダーで見るとなにやら歪んだ状態で表示されました。
この歪んだ状態が360度映像用のレンダリング出力になるようです。


今の状態では、オリジナルの画像とプレビューレンダーの画像がカメラの位置や角度が一致していないため、同じ表示ではありません。


まず、カメラのトランスフォームをリセットします。


最後にオリジナルの画像とプレビューレンダーの画像の比率を一致させましょう。
オリジナルの画像のサイズが2:1になっていますので、
今回カメラのフレームのサイズは640*320にします。
「シェーダツリー」>「Render」を選択、
「プロパティ」>「フレーム」のフレームの値を
「フレーム幅」 640
「高さ」320
と入力しておきましょう。

これでオリジナルの画像とプレビューレンダーの画像が一致したはずです。


次に3D空間にキャラクターを配置してみます。
中山さんがモデリングしてくれたキノコ君
モーションは西島君がつけています。


キノコを召喚しました。
パースペクティブとプレビューレンダーを見ながら位置を調整します。
背景に配置している画像データが環境マップとして影響しますので、
キノコの質感に背景にマッチしたいい感じの色味がついています。


ただ、室内の場合「Directional Light」は不自然なので「Dome Light」に変更しましょう。
「アイテムリスト」で「Directional Light」を右クリック、
プルダウンから「タイプの変更」「Dome Light」を選択します。


では、キノコのアニメーションを連番で360度画像として出力します。
メニューの「レンダー」から「アニメーションをレンダー」をクリック



表示されたウィンドウでフレームの長さを設定します。
今回は「開始フレーム」 1 「終了フレーム」 300
としました。

保存先のフォルダを選択して、ファイルの名前をつけて保存をクリック
今回保存形式は「tga」としています。
レンダリングが開始されます。


しばし待ちます。。。。


出来上がったデータをAdobeAfterEffects等の編集ソフトで編集します。
この工程については詳しく紹介はしませんが、
最終的にはyoutubeで360度映像に対応している「mp4」でレンダリングします。


動画として出力はされたのですが、このままでは360度映像として対応していません。
https://www.youtube.com/watch?v=n2nhZNTrozI&feature=youtu.be


「360.Video.Metadata.Tool」というツールを利用して、
360度映像に対応したデータにコンバートしなければなりません。
↓こちらのサイトに詳しい情報がありました。
https://support.google.com/youtube/answer/6178631?hl=ja


では、ツールを使ってみましょう。



「360.Video.Metadata.Tool」を実行すると図のようなウィンドウが表示されます。

「Open」で編集ソフトから出力した「mp4」データを読み込み、
「Spherical」にチェックを入れて「Save as」でコンバート!


コンバートされたデータをyoutubeにアップしてみました。
https://www.youtube.com/watch?v=I34rdQmRIb8&feature=youtu.be


今回は背景は静止画でしたが、背景が動画の場合、
静止画と違って位置のマッチング等、色々と調整が必要な気がします。
また、時間がある時にでも検証してみたいと思います。

2016年1月27日水曜日

マテリアル(透過)_透過について_02(各種パラメータ)

前回に引き続いて透過のパラメータについて紹介していきます。


 「透過の色」
文字通り透過している部分に指定した色を与えることができます。


「吸収距離」
この数値を調整することでメッシュの薄いところの色は薄く、
厚いところは濃く表現することができます。
球体の場合は淵の部分が薄くなってるのが確認できると思います。


「屈折率」
透過しているマテリアルの屈折率を調整することができます。
数値で入力することもできますが、右側のプルダウンより代表的な物質の屈折率を指定することもできます。今回はガラスの屈折率を割り当ててみました。


 「分光」
シャボン玉に見えるような虹色の模様を表現することができます。


「屈折ラフネス」
スリガラスの様な表現をすることができます。


「屈折レイ」
この数値を上げることで「分光」「屈折ラフネス」のノイズを軽減することができます。

2016年1月26日火曜日

マテリアル(透過)_透過について_01(透過量)

マテリアルの透過について紹介します。

ここのパラメーターを調整することで、文字通りガラスや水などの透明な質感を表現することができます。


例によって球体を用意してマテリアルを割り当てました。


透明の様子を確認するためにプリセットから環境マップを設定。
プレビューレンダーで確認します。



「 シェーダツリー」から設定したマテリアルの「Material」選んだ後
「プロパティ」>「マテリアル(透過)」を選択します。
透過の項目にいくつかのパラメータが確認できます。


まずは「透過量」を90%にしてみます。
プレビューレンダーを開いてみると物体が透明になったのが確認できます。


次にリアルな質感を表現するために、
「マテリアル(反射)」の「ディフューズ量」「フレネル」「スペキュラ量」を調整していきます。

今回は
「ディフューズ量」0%
「スペキュラ量」10%
「フレネル」100%
「スペキュラに一致」にチェックを入れました。


フォトリアルな質感を物理的に再現するためには
透過の値と反射の値の合計が100%を超えないように調整するといいでしょう。


その他のパラメータについては次回紹介していきます。

2016年1月17日日曜日

マテリアル(反射)_スムージング量とスムージング角度

マテリアル(反射)のプロパティにある「スムージング量」と「スムージング角度」の紹介をしていきます。

まずは「スムージング量」この値を上げることによって、オブジェクトを滑らかにすることができます。


適当なメッシュを用意して試してみます。
デフォルトのパラメータで球体プリミティブを配置します。
今回スムージングを確認したいので球を配置する際のポリゴンタイプはサブディビジョンではなく、面に変更しておきましょう。(配置したあとに「tab」キーでサブディビジョンを解除してもOK)
合わせて、マテリアルを「test」という名前で割り当てました。



「test」マテリアルグループの「Material」を選択し
プロパティ内の「スムージング量」の値を変えていきます。


図のように0%であればエッジがたっていますが、100%に近づくにつれてエッジが滑らかになっていきます。(実際モデリングする際は0%、100%以外は使うことは無い気がしますが、モデリングする対象に合わせて調整してみてください。)


次に「スムージング角度」ですが、隣り合ったポリゴンのの法線の角度が、ここで定めた角度以内の場合「スムージング量」で定めたスムージングがかかります。

?隣り合ったポリゴンの法線の角度とはなんぞや?
自分もおさらいしをしながらまとめてみました。
図で示した角度になります。
左から0度、30度、45度、60度、90度です。

デフォルトの値が40度なので30度以下のオブジェクトにはスムージングがかかっていますが、45度以上のオブジェクトにはスムージングがかかっていないのが確認できます。
(確認のために「スムージング量」は100%にしています。)



「スムージング角度」を上げていきます。
50度、75度、100度と角度が大きくなるにつれて、スムージングがかかる角度が変化しているのが確認できます。
スムージング角度50度であれば45度以下に、
スムージング角度75度であれば60度以下に、
スムージング角度100度であれば90度以下にスムージングがかかっています。

機械系のモデルには少ない角度で、有機的なモデルには大きな角度で設定してあげるといいかもです。


ちょっと紹介が前後してしまいましたが、
以前紹介した、「スムージンググループ」「法線の分割」は今回紹介した「スムージング量」と「スムージング角度」が基本にあった上での機能になりますので、合わせて確認してもらえたらと思います。

2016年1月13日水曜日

ディスプレースメント

バンプに引き続き、ディスプレースメントの紹介をしていきます。

ディスプレースメントとは指定する画像等から高低差情報を読み取りメッシュを凸凹の形状に変形させることができる機能です。バンプと違い実際にポリゴンが変形します。


実際にやってみます。
バンプと同じく適当なオブジェクトを用意してマテリアルを割り当てます。


「レイヤー追加」>「テクスチャ」>「Cellular」を選択します。


「F8」を押してプレビューレンダーを見てみましょう。
細胞のような模様が表示されます。
ここまバンプ紹介した工程と同じです。



割り当てられた模様をディスプレースメントとして設定します。
「Cellular」の「エフェクト」欄の「ディフューズの色」を右クリック
「サーフェイスシェーディング」から「ディスプレースメント」を選択します。



レンダリングしてみます。
割り当てた「Cellular」の模様で表面凹凸になっているのが確認できます。
黒い部分が凹んで白い部分が出っ張っています。これがディスプレースメントです。
バンプと違い実際にデコボコしています。


「Material」を選択して、
「プロパティ」>「マテリアル(反射)」>「サーフェイス法線」の 
「ディスプレースメント距離」を変えてみましょう。


値を大きくすることでディスプレースメントの凹凸を深くすることができます。