On this page

メッシュソケットは、手動でオブジェクトの親子化やトランスフォームの設定をすることなく、Unrealでメッシュに何かをアタッチしたい場合に便利です。 Houdini Engine for Unrealでは、 ポイントグループ または Detailアトリビュート を使用して、メッシュソケットを作成することができます。

デフォルトでは、見つかったソケットは、同じパーツで生成されたメッシュにアタッチされます。そのパーツに有効なメッシュが見つからない場合、ソケットは、そのソケットと同じジオメトリから作成されたメッシュにアタッチされます。

入力

入力スタティックメッシュにあるメッシュソケットをインポートできます。 入力の Export Sockets チェックボックスがオンのとき、プラグインは自動的にメッシュのソケットにポイント、グループ、アトリビュートを作成します。

出力

ポイントグループを使用する

メッシュソケットを作成するには、接頭辞mesh_socketを含むポイントグループにポイントを割り当てる必要があります。

これらのポイントの位置のP、回転のrot、スケールのscaleアトリビュートが、ソケットのトランスフォームを定義します。

回転アトリビュートが見つからない場合、ソケットの回転はポイントの法線Nアトリビュートから(存在する場合)推測することができます。

rotアトリビュートはオイラー角ではなく、クォータニオン(float 4)として設定する必要があります。

ソケットの名前は、mesh_socket_nameという文字列アトリビュートをポイントに追加することで定義でき、ソケットのタグはmesh_socket_tagというアトリビュートを使用して定義できます。

生成されたソケットはスタティックメッシュエディタに表示され、編集できます。

アクターをソケットにアタッチするには、World Outlinerのアセットのアクターをドラッグアンドドロップするか、コンテキストメニューの“Attach to”を使用します。

Attribute Wrangleのサンプル

以下に、VEXスニペットのサンプルを載せています。 これをAttribute Wrangleで使用することで、Detailアトリビュート経由で2つのソケットを作成することができます:

v@mesh_socket0_pos = {0.5, 0.5, 0.5};
v@mesh_socket0_scale = {2, 2, 2};
s@mesh_socket0_name = "plip";
s@mesh_socket0_tag = "test";
s@mesh_socket0_actor = "Cube";

v@mesh_socket1_pos = {0, 0.5, 0};
v@mesh_socket1_scale = {0.5, 0.5, 0.5};
s@mesh_socket1_name = "plop";

ポイントグループよりもDetailアトリビュートを使用することを推奨します。 特にパックプリミティブを使用する場合がそうです。

割り当て

コンテンツブラウザ内の既存のアクターアセットを、Static Mesh Components上に生成されたソケットに割り当てることができます。

  • mesh_socket_actorという名前の文字列アトリビュートを追加し、そのアトリビュートにアクターの名前やアセットのパスを格納します。

複数のアクターをソケットに事前に割り当てることができます。 そうするには、アクターの名前を,または;(カンマまたはセミコロン)で区切ってください。

mesh_socket_actorアトリビュートにアセットのパスが設定されていて、そのパスが有効な場合、アクターが作成されます。 該当するアクターは、Unrealでのクック時に自動的にソケットに追加されます。

Note

mesh_socket_actorアトリビュートにマッチしたアクターがワールド内に複数存在した場合、 それらすべてのアクターがそのソケットに割り当てられます。 さらに、複数のソケットが事前割り当てで同じアクターを指している場合、最後のソケットのみにそのアクターが割り当てられます。

アトリビュートとグループ

Detailアトリビュート

以下のDetailアトリビュートを使用して、メッシュソケットを作成することもできます: Xは、ソケットの0ベースのインデックスです。

コマンド

機能

IsSessionValid

有効なHoudini Engineセッションが実行/接続されている場合、Trueを返します。

名前

タイプ

説明

mesh_socketX_pos

float[3]

ソケットの位置を表すVector3

mesh_socketX_rot

float[4]

ソケットの位置に使用されるクォータニオン

mesh_socketX_scale

float[3]

ソケットのスケールを表すVector3

mesh_socketX_name

string

ソケットの名前

mesh_socketX_tag

string

ソケットのタグ

Houdini to Unreal

このテーブルには、HDA内で設定する特別なアトリビュートを載せており、 HoudiniデータをUnreal出力に変換する際にプラグインがそれらのアトリビュートを認識します。 また、アセット上にこれらのアトリビュートをセットアップすることで、生成されるUnreal出力の一部のプロパティや挙動を制御/上書きすることができます。 詳細は、アトリビュートとグループを参照してください。

メッシュソケット

アトリビュート名

オーナー

説明

mesh_socket_name

Point

string

ポイントグループによって生成されるメッシュソケットの名前

mesh_socket_tag

Point

string

ポイントグループによって生成されるメッシュソケットのタグ

mesh_socket_actor

Point

string

ポイントグループによって生成されるソケットに自動的にアタッチされるアクターの名前。V2では、これは、アクターとしてインスタンス化され、ソケットにアタッチされるアセットのパスである場合もあります。

mesh_socketX_pos

Detail

float3

メッシュソケットの位置を示したvector3

mesh_socketX_rot

Detail

float4

メッシュソケットの回転に使用されるクォータニオン

mesh_socketX_scale

Detail

float3

メッシュソケットのスケールを示したvector3

mesh_socketX_name

Detail

string

生成されたメッシュソケットの名前

mesh_socketX_tag

Detail

string

生成されたメッシュソケットのタグ

mesh_socketX_actor

Detail

string

自動的にアタッチされるアクターの名前

Unreal to Houdini

このテーブルには、UnrealのデータをHoudiniに取り込む際にプラグインによって生成される特別なアトリビュートを載せています。 詳細は、アトリビュートとグループを参照してください。

メッシュソケット

アトリビュート名

オーナー

説明

mesh_socket_name

Point

string

入力オブジェクトからインポートされるメッシュソケットの名前

mesh_socket_tag

Point

int

入力オブジェクトからインポートされるメッシュソケットのタグ

mesh_socketX_pos

float3

int

入力オブジェクトからインポートされるソケットの位置を示したvector3

mesh_socketX_rot

float4

string

入力オブジェクトからインポートされるソケットの回転を示したクォータニオン

mesh_socketX_scale

float3

int

入力オブジェクトからインポートされるソケットのスケールを示したvector3

mesh_socketX_name

Detail

string

インポートされるメッシュソケットの名前

mesh_socketX_tag

Detail

string

インポートされるメッシュソケットのタグ

グループ

一部の特別なグループ名には、HoudiniのデータをUnrealにマーシャリングする際の生成の挙動を指定した命名規則があります。

メッシュ