UDN
Search public documentation:

MeshPaintReferenceJP
English Translation
中国翻译
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 ホーム > Unreal Editorとツール > メッシュペイントリファレンス
UE3ホーム > レベルデザイナー > メッシュペイントリファレンス

メッシュペイントリファレンス


概要


メッシュペイントツールで、静的メッシュの頂点カラーをレベルビューポートからインタラクティブにペイントが出来ます。

meshpaint.jpg

固有のカラーやアルファ値を持つシングルメッシュの複数インスタンスのペイントや、マテリアルに対して好きなようにデータを適用していただけます。頂点カラーデータを直接的に可視化、また複数のメッシュを簡単に同時編集出来ます。ツールには、1ピクセルあたりの複数テクスチャ補間をする「ブレンドウェイト」と呼ばれる特別なペイント機能があります。

注意: 通常の静的メッシュに加え、InterActorsも直接ペイントすることが出来ます。

簡易ガイド


頂点ペイント機能は大概において習得が簡単なので、すぐに作業に取り掛かりたい方は下記の基本手順を参照してください: 

下記のセクションで様々なブラシの設定やマテリアルの構成方法などを含んだプロセスの詳細を記述します。

メッシュペイントモード


メッシュペイントツールを呼び出して使用するには、 Mesh Paint Mode と入力してください。メイン編集フレームの左パネルにあるツールバーボタンをクリックしてください。

meshpaintmode.jpg

このモードが起動中はカメラ移動や選択といった共通エディタ動作は実行出来ますが、ある特定の機能は無効化されています。また、お使いのperspective(透視図法)ビューポートが強制的にシステム必須設定の リアルタイムモード へ切り替わります。

メッシュをペイントする


メッシュのペイントはとても簡単です!

最初に覚えておいていただきたいことは、選択されたメッシュのみがペイント出来るということです。特定のオブジェクトのみのペイントに制限する傍ら、必要に応じて選択された複数のメッシュアクタのペイントも可能です。

メッシュペイントが有効時、通常の選択キューではなく、選択されたアクタが十字を周りに伴って表示されます。一つかそれ以上のメッシュを選択後、マウスをその上に動かすとペイントブラシが現れます!

paint_brush.jpg

ペイントブラシは、カーソル下のメッシュの点を中心に、メッシュ配列の面法線に沿って投影される円柱のようなものと考えることができます。ブラシの円形な輪郭は、ブラシの半径を表します。内側の円はブラシの falloff(フォールオフ) を表します(または内側の半径)。 既にお気づきでしょうが、ブラシの中心からはみ出している小さな線がメッシュの表面法線です。

ペイントをするには、 [Ctrl]キーを押しながら 、メッシュの表面にクリック&ドラッグします。 [Shift]キー を代わりに長押しすると削除されます。

クリックするたび、またはマウスの位置が動く(ドラッグされる)度にペイントが表面に適用されます。また brush flow(ブラシフロー) が有効化されると、シーンがレンダリングされる毎にペイントが適用されます。 

paint_stroke.jpg

Perspective(透視図法) ビューポートウィンドウのみでペイントが出来ることに留意ください。

色付け

デフォルトのMesh Paint(メッシュペイント)モードで、直接データに色付け(赤、緑、青、アルファ)が出来ます。ペイントを選択して色を消した後、ブラシを使ってメッシュに色を適用します。万が一、マテリアルに頂点カラーとピクセルシェーダーの組み合わせを設定されている場合、このモードは大変有益です。

ペイントモードcolors(カラー) に設定されているとこれらのオプションが利用可能となります:

color_settings.jpg

fill_button.jpg Channels(チャンネル) 設定に関して、 Paint color(ペイントカラー) を使って色を塗ったメッシュまたはインスタンスを「Fills(塗りつぶす)」する
copyasset_button.jpg 選択したインスタンスからソースメッシュアセットへ頂点カラーをコピーする
import_button.jpg 選択したインスタンスの頂点カラーを追加するため「.TGA」画像ファイルをインポートする
paint_button.jpg Ctrl + LMB + Drag )をペイント中に適用されるカラー。現在のカラーの見本がプレビュー表示する。カラーはツールに内蔵されているColor Pickerを使って設定
erase_button.jpg ( Ctrl + Shift + LMB + Drag )を削除する際に「消しゴム」として使うカラー。現在のカラーの見本がプレビュー表示。カラーはツールに内蔵されているColor Pickerを使って設定
https://udn.epicgames.com/pub/Three/MeshPaintReference /swap_button.jpg Paint color(ペイントするカラー)Erase color(「消しゴム」として使うカラー) を交換する
https://udn.epicgames.com/pub/Three/MeshPaintReference /channels_button.jpg これらのチェックボックスはペイントブラシによって作用するカラー/アルファチャンネルを設定

ブラシの設定

このセクションでは全てのツールモードに共通なブラシ設定について説明します。オプションはスライダーで調整が出来ます。クリック&ドラッグ操作によって素早く設定値を変更、またはクリック&設定値を直接入力して変更することも出来ます。

brush_settings.jpg

