Skip to content

Commit 2849958

Browse files
committed
Fixed unreal_bake_folder and unreal_output_name not being applied to Geometry Collection outputs.
1 parent 4153694 commit 2849958

File tree

2 files changed

+29
-5
lines changed

2 files changed

+29
-5
lines changed

Source/HoudiniEngine/Private/HoudiniEngineBakeUtils.cpp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4470,6 +4470,12 @@ FHoudiniEngineBakeUtils::BakeGeometryCollectionOutputToActors(
44704470
continue;
44714471
}
44724472

4473+
FString* Attribute = Pair.Value.CachedAttributes.Find(HAPI_UNREAL_ATTRIB_BAKE_FOLDER);
4474+
if(Attribute != nullptr)
4475+
{
4476+
PackageParams.BakeFolder = *Attribute;
4477+
}
4478+
44734479
FName WorldOutlinerFolderPath = GetOutlinerFolderPath(
44744480
Resolver,
44754481
FName(InFallbackWorldOutlinerFolder.IsEmpty() ? PackageParams.HoudiniAssetActorName : InFallbackWorldOutlinerFolder));
@@ -6372,7 +6378,7 @@ UPhysicsAsset* FHoudiniEngineBakeUtils::DuplicatePhysicsAssetAndCreatePackageIfN
63726378
UGeometryCollection* FHoudiniEngineBakeUtils::DuplicateGeometryCollectionAndCreatePackageIfNeeded(
63736379
UGeometryCollection* InGeometryCollection,
63746380
UGeometryCollection* InPreviousBakeGeometryCollection,
6375-
const FHoudiniPackageParams& PackageParams,
6381+
const FHoudiniPackageParams& InPackageParams,
63766382
const TArray<UHoudiniOutput*>& InParentOutputs,
63776383
const TArray<FHoudiniEngineBakedActor>& InCurrentBakedActors,
63786384
const FString& InTemporaryCookFolder,
@@ -6383,6 +6389,9 @@ UGeometryCollection* FHoudiniEngineBakeUtils::DuplicateGeometryCollectionAndCrea
63836389
if (!IsValid(InGeometryCollection))
63846390
return nullptr;
63856391

6392+
FHoudiniPackageParams PackageParams = InPackageParams;
6393+
PackageParams.ObjectName = InGeometryCollection->GetName();
6394+
63866395
const bool bIsTemporaryStaticMesh = IsObjectTemporary(InGeometryCollection, EHoudiniOutputType::GeometryCollection, InParentOutputs, InTemporaryCookFolder, PackageParams.ComponentGUID);
63876396
if (!bIsTemporaryStaticMesh)
63886397
{

Source/HoudiniEngine/Private/HoudiniGeometryCollectionTranslator.cpp

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,9 @@ FHoudiniGeometryCollectionTranslator::SetupGeometryCollectionComponentFromOutput
243243
OutputObject.OutputActors.Add(GeometryCollectionComponent->GetOwner());
244244
}
245245

246+
FString BakeFolder;
247+
if (FHoudiniEngineUtils::GetBakeFolderAttribute(GCData.Identifier.GeoId, GCData.Identifier.PartId, BakeFolder))
248+
OutputObject.CachedAttributes.Add(HAPI_UNREAL_ATTRIB_BAKE_FOLDER, BakeFolder);
246249

247250
// See if we need to force the generation of convex hull data for the GC
248251
if (GeometryCollection::SizeSpecific::UsesImplicitCollisionType(GeometryCollection->SizeSpecificData, EImplicitTypeEnum::Chaos_Implicit_Convex)
@@ -391,12 +394,24 @@ FHoudiniGeometryCollectionTranslator::GetGeometryCollectionData(
391394

392395
// Add _GM suffix to the split str, to distinguish GeometryCollections from StaticMeshes
393396
// Additionally add the name to distinguish it from other GC outputs
394-
FString SplitStrName = TEXT("");
395-
if (!NewPiece.GeometryCollectionName.IsEmpty())
397+
398+
TArray<FString> OutputNames;
399+
if (!HoudiniOutput->GetHoudiniGeoPartObjects().IsEmpty())
400+
{
401+
auto& HGPO = HoudiniOutput->GetHoudiniGeoPartObjects()[0];
402+
FHoudiniEngineUtils::GetOutputNameAttribute(HGPO.GeoId, HGPO.PartId, OutputNames, 0, 1);
403+
}
404+
405+
if (!OutputNames.IsEmpty() && !OutputNames[0].IsEmpty())
406+
{
407+
GeometryCollectionData->PackParams.ObjectName = OutputNames[0];
408+
GeometryCollectionData->PackParams.SplitStr.Empty();
409+
}
410+
else
396411
{
397-
SplitStrName += "_" + NewPiece.GeometryCollectionName;
412+
GeometryCollectionData->PackParams.ObjectName.Empty();
413+
GeometryCollectionData->PackParams.SplitStr = NewPiece.GeometryCollectionName + "_GC";
398414
}
399-
GeometryCollectionData->PackParams.SplitStr = SplitStrName + "_GC";
400415

401416
GeometryCollectionData->Identifier.SplitIdentifier = GeometryCollectionData->PackParams.SplitStr;
402417

0 commit comments

Comments
 (0)