Octane renderでマネキンの皮膚作成

Victoria 4などを用いてOctane renderでマネキンの皮膚を作成するとき、もともとのマテリアルをcopyしておき、次にNode TypeをMix Materialに変更する。Amountを0.88ぐらいにしておき、FIrst Materialは先ほどのcopyのマテリアルを貼り付け、Second MaterialをLive DBのSurface Depth 0602 Basic Normalあたりにして微調整すると、光沢のあるマネキン皮膚のような感じになる

さらにFIrst MaterialでのDiffuse nodeには皮膚のマテリアルがあるが、これのLegacy gamma値を2.2->1.8から1.9程度に落とし、and/or Opacityも1.0->0.85ぐらいにして透明感もつけるとそれらしくなる。


ComfyUIのSBS出力を簡易なVR動画に

ComfyUIからは2025年1月現在、今のPCでだいたい1024 x 1024 または1280 x 768程度の3D SBS画像を生成することができる。本来ならこれをAdobe Premiereあたりで編集して動画を作成するのが筋なのだがこのサイズだとエンコードしてデバイスに出力してくれない。そこで簡易にFFmpeg + ステレオムービーメーカを活用してVR動画を作るシナリオをかんがえたので、下記に記す。

想定:
1)画像は3D静止画をパラパラと見せる。1枚3秒程度見せる。
2)タイトルや途中のテキストは、独立した画像で見せることとし、3D_SBSの中には埋め込まない
3)音声や画像はまとめて一つの音源として作成し、これもFFmpeg中にまとめる

やり方案:
1)最初に1024 x 1024 x 2面(=2048 x 1024) のテンプレート面をpngなどで作成する。
2)これを使って
・タイトル
・テキストのみのページ
・他のコンテンツ(人物の様子など)
・エンディング
などを最初に作っておく
3)静止画はあらかじめ連番で作成しておく。シナリオに沿って1)で作成したページもこの時点で入れて連番にしておく。静止画の1枚の継続時間を想定(例えば4秒)しておく。
4)Adobe Premiereを使って静止画を読み込み、それに合わせて音声シナリオ、背景音楽を編集する。継続時間を考慮する。できたら、全部の書き出しはできないので音声と音楽のみまとめてmp3などで出力する。
5)静止画の中にテキストを盛り込みたいページがあれば、ステレオフォトメーカで編集して挿入する
6)FFmpegでエンコードする。
ffmpeg -framerate 30 -i frame_%04d.png -c:v libx264 -pix_fmt yuv420p output.mp4
-framerate 30 は1秒あたり30フレームの動画を指定しています。frame_%04d.png はSBS画像ファイル名の形式(例: frame_0001.png, frame_0002.png など)。output.mp4 は出力動画ファイルの名前です。
7)音声もincludeする際には
ffmpeg -framerate 30 -i frame_%04d.png -i audio.mp3 -c:v libx264 -pix_fmt yuv420p -c:a aac -shortest output.mp4

output.mp4 出力動画のファイル名。ate 30動画のフレームレートを指定(30FPSに設定)。
-i frame_%04d.png入力画像(連番形式)の指定(例: frame_0001.png, frame_0002.png)。-i audio.mp3入力音声ファイル(MP3ファイルを指定)。
-c:v libx264 動画コーデックを指定(H.264で圧縮)。
-pix_fmt yuv420 動画のピクセルフォーマットを指定(互換性向上のための設定)。
-c:a aac音声コーデックを指定(AAC形式に変換)。
-shortest 音声と画像の短い方に合わせて動画を終了させるオプション 

これで見ることができるはずと期待


3D SBS, MPO作成時の背景

3D作品を作って、背景を遠景として重ねたい場合がある。その際には、右ファイルには背景を少し”右に”オフセットさせ、左ファイルには背景を少し”左に”オフセットさせるとうまく後ろに入る。なおこの時のencodingはoff-axisにしている。


Stable DiffusionでDepthを使ってVRを楽しむ

Depth機能を導入すると、DepthMapを作ることができる。これをうまく使うとVRで3D画像を楽しめる。SDでDepthMapの作り方は例えばhttps://note.com/alone1m/n/nb76ae31f8f86を参照されればできるが、これをさらにステレオフォトメーカhttps://stereo.jpn.org/jpn/stphmkr/index.htmlをつかうと3D画像を生成できる。やりかたはhttps://twitter.com/Alone1Moon/status/1594750549647237120に書いてくださっているが、

(1)元画像とDepth Mapをそれぞれ左右の画像として読み込む

(2)編集->デプスマップ->2D+デプスマップから3D作成

とする。このときデプス画像で白を手前とするにチェックを入れる。これで完成

VR180に対応した画像に変換したいときは、2枚の画像を開いた状態で、編集>全天球画像編集>エクイレクタングラー⇔平面画像変換>平面画像からエクイレクタングラー変換を選べば良いようだ


Stable Diffusion WebUIのリセット

Stable Diffusion WebUIをいじっていて、いろんな拡張機能をどんどん入れてゆくとどこかで何かおかしなエラーとかdepreciatedとか非推奨のまま使い続けているとか、いろんなメッセージがたまってくることがある。https://romptn.com/article/33721#google_vignette にやりかたが書いてあった。要するにWebUIディレクトリ配下にあるvenvディレクトリを全部削除し、そのあとでwebui-user.batを起動すれば新たにvenvを構築してくれるようだ


ポートレート3D映像の作り方

2023現在、Fijifilm 3Dで撮影した映像を利用してOculusで視聴できる画像で今のところ満足できる作成法は以下の通り。

ターゲットのモデルはPoserで作成し、Octane renderでParallel & SBS、視差は60mm程度で作成する。特にカメラの焦点距離を40mm程度にする。pngで出力する。サイズは960 x 1280の横つながりなので1920 x 1280とする。Parallelで作成するとボディが前面に浮き出た感じになる。

一方3Dカメラの画像は左右とも3584 x 2016である。ステレオフォトメーカProを使ってこれをリサイズ &トリミングする。もしもポートレートから後ろに遠ざけたいのであれば、画面を目いっぱい切り抜けばよいので、まず縦横比を維持しつつ高さを1280として縮小し、その後に960 x 1280でトリミングすればよい。逆にポートレートに近づけたい場合には高さを1280から2016の範囲で適当にセットし、縦横比を維持して縮小し、その後に960 x 1280でトリミングすればよい。これをjpgでステレオ出力(S=SBS)する。1920 x 1280の画像が出力される。

Photoshopを用いて、3Dカメラの背景画像を読み込み、合わせてレイヤを用いてモデルのpng出力を重ねる。Tipsとしてこのpngの右上/左下に小さな四角画像を入れておくと、コピペして背景画像と重ねる際にうまくゆく。後でこれは消す。

重ねの常で、モデルのレイヤでレイヤのフリンジ除去を行った後、背景とのバランスで、明るさやコントラストを調整してゆく。背景をぼかしたり、他のエフェクトをつけることも可能だ。

出来上がった3D SBSファイルは、jpgで保存する。オプションとして、再度ステレオフォトメーカProを使ってロゴやテキストを入れることもできる。Parallelを使ってボディを前面に出す場合には文字の深さは+40ピクセル程度、ロゴも30ピクセル程度にした方がよい。

これでOculusでも他のVRででも素敵な立体画像視聴が可能となる。