LoginSignup
5
2

UE5でキャラの立ち絵を作る

Last updated at Posted at 2022-06-03

UE5でキャラの立ち絵を作る

UE5でキャラの立ち絵を作る手順をまとめておきます。

キャプチャ.PNG キャプチャ2.PNG

UE5にはスクリーンショットを取る機能があります。カスタム深度マスクを使うことでバックグラウンドからオブジェクトを抜き出した画像を作ることができるのですが、、

キャプチャ3.PNG キャプチャ4.PNG

\(^o^)/めっちゃジャギってる!

というわけで別の方法をとります。アルファチャンネル用の画像とカラー画像を別々に作成し、それらを合成して立ち絵の画像を作る流れになります。
キャプチャ5.PNG
TextureRenderTarget2Dを追加します。
キャプチャ6.PNG
追加したTextureRenderTarget2DのSizeXとSizeYを好きな値に変更します(2のべき乗である必要があります)。Render Target FormatはRTF RGBA8を選択します。
キャプチャ7.PNG
Scene Capture 2Dを追加します。
キャプチャ8.PNG
追加したScene Capture 2Dの「Texture Target」に先ほど追加したTextureRenderTarget2Dをセットします。また、「Capture Scene」が「SceneColor (HDR) in RGB. Inv Opacity in A」になっていることを確認します。
キャプチャ9.PNG
Scene Capture 2Dの位置をいい感じの位置に調整します。
キャプチャ10.PNG
TextureRenerTarget2Dを右クリックしてコンテキストメニューを出し「スタティックテクスチャを作成」を選びます。
キャプチャ11.PNG
テクスチャが生成されます。
キャプチャ12.PNG
テクスチャを右クリックしてコンテキストメニューを出し「アセットアクション」→「エクスポート」を選びます。
キャプチャ13.PNG
適当に名前を付けてTGA形式で保存します。これがアルファチャンネル用の画像になります。
次にカラー画像を作ります。
キャプチャ14.PNG
Scene Capture 2Dのシーンキャプチャの「Capture Source」を「Final Color (LDR) in RGB」に変更します。
キャプチャ15.PNG
TextureRenderTarget2Dの「テクスチャレンダーターゲット」の「Target Gamma」を2.2に変更します。
キャプチャ16.PNG
TextureRenerTarget2Dを右クリックしてコンテキストメニューを出し「スタティックテクスチャを作成」を選びます。
キャプチャ17.PNG
テクスチャが生成されます。
キャプチャ18.PNG
テクスチャを右クリックしてコンテキストメニューを出し「アセットアクション」→「エクスポート」を選びます。適当に名前を付けて保存します。これがカラー画像になります。
キャプチャ19.PNG
保存した二枚の画像をGIMPで読ませます。
キャプチャ20.PNG
アルファチャンネル用の画像を選択した状態で、メニューから「色」→「色要素」→「チャンネル分解」を選びます。
キャプチャ21.PNG
「色モデル」に「アルファ」を選んでOKを押します。
キャプチャ22.PNG
アルファチャンネルが取り出されました(以下アルファ画像と呼びます)。
キャプチャ23.PNG
アルファ画像を選択した状態で、メニューから「色」→「階調の反転」を選びます。
キャプチャ24.PNG
カラー画像を選択した状態で、メニューから「レイヤー」→「レイヤーマスク」→「レイヤーマスクの追加」を選択します。
キャプチャ26.PNG
「レイヤーのアルファチャンネル」を選択し「追加」を押します。
キャプチャ25.PNG
アルファ画像を選択した状態で、Ctrl+A、Ctrl+Cで全選択&コピーします。
キャプチャ27.PNG
カラー画像を選択した状態で、Ctrl+Vで貼り付けます。これでカラー画像とアルファ画像を合成することができます。
NewTextureRenderTarget2D_Tex1.png
できあがりです。

参考にさせていただいたサイト

GIMPの処理を自動化(2023/09/10追記)

GIMPの処理を自動化しました。カラー画像とアルファ画像用の画像をGIMPに読ませたら、メニューの「フィルター」→「Python-Fu」→「コンソール」を押して以下のコードを張り付けて実行してください。(カラー画像を画像名を「TextureRenderTarget2D_Tex」、アルファ画像用の画像の画像名を「TextureRenderTarget2D_alpha_Tex」、出力画像を「E:\output.png」としています)

images = gimp.image_list()
alpha_images = [img for img in images if '[TextureRenderTarget2D_alpha_Tex] (インポートされた画像)' == img.name]
alpha_image = alpha_images[0]
alpha_drawable = pdb.gimp_image_active_drawable(alpha_image)
decomposed_images = pdb.plug_in_decompose(alpha_image, alpha_drawable, "Alpha", False)
decomposed_image = decomposed_images[0]
decomposed_drawable = pdb.gimp_image_active_drawable(decomposed_image)
pdb.gimp_drawable_invert(decomposed_drawable, True)
gimp.Display(decomposed_image)

rgb_images = [img for img in images if '[TextureRenderTarget2D_Tex] (インポートされた画像)' == img.name]
rgb_image = rgb_images[0]
rgb_layer = pdb.gimp_image_get_active_layer(rgb_image)
rgb_mask = pdb.gimp_layer_create_mask(rgb_layer, 2)
pdb.gimp_layer_add_mask(rgb_layer, rgb_mask)

pdb.gimp_selection_all(decomposed_image)
pdb.gimp_edit_copy_visible(decomposed_image)
rgb_drawable = pdb.gimp_image_active_drawable(rgb_image)
pdb.gimp_edit_paste(rgb_drawable, True)
pdb.gimp_image_scale(rgb_image, 1024, 1024)

merged_layer = pdb.gimp_image_merge_visible_layers(rgb_image, 1)
pdb.file_png_save_defaults(rgb_image, merged_layer, "E:\\output.png", "E:\\output.png")

キャプチャ.PNG

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2