Houdini Engine For Unreal V2 18.5.532 バグと思われるコード

   254   2   0
User Avatar
Member
1 posts
Joined: Jan. 2021
Offline
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が正しく処理されていないように思えます。
 
以上ご報告まで。
Edited by yuu_kajii - April 30, 2021 08:10:17
User Avatar
Staff
57 posts
Joined: April 2015
Offline
ご報告ありがとうございました。こちらは 113098 として登録いたしました。
User Avatar
Staff
57 posts
Joined: April 2015
Offline
こちらの件は、18.5.564 で修正されております。お時間ございましたら、ご確認いただけますでしょうか?
  • Quick Links