Component:RenderTransformOverride: Difference between revisions

From Resonite Wiki
removed warning
Updated page
Line 1: Line 1:
The RenderTransformOverride component is used to scale, transform or rotate a [[Slot]] following a specific rendering context. A [[SkinnedMeshRenderer (Component) |SkinnedMeshRenderer]] can also be overridden but will need to be added onto the SkinnedMeshRenderers list for it to be recalculated correctly.
{{Infobox Component
|Image=RenderTransformOverrideComponent.png
|Name=Render Material Override
}}
The RenderTransformOverride component is used to scale, transform or rotate a [[Slot]] following a specific rendering context. This component is automatically used on all Resonite avatars and is required for Screen mode to work properly.


It can be used, for instance, to scale a player's head to zero locally to effectively hide it from the user's view while it still being visible in mirrors, cameras and by other players.
It can be used, for instance, to scale a player's head to zero locally to effectively hide it from the user's view while it still being visible in mirrors, cameras and by other players.
Line 6: Line 10:
{{Table ComponentFields
{{Table ComponentFields
|Context|RenderingContext|The Context when rendering from to apply this override.|PositionOverride|'''[[Type:Nullable`1|Nullable`1]]<[[Type:Float3|Float3]]>'''|TypeAdv1=true|If not null, will override the position of the slot this component is on.|RotationOverride|'''[[Type:Nullable`1|Nullable`1]]<[[Type:FloatQ|FloatQ]]>'''|TypeAdv2=true|If not null, will override the rotation of the slot this component is on.|ScaleOverride|'''[[Type:Nullable`1|Nullable`1]]<[[Type:Float3|Float3]]>'''|TypeAdv3=true|If not null, will override the scale of the slot this component is on.|SkinnedMeshRenderers|{{RootFieldType|SyncRefList`1|[[Component:SkinnedMeshRenderer|SkinnedMeshRenderer]]}}|TypeAdv4=true|List of SkinnedMeshRenderers that need to be recalculated and overridden.}}
|Context|RenderingContext|The Context when rendering from to apply this override.|PositionOverride|'''[[Type:Nullable`1|Nullable`1]]<[[Type:Float3|Float3]]>'''|TypeAdv1=true|If not null, will override the position of the slot this component is on.|RotationOverride|'''[[Type:Nullable`1|Nullable`1]]<[[Type:FloatQ|FloatQ]]>'''|TypeAdv2=true|If not null, will override the rotation of the slot this component is on.|ScaleOverride|'''[[Type:Nullable`1|Nullable`1]]<[[Type:Float3|Float3]]>'''|TypeAdv3=true|If not null, will override the scale of the slot this component is on.|SkinnedMeshRenderers|{{RootFieldType|SyncRefList`1|[[Component:SkinnedMeshRenderer|SkinnedMeshRenderer]]}}|TypeAdv4=true|List of SkinnedMeshRenderers that need to be recalculated and overridden.}}
== Examples ==
[[File:ModifiedRTO.png|400px|thumb|left|A modified default]]
Resonite places a RenderTransformOverride on every avatar's head position and drives the active state, rotation and position with a [[Component:AvatarUserViewHeadOverride]]. You can expand this to also hide the head from your viewpoint by breaking the drive from the active state, and enabling the Scale option.
== Bugs ==
This component has a very small chance to increase the frequency of crashes.<ref>https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/269</ref> This component will not function correctly if there are any Null fields in the SkinnedMeshRenderers list.<ref>https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/2474</ref> This component currently has an imprecise understanding of the UserView context and will active while an item is grabbed or when saving a thumbnail to the inventory.<ref>https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/3732</ref> This component will cause a blurring issue in cameras and mirrors that use motion blur.<ref>https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/1654</ref>
== Notes ==
<references />


[[Category:Components:Rendering{{#translation:}}|Render Transform Override]]
[[Category:Components:Rendering{{#translation:}}|Render Transform Override]]
[[Category:Components{{#translation:}}|Render Transform Override]]
[[Category:Components{{#translation:}}|Render Transform Override]]

Revision as of 15:35, 10 March 2025

Component image 
Render Material Override component as seen in the Scene Inspector

The RenderTransformOverride component is used to scale, transform or rotate a Slot following a specific rendering context. This component is automatically used on all Resonite avatars and is required for Screen mode to work properly.

It can be used, for instance, to scale a player's head to zero locally to effectively hide it from the user's view while it still being visible in mirrors, cameras and by other players.

Fields

Fields
Name Type Description
persistent Bool Determines whether or not this item will be saved to the server.
UpdateOrder Int Controls the order in which this component is updated.
Enabled Bool Controls whether or not this component is enabled. Some components stop their functionality when this field is disabled, but some don't.
Context RenderingContext The Context when rendering from to apply this override.
PositionOverride Nullable`1<Float3> If not null, will override the position of the slot this component is on.
RotationOverride Nullable`1<FloatQ> If not null, will override the rotation of the slot this component is on.
ScaleOverride Nullable`1<Float3> If not null, will override the scale of the slot this component is on.
SkinnedMeshRenderers list of SkinnedMeshRenderer List of SkinnedMeshRenderers that need to be recalculated and overridden.

Examples

A modified default

Resonite places a RenderTransformOverride on every avatar's head position and drives the active state, rotation and position with a Component:AvatarUserViewHeadOverride. You can expand this to also hide the head from your viewpoint by breaking the drive from the active state, and enabling the Scale option.

Bugs

This component has a very small chance to increase the frequency of crashes.[1] This component will not function correctly if there are any Null fields in the SkinnedMeshRenderers list.[2] This component currently has an imprecise understanding of the UserView context and will active while an item is grabbed or when saving a thumbnail to the inventory.[3] This component will cause a blurring issue in cameras and mirrors that use motion blur.[4]

Notes