Blenderでの3Dサイネージ制作方法
此間の懇親会で、広告屋さんから
「3Dサイネージの作り手が少ない」
という話を聞いたんですよ。
このご時世の映像業界にそんな局所的なブルーオーシャン?
と思ったのですが、実際『クロス新宿ビジョン』で流す映像の制作依頼が、弱小映像屋の私にまで見積もり依頼が来たことがあるわけで。
その時は3D広告の予算感が掴めずご依頼には至りませんでしたが、おかげさまで作り方を調べるきっかけになりました。
本稿では、そんな3Dサイネージ用をBlenderで制作する方法の1例を『クロス新宿ビジョン』を例としてまとめました。
文末に参照したyoutubeや記事へのリンクが貼ってあります。
<注意>実際の放映テストしたわけではないので、あくまでもご参考までに。
事前準備
必要資料
対象のスクリーンを適切なアングルから見上げた写真。
全体が収まっているものが好ましいです。私の場合はOMUNIBUS JAPAN INC.さんのあの有名な猫の写真を利用させていただきました。クロス新宿ビジョンの公式資料(下記公式サイトで必要事項を記入してDL)
テスト環境&ツール
Apple M1 Max(macOS 12.7.2)
Blender3.6(既にDL・設定済みの前提)
fSpy:オープンソース。2Dイメージからカメラパラメータを検出
fSpyのBlenderアドオン:上記のカメラデータをBlenderへインポートするためのアドオン。
fSpyの導入
上記のfSpy公式サイトに"DOWNLOAD"ボタンがあるのでポチ。Githubに飛ぶので、Assetsの中から環境に合ったファイルをDL&インストール。
私の場合は"fSpy-1.0.3.dmg"。
fSpyアドオンの導入
上記fSpy公式サイトの下部にある"official fSpy Importer add-on"をポチ。
Gitが開くので、ページ中ほどに青地でリンクされている"Download the latest version"をクリック。
開いた先にある”fSpy-Blender-○.○.○.zip”をDL。
DLしたZipをBlenderのPreferenceからインストール。通常のアドオンインストールと変わらない手続きです。
カメラ位置と設定の検出
fSpyを起動して、参照画像をドラッグ&ドロップ。
画像内のスクリーンやビルの直角ラインに合わせてXYライン(赤と緑の線)を揃える。(公式資料のビルの間取りでどこが直角か確認する)
+Z軸が下向きになっているので、左側一覧>Vanishing point axes>2のプルダウンで"-y"を選択。
左側一覧>3D guides >Boxを使用し、3D空間に齟齬がないかチェック。
左側一覧>Reference distance で"Along the y axis"を選択し、
18.975メートルに設定。(ビルの間取り図の寸法から)座標ガイドの原点を建物の角に合わせる。
Y軸が計測線に変っているはずなので、寸法した箇所に沿わせる。
保存
Blenderへインポート
File>Import>fSpyで上記で保存した.fspyファイルをインポート
インポートされたカメラのZ位置を平均身長くらい(1.65)にする。
モデリング
スクリーン
(0,0,0)に板ポリを追加。カメラビューで見ながら、スクリーンの角(建物の角)に一致するまでまでZ+方向へ移動させる。入稿フォーマットのアスペクト比と同じ縦横比率にして、スクリーンに重なるように配置する。
(クロス新宿ビジョンの入稿解像度は3160×1360)
スクリーンのカーブするあたりから縦分割する。
その状態を"Basis"としてシェイプキーを追加する。
Objectモードでもうひとつシェイプキーを追加して"Key1"とする。
"Key1"を選択した状態で参考画像のスクリーンのカーブに沿って曲げていく。
スクリーンメッシュはShade Smoothに。
今のスケール、回転、位置を基準にするので、Transformation全てを適用する。
ViewportDisplayで"Wired"かつ"In Front"にしておくと、後々被写体の動きをつけるときにわかりやすい。
ステージ
スクリーンの位置にステージをモデリング。カメラビューを確認しながらやると良い。
投影時の歪みチェックのために、仮マテリアルとしてチェッカーテクスチャを適用。
壁が厚いほど被写体がそこをはみ出す演出の時に"飛び出てる感"が出るけど、ステージエリアが狭くなるので一挙両得とはいかない。
奥へのスペースは無限大。壁作らずに宇宙空間とかにしても良いし、壁自体にギミックを効かせることもできる。
被写体の設定
カメラ視点でチェックしながらステージに配置。
これはあくまでも工程の紹介なので、スザンヌ(モンキー)をスクリーンを散りばめましたです。スクリーン境界ギリギリまで利用します。ライトも配置。プロジェクトによりけりですが、基本コントラスト強めが良いかと。今回はWorldのStrengthは0で、Sunlightを2個配置。
スザンヌに適宜マテリアルを設定。
スクリーンテクスチャの設定
レンダリング
上記の状態で一旦スクリーンオブジェクトをレンダー非表示に
解像度は比率は今のまま、スクリーンの入稿解像度を上回る数値にする。
レンダラーはEEVEEを使用しますが、プロジェクトによって最適なものを選んでください。
イメージレンダリングし名前をつけて保存。これがテクスチャになります。
モディファイアを利用したテクスチャ貼り付け
スクリーン以外のオブジェクトを非表示にする。
スクリーンのViewport DisplayをWiredからTexturedにする。
スクリーンのメッシュを均等なQuadになるまで分割する。
スクリーンに"UVProject"モディファイアを追加。
モディファイア設定のUVmapは既存のUVmapに(展開する必要は無し)。Aspect Xをレンダーイメージと同じ比率に(今回は1.78)。ProjectorをfSpyのカメラにする。スクリーンにマテリアルを追加。上記でアウトプットしたイメージをテクスチャとして参照してEmission Shaderに繋ぐ。
見え方や歪みのチェック。
入稿用レンダリング
キャプチャするスクリーンの準備
スクリーンオブジェクトを複製。
複製したスクリーンのシェイプキー"Key1"が1の状態でモディファイアを適用。
複製したスクリーンのシェイプキー"Key1"を0にして平らにする。
キャプチャ
複製スクリーン以外を非表示にする。
アウトプットの解像度を3160×1360にする。
カメラを新規追加してアクティブカメラに。Orthographicにして、複製スクリーン全体が収まるように調整。
これをレンダリングしたものが入稿用の映像になります。
動画の場合
前述のスクリーンテクスチャ書き出しの際にアニメーションをレンダリングし、イメージシーケンスとしてスクリーンのマテリアルにする。
それをOrthoカメラでレンダリングして、連番を繋げてmp4かmovで入稿。
検証
Plateauから該当エリアの都市モデル(OBJ)をインポートして、fSpyからのカメラデータやサイネージのサイズが合っているか検証しました。
一度周囲の建物含めて土台を作ってしまえば、工程が大幅に縮小できそうですね。
補足
日中と夜間でだいぶ見え方違うと思うので、放映テストは絶対必要かと思います。料金にそこが含まれているかは問い合わせしてみないとわかりませんが、動きの演出が複雑であればあるほど細かい調整が必要になるのでは。
楽しそうなので賞金使って何か流そうかと画策中。1日34回放映で12万円。流石に気軽には手を出せないが、個人プロジェクトでもいける額ではあり、夢がふくらみます。
参考
この記事が気に入ったらサポートをしてみませんか?