Oh that, that’s what object:PivotTo( cframe ) does, you just pass it the CFrame and it moves the whole model there. It even accounts for floating point drift so if you repeatedly move a model with it the parts won’t drift, so this sort of thing will work as intended:
local originalPivot = MyThing:GetPivot()
while wait() do
MyThing:PivotTo(originalPivot * CFrame.new(0, math.sin(tick()), 0))
end
It’s a bit unfortunate that we couldn’t just expose the property to scripts. Basically this came down to a couple things:
It would be really unclear whether the property was just setting the pivot, or setting the setting the pivot and also moving the object.
Confusion over changed events. We would be unable to fire property changed events for the origin position / orientation props.
So we exposed it as the function :PivotTo instead.
Do you have an ETA on this? I have a bunch of character accessories in Blender that use the pivot to define their offset on a body part, and it would be a pain to reconstruct this data in Studio.
It’s coming! I have the code for it written. We have a company vacation inbetween though so it’ll take a bit to ship, tentatively it will probably be enabled July 14th.
The unfortunate part is that there’s no easy way to make the AssetManager support the pivots on import, since it just stores the raw meshes (while the pivot is something that should be attached to the MeshPart), but the other two importing workflows (Properties pane and Avatar Importer) will support it. We have import workflow changes underway that will eventually mean you’ll get the pivot in every import path, but that’s the best I could do in the interim.
You can still opt out through the Beta Features panel by unchecking “Pivot Editor”, however that option will be going away soon.
Please explain in more detail what issues it’s causing for you. Also, have you tried using handle summoning? (Holding tab to summon the handles) That’s intended to solve most of the cases where the old Move handle behavior was better.
It would be awesome if we could use this with TweenService. For example, tweening the Origin Orientation property to create a swinging door. Currently, I get this error:
TweenService:Create property named ‘Origin Orientation’ on object ‘Part’ is not a data type that can be tweened
Is this planned for the future? It’s just a Vector3, so I’m not sure why this data type can’t be tweened, when you can tween other Vector3 properties like position and size.
Ah - you can tween PivotOffset, but that doesn’t actually move the part, it just moves the pivot relative to the part. If there is a way to use this for a door, I haven’t thought of it yet.
I do want to make it possible to TweenService location of stuff via the pivot, but this is a bit complicated. Origin Orientation / Position aren’t “real” properties, they only exist in the properties pane, so there would have to be some special code path to basically translate to PivotTo calls.
My main issue with it is half the time the movement tool is actually miles away from where I want it to be so for example if I was trying to move a large part/model up to another part/model it makes it more difficult because I have to zoom right out and find where the movement tool is however with the old movement tool It was always at the very edge of the part/model instead of being in the middle or attached to another part within a model (very common in vehicles the movement tool attaches itself to the vehicle seat)
Many plugins already use pcalls to check if certain operations can be performed (if an error is involved) to check if features are enabled, and I think LogService (if warnings appear), exposing the beta features ability (for reading, not writing to) to plugins would just make the process easier.
Shouldn’t there be a method such as GetPivotBoundingBox, instead of fully integrating GetBoudingBox with pivots? I find the fact that if theres limited functionality when it comes to GetBoudingBox with no primary part, it may lead to some confusion. If this isn’t a possible change, I’d believe that a friendly reminder that a PrimaryPart is important regarding pivot points and GetBoudingBox.