設定 説明
Radius(半径) ブラシの半径をUnreal単位で表します。またブラシは、半径の半分に等しい深度ベースのフォールオフを設定出来ます。
Strength(強度) ペインティングが有効時、カーソルをクリックまたは動かすたびに適用するペイントの量を設定します。また、 brush flow(ブラシフロー) が有効の場合、ブラシ強度の割合(フローの量)が表面に適用されます。
Falloff(フォールオフ) 距離と共に外側へ向かうブラシの強度の設定をします。値が1.0のフォールオフは、ブラシのセンター強度が100%で、ブラシの半径に向かって直線的に強度が衰えていくことを意味します。値が0.5のフォールオフは、ブラシの強度が半径に向かって半分までが100%で、その後直線的に強度が衰えることを意味します。値が0.0のフォールオフは、ブラシの強度が半径全体に対して100%を意味します。この設定に関係なく、 depth-based falloff(深度ベースのフォールオフ) は常にアクティブであることにご注目ください。
Enable brush flow(ブラシフローの有効化) このオプションは、ユーザーがカーソルを動かしていない状態でも、全てのレンダリングフレームへペイントの適用をブラシに設定します。エアーブラシ的な効果をもたらします。
Flow amount(フロー量) Enable brush flow(ブラシフローを有効) が有効時、全てのレンダリングフレームにペイントが適用される際のブラシの強度の割合を設定します。
Ignore back-facing(背面を無視する) この設定が有効化されると、カメラに背いている三角形は無視されペイントブラシに影響されません。

アセット対インスタンス

メッシュペイントツールは実際のメッシュソースアセットへのペイントを可能にしますが、大抵においてレベルに置かれたメッシュのインスタンスのペイントが目的のはずです。例えば、マップ上にピラーメッシュが4か所に置かれていると、それぞれのインスタンスを固有にペイント出来ます。

メッシュペイントツールがマップにあるアクタのインスタンス、もしくは実際のメッシュソースアセットを編集するかは、 Vertex color data(頂点カラーデータ) オプションを使って設定します。

vertex_color_data_option.jpg

オプション 説明
Actor(アクタ) レベルの静的メッシュコンポネントのインスタンスに格納されているカラーデータをペイントします
Mesh asset(メッシュアセット) オリジナルメッシュアセットに格納されているカラーデータを編集します。多数のレベルで共有されている可能性があります

アクタインスタンスの頂点カラーをペイントする際に、 Instance vertex colors(インスタンスの頂点カラー) フィールドに選択したメッシュの情報が表示されます。

vertex_color_data_instance.jpg

これは頂点カラーデータ(マップパッケージに格納)が使用した number of bytes of memory used(メモリー使用量のバイト数) を表示します。 この値は現在選択されているアセットの合計を反映します。

コマンド 説明
Copy(コピー) 選択したメッシュにインスタンスの頂点カラーデータをコピーします。詳細はインスタンスカラーデータの共有 を参照してください。
Paste(貼り付け) すでにコピーしたインスタンスの頂点カラーデータを貼り付けます。詳細はインスタンスカラーデータの共有を参照してください。
Remove(削除) 選択した全てのメッシュのデータを削除して、デフォルトの頂点カラーを復元します。
Fix(修正) 保存されたインスタンスデータを、異なる頂点カウントを持つ再インポートされたメッシュとの適合を試みます。

インスタンスカラーデータの共有

メッシュをペイントして、そしてこれらの頂点カラーを同レベルのメッシュのインスタンスと共有するケースがあるかもしません。例えば、使用している屋外マップにピラーメッシュがあり、ピラーのベースを緑にペイントしたい場合、またマップ上の全てのインスタンス のみ をそのまま表示したい場合など。

インスタンス化された頂点カラーデータは、 Mesh Paint Dialog(メッシュペイントダイアログ) にある Copy(コピー)Paste(貼り付け) ボタンを使ってレベルのインスタンス間で簡単にコピー&貼り付けが出来ます。

To Copy Instanced Color Data:(インスタンス化されたカラーデータをコピーする)

  1. カラーデータを格納するインスタンスを選択、 Copy(コピー) ボタンをクリックします。
    sharing_copy.jpg
  2. カラーデータをコピーするインスタンスを選択して、 Paste(貼り付け) ボタンをクリックします。
    sharing_paste.jpg
  3. カラーデータがインスタンス全てに適用されます。
    sharing_result.jpg

頂点カラーの照合

静的メッシュがインスタンスの頂点カラーの頂点数ではなく、異なる頂点カウントと再インポートされるとマップ確認とクック中に下記のようなエラーが表示されます:

StaticMeshActor_73 (LOD 0) has hand-painted vertex colors that no longer match the original StaticMesh

メッシュの頂点に対し照合しないインスタンス化済の頂点カラーは、頂点カラーをコンソール上で存在ないものとしPC上では誤った表示となります。この問題を修正するには、 Mesh Paint Dialog(メッシュペイントダイアログ)Fix(修正する) ボタンをクリックすると、頂点カラーが静的メッシュと一致しない限り修正がされます。

meshpaint_fix.jpg

