執筆バージョン: Unreal Engine 5.0
|
3Dモデラーの方は、作成した3Dモデルを上司やクライアントに監修してもらう際に、
↓こんな感じで「UE上で、モデルを4~8方向からスクリーンショットを撮影する」みたいな機会は多いのではないでしょうか?
手動で撮影すると結構面倒くさいので、今回は「自動で○方向から連続撮影するブループリント」を作成してみたいと思います。
- Actor ブループリントを新規作成
- Cine Camera コンポーネントを追加する
- Cine Camera コンポーネントの設定を変更する
- “Constrain Aspect Ratio”をオフに変更 (撮影したスクリーンショットの両端に黒帯が出ることを防ぐ目的)
- “Min Brightness”と”Max Brightness”を両方”1″に変更 (撮影毎に露出補正で明るさが変わる事を防ぐ目的)
- 必要な変数を作成する
- 変数名:TargetActor(型:Actor)(目のアイコンをクリックして、インスタンス毎に変数を変更できるようにしておく)
- 変数名:NumOfRotations(型:Integer)(同上。目のアイコンをクリックしておく)
- 変数名:Capture Count(型:Integer)
- “プレイ”開始と同時に視点をこのアクターのカメラに切り替えるため、下図のようにノードを組む
- 続けて、カメラのピントを”TargetActor”に合わせるため、下図のようにノードを組む
- 続けて、対象アクターの角度を変えて連続撮影するため、下図のようにノードを組む
(※”ForLoop”ノードを使いたいところだが、スクリーンショットを撮影する前後に”Delay”をはさみたいので使えない。Function化しないのも同様の理由)
- 拡大図①。アクターを回転させる処理と、指定回数分処理を続ける処理
- 拡大図②。HighResolutionScreenShotを撮影する処理と、撮影回数をカウントする処理
(※”Execute Console Command”で呼んでいるコマンドは「HighResShot 2」。ディスプレイの2倍サイズの高解像度スクリーンショットを撮影できる。
この数字を上げれば、より大きなサイズのスクリーンショットが撮影できる)
(※今回作成したブループリントの全体像)
- レベル上に必要なアクターを配置する
- 撮影したいアクターを、原点(Location = 0,0,0)配置する
- 作成したブループリントをレベル上に配置し、対象アクターを中心に捉えるように配置する(例:Location = 0, 555,90 Rotation = 0,0,-90)
- 作成したブループリントの設定を下記のように変更する
- Target Actor = 撮影したいアクター
- Num Of Rotations = 撮影したい方向の数 (例1:90度毎に撮影したい場合=4 例2:45度毎に撮影したい場合=8 )
- F11でビューポートを全画面表示にし、Alt + P でゲームをプレイする
プレイすると、自動的に指定した回数、対象アクターを回転させながら撮影が行われる。全方向の撮影が終わったら Esc でエディタに戻る
- 撮影された画像は プロジェクト名\Saved\Screenshots\WindowsEditor 内に保存される
- 4方向(Num Of Rotations = 4)
- 8方向(Num Of Rotations = 8)
こういった単純作業は、ブループリントでどんどん効率化していきましょう!