CreateOrUpdateInstanceComponent関数において、恐らく引数の受け渡しが間違ってると思われる記述を見つけました。
HoudiniEngine\Source\HoudiniEngine\Private\HoudiniInstanceTranslator.cpp
において、
306行目付近
if (!CreateOrUpdateInstanceComponent(
InstancedObject, InstancedObjectTransforms,
InstancedOutputPartData.AllPropertyAttributes, CurHGPO,
ParentComponent, OldInstancerComponent, NewInstancerComponent,
InstancedOutputPartData.bSplitMeshInstancer,
InstancedOutputPartData.bIsFoliageInstancer,
VariationMaterials,
InstancedOutputPartData.bForceHISM))
601行目付近
if (!CreateOrUpdateInstanceComponent(
InstancedObject, InstancedObjectTransforms,
AllPropertyAttributes, HGPO,
InParentComponent, OldInstancerComponent, NewInstancerComponent,
bSplitMeshInstancer, bIsFoliageInstancer, InstancerMaterials,bForceHISM))
{
// TODO??
continue;
}
となっているのですが、正しくは以下のようになるものと思われます。
306行目付近
if (!CreateOrUpdateInstanceComponent(
InstancedObject, InstancedObjectTransforms,
InstancedOutputPartData.AllPropertyAttributes, CurHGPO,
ParentComponent, OldInstancerComponent, NewInstancerComponent,
InstancedOutputPartData.bSplitMeshInstancer,
InstancedOutputPartData.bIsFoliageInstancer,
VariationMaterials,
InstanceObjectIdx,
InstancedOutputPartData.bForceHISM))
601行目付近
if (!CreateOrUpdateInstanceComponent(
InstancedObject, InstancedObjectTransforms,
AllPropertyAttributes, HGPO,
InParentComponent, OldInstancerComponent, NewInstancerComponent,
bSplitMeshInstancer, bIsFoliageInstancer, InstancerMaterials,
InstanceObjectIdx,
bForceHISM))
{
// TODO??
continue;
}
というのも関数の引数リストを見ると
FHoudiniInstanceTranslator::CreateOrUpdateInstanceComponent(
UObject* InstancedObject,
const TArray<FTransform>& InstancedObjectTransforms,
const TArray<FHoudiniGenericAttribute>& AllPropertyAttributes,
const FHoudiniGeoPartObject& InstancerGeoPartObject,
USceneComponent* ParentComponent,
USceneComponent* OldComponent,
USceneComponent*& NewComponent,
const bool& InIsSplitMeshInstancer,
const bool& InIsFoliageInstancer,
const TArray<UMaterialInterface *>& InstancerMaterials,
const int32& InstancerObjectIdx,
const bool& bForceHISM
となっており、bForceHISMの前にInstancerObjectIdxが設定されるようになっているためです。
現在bForceHISMが渡されている部分がInstancerObjectIdxになっておりInstancerObjectIdxが正しく処理されていないように思えます。
以上ご報告まで。