* Will now rely on the Geometry Collection ISM Pool components to generate the HLOD, allowing PerInstanceData to be taken into account in the HLOD
* As a side effect, this allow the computation of a valid "HLOD hash" for HLODs from GC on building actors - previously only correct for JunoBuildingProp
#jira UE-220875
#rb Jeremy.Moore, Richard.Malo
[CL 35825057 by sebastien lussier in ue5-main branch]
* packed and re-ordered members in GeometryCollectionComponent, saving 64 bytes
* packed and re-ordered members in GeometryCollectionISMPoolRenderer, saving 16 bytes
* packed and re-ordered members in IPhysicsProxyBase, saving 8 bytes
* packed and re-ordered members in ClusterUnionReplicatedProxyComponent, saving 16 bytes
#rb cedric.caillaud
[CL 33894015 by titouan deslandes in ue5-main branch]
Refreshing custom renderer during OnUpdateTransform() happens before the fulll component hierachy has the transform applied. This means that the refreshed intance transform is based against the previous actor root transform and an offset can occur.
Move the refresh to the end of MoveComponentImpl() fixes it.
Submitting to unblock users, but will also investigate if using local transform space instead or world space is better.
[CL 33189751 by jeremy moore in ue5-main branch]
- this is in preparation of copy on write attribute support in managed array collection
#rb Brice.Criswell, kriss.gossart, vincent.robert
[CL 33172831 by cedric caillaud in ue5-main branch]
Issue was that duplicating an actor in Editor would duplicate the ISMs in the object hierachy. Because the ISM Pool was marked as transient the ISMs would be left leaking when the duplicated actor's custom renderer reregistered and created new ISMs.
[CL 33139028 by jeremy moore in ue5-main branch]
It does that through each geom collection creating its own ISPool. This way we get the runtime visuals and hit proxies still work.
Removed root proxy static component creation in geometry collection, and added a custom renderer that does this.
#rb cedric.caillaud
#jira UE-209654
[CL 32663574 by jeremy moore in ue5-main branch]
Issue is that geometry collection scene proxies were always created at the rest transform state, and then the current transforms were set at the first update. This would could cause a reset flicker.
Also the first update wouldn't happen if the component was at rest, so visually it would go back to the rest state and stay there.
The fix is to get the current DynamicData during scene proxy construction.
#rb cedric.caillaud
#jira UE-210150
[CL 32331095 by jeremy moore in ue5-main branch]
Gameplay systems may want to bind to the decayed event on a geometry collection, but if it's already fully decayed the event will never fire. In order to handle this we can expose the flag so gameplay can check first before binding to the event
#rb Shaun.Kime
[CL 32009262 by benn gallagher in ue5-main branch]
- This component allow binding a geometry collection with a skeletal mesh for animation fo the root proxy meshes
#rb Chris.Caulfield, benn.gallagher, jeremy.moore
[CL 31864602 by cedric caillaud in ue5-main branch]
SetActorHiddenInGame() now ends up calling this.
Override on GeometryCollectionComponent to update any custom renderer.
#rb aidan.mcdu, cedric.caillaud
[CL 31782941 by jeremy moore in ue5-main branch]
- change back to normal rendering when asset is selected in fracture editor
#rb Jeremy.Moore, benoit.deschenes
[CL 31744435 by cedric caillaud in ue5-main branch]
Integrating code that allows for geometry collections to actually be hidden when you ask them to.
Modifying minor BP flow funcitonality so that we don't hide the Geometry Collection for no reason, and we clean up the tempororay static mesh component that we created in order to generate the SM previews.
#rb Cory.Kolek
[CL 31671610 by aidan mcdu in ue5-main branch]
This deals with an edge case with geometry collection custom renderers. Custom renderers don't run in edition mode, and in editor we would expect to have mesh data available instead. But for UEFN editor with cooked data, the mesh data may already be removed (because it is not needed in cooked game).
#rb Shaun.Kime
[FYI] cedric.caillaud
[CL 31643010 by jeremy moore in ue5-main branch]
Can save up to 400 bytes per component ( maybe lower based on which memory pool the component ends up be allocated in )
#rb vincent.robert, chris.caulfield, benn.gallagher
[CL 31536693 by cedric caillaud in ue5-main branch]