この機能はメッシュの修正が必要な時のみ有効で、それ以外では無効となります。ツールは微調整が必要な際に特に有効で、ほとんどのケースに対応します。メッシュに対し劇的な変更がされればされるほど、カラーの照合は難しくなります。この機能は、変更の度合いに関係なく常にいずれかの色と照合するようデザインされています。結果に満足し出来なくとも修正を試みないユーザーの手助けとならないように、このツールはあえて自動化せずに作成しました。追記ですが、メッシュペイントへの機能の追加は、修正が施された後でも簡単に再修正が可能であることを意味します。

オリジナルメッシュ:

fix_before.jpg

修正が適用された低ポリゴンメッシュ:

fix_after.jpg

カラー対ブレンドウェイト

カラーを直接ペイントしていく代わりに、 paint texture blend weights(テクスチャのブレンドウェイトをペイントする) へツールを切り替える方法があります。 これはマテリアルの設定時、ブレンド係数の組み合わせに2かそれ以上のテクスチャを組み合わせて頂点カラーチャンネルを使用する場合に有益です。ペイントする際にメッシュペイントツールの automatically normalizing your blend weights(ブレンドウェイトを自動的に正常化する) 機能がお役にたちます。テクスチャインデックスを選択して、ペイントを開始してください。その際の正しいカラー/アルファ値の設定はツールが確認します。

paint mode(ペイントモード)blend weights(ブレンドウェイト) に設定されている時、下記のオプションが利用可能です。

blend_weight_options.jpg

Texture count(テクスチャカウント) メッシュと関連付けのあるマテリアルをブレンドするテクスチャの数を設定してブレンドウェイト「戦略」を構成します。このオプションを変更すると、 Paint texture(テクスチャをペイントする)Erase texture(テクスチャを削除する) に利用出来る選択肢が変わります。 Blend weight material setup セクションで詳細を参照してください。
Paint texture(テクスチャをペイントする) クリック毎に適用するテクスチャインデックスを選択するか、ペイントが有効の際にカーソルを動かしてください(Ctrl+LMB+drag)
Erase texture(テクスチャを削除する) 削除中に「消しゴム」テクスチャとしてテクスチャインデックスを使用する (Ctrl+Shift+LMB+drag)

Paint texture(テクスチャをペイントする)Erase texture(テクスチャを削除する) 間の小さな矢印をクリックして、テクスチャの切り替えが素早く出来ます。

ビューモード

Perspective(透視図法)ビューポートのビューモードコントロールを使用して、頂点カラーとアルファ値を視覚化することが出来ます。

view_options.jpg

Off デフォルトのエディタビューモードを復元
RGB 静的メッシュアンリットをRGB頂点カラーのみで表示
R 静的メッシュアンリットを頂点カラー赤のみで表示
G 静的メッシュアンリットを頂点カラー緑のみで表示
B 静的メッシュアンリットを頂点カラー青のみで表示
A 静的メッシュアンリットを頂点アルファのみで表示

マテリアルを設定する


メッシュペイントシステムは、メッシュのマテリアルに「VertexColor」表現の使用が必要となります。頂点カラーデータはこれによってマテリアルへと渡されるからです。ここで留意頂きたいのが、この時マテリアルが「Transform」表現を同時に使用している場合、マテリアルの bPerPixelCameraVector プロパティが有効でない限り「VertexColor」表現は作用しません。

メッシュペイントツールの潜在的用途を実証するいくつかのマテリアル例が、 EngineMaterials.upk でご覧いただけます。参照するには、コンテンツブラウザから、 TexturePaint または VertexPaint を検索してください。

頂点アルファ値をマテリアルエディタのディフューズテクスチャ間でどのようにブレンドするかの一例です。

material_example.jpg

マテリアル例

この例では、 EngineMaterials.upk にある VertexPaint_2Tex_Color material を使用します。これは以下の3つの特別効果を持つマテリアル例です:

  • ペイントされた頂点カラー(RGB)でディフューズカラーを調整します
  • 頂点アルファチャンネル(A)を使用して、2つのディフューズテクスチャ(Diffuse, Diffuse2)をブレンドします *頂点アルファチャンネル(A)を使用して、2つの法線テクスチャ(Normal、 Normal2)をブレンドします

マテリアルをバインドした後、アーティストはMesh Paint(メッシュペイント)ツールを用いて、テクスチャ間の「色合い」とブレンドウェイト両方をペイントすることができます。

まず、頂点カラー(RGB)が「Color」ペイントモードでペイントされます。 この色はマテリアルにディフューズテクスチャカラーとして乗算処理されていきます。スクリーンショットは「color only(カラーのみ)」表示モードのメッシュを表示しています。

MeshPaintColorOnly.png MeshPaintColorPaintMode.png

次に頂点アルファ(A)が「Blend Weight」ペイントモードでペイントされます。この値はディフューズ/法線テクスチャ間の補間として使用されます。このスクリーンショットは「alpha only」(A)ビューモードのメッシュを表示するものです。

MeshPaintAlphaOnly.png MeshPaintBlendWeightPaintMode.png

最後にこれが最終結果です。 完全に点灯、陰影がつけられました。

MeshPaintLitMaterial.png