BLOGブログ

2023.03.22UE4UE5UE/ 初心者向けUE/ BlueprintUE/ Mesh

[UE5] モデルを○方向から連続撮影するブループリントを作る

執筆バージョン: Unreal Engine 5.0

3Dモデラーの方は、作成した3Dモデルを上司やクライアントに監修してもらう際に、

↓こんな感じで「UE上で、モデルを4~8方向からスクリーンショットを撮影する」みたいな機会は多いのではないでしょうか?

手動で撮影すると結構面倒くさいので、今回は「自動で○方向から連続撮影するブループリント」を作成してみたいと思います。

 


  1. Actor ブループリントを新規作成
  2. Cine Camera コンポーネントを追加する
  3. Cine Camera コンポーネントの設定を変更する
    1. “Constrain Aspect Ratio”をオフに変更 (撮影したスクリーンショットの両端に黒帯が出ることを防ぐ目的)
    2. “Min Brightness”と”Max Brightness”を両方”1″に変更 (撮影毎に露出補正で明るさが変わる事を防ぐ目的)
  4. 必要な変数を作成する

    1. 変数名:TargetActor(型:Actor)(目のアイコンをクリックして、インスタンス毎に変数を変更できるようにしておく)
    2. 変数名:NumOfRotations(型:Integer)(同上。目のアイコンをクリックしておく)
    3. 変数名:Capture Count(型:Integer)
  5. “プレイ”開始と同時に視点をこのアクターのカメラに切り替えるため、下図のようにノードを組む
  6. 続けて、カメラのピントを”TargetActor”に合わせるため、下図のようにノードを組む
  7. 続けて、対象アクターの角度を変えて連続撮影するため、下図のようにノードを組む
    (※”ForLoop”ノードを使いたいところだが、スクリーンショットを撮影する前後に”Delay”をはさみたいので使えない。Function化しないのも同様の理由)

    1. 拡大図①。アクターを回転させる処理と、指定回数分処理を続ける処理
    2. 拡大図②。HighResolutionScreenShotを撮影する処理と、撮影回数をカウントする処理
      (※”Execute Console Command”で呼んでいるコマンドは「HighResShot 2」。ディスプレイの2倍サイズの高解像度スクリーンショットを撮影できる。
        この数字を上げれば、より大きなサイズのスクリーンショットが撮影できる)

      (※今回作成したブループリントの全体像)

  8. レベル上に必要なアクターを配置する

    1. 撮影したいアクターを、原点(Location = 0,0,0)配置する
    2. 作成したブループリントをレベル上に配置し、対象アクターを中心に捉えるように配置する(例:Location = 0, 555,90 Rotation = 0,0,-90)
  9. 作成したブループリントの設定を下記のように変更する

    1. Target Actor = 撮影したいアクター
    2. Num Of Rotations = 撮影したい方向の数 (例1:90度毎に撮影したい場合=4   例2:45度毎に撮影したい場合=8 )
  10. F11でビューポートを全画面表示にし、Alt + P でゲームをプレイする
    プレイすると、自動的に指定した回数、対象アクターを回転させながら撮影が行われる。全方向の撮影が終わったら Esc でエディタに戻る
  11. 撮影された画像は プロジェクト名\Saved\Screenshots\WindowsEditor 内に保存される
    1. 4方向(Num Of Rotations = 4)
    2. 8方向(Num Of Rotations = 8)

こういった単純作業は、ブループリントでどんどん効率化していきましょう!