Improved CFrame support in Studio

orientation is not exposed as a property but as a function. you can use fromOrientation and toOrientation (although it requires slightly more code)

1 Like

thanks for the detailed report. let me look into it.

6 Likes

This is definitely an improvement, I’m glad I no longer have to assign these by manually typing stuff into the command line.

Any chance we could get the option to change X Y and Z (right, up and look) vectors instead of orientation though like in a studio setting or something? I find myself working with directional vectors and CFrame.fromMatrix more often than orientation. It’s not a huge deal though, I am all for this change.

1 Like

I’ve been having this issue too. There are a group parts in my place at the same Y Position. Selecting them all, changing the Y Position only, and pressing enter should apply only that one change to the selection. Instead, after doing that, the CFrame of the first part selected is applied to every part in the selection.

2 Likes

Finally! No more CFrameValues or making parts for teleporting objects!

My only suggestion is to add support for this in scripts:

local ExampleCFrame = CFrame.new()
ExampleCFrame.Position = Vector3.new(1,2,3)

Basically how you would do RaycastParams, but you can actually add stuff to the .new() if you choose so.


Also, related to Attributes, when will it be possible to tween attributes? That has been my only complaint with attributes. But Apple Silicon support first please

1 Like

That would require making CFrames (and thus Vector3s) mutable which isn’t possible.

3 Likes

I think the reason they haven’t added that is because it would be impossible to tell if an attribute exists or an attribute value does just by using :GetAttribute(). There would have to be more instance methods.

1 Like

To change position of cframes you can simply do:

newCFrame = oldCFrame - oldCFrame.Position + Vector3.new(x, y, z)

Then just replace the Vector3.new(x, y, z) with the position you want

3 Likes

position
Can you fix it?

1 Like

Was about to report it also, now let’s hope it will be fixed in the upcoming updates. It even happens when not even changing the values.

4 Likes

Oh my god… it includes… the camera…
OH MY GOD IT INCLUDES THE CAMERA!
Thank you!!! I needed this so much!

You can literally edit the exact camera position via the properties window, save that information to your script and bam, perfect camera angle. No more guessing!

4 Likes

This is a great update. But I would also like to continue to search ‘Position’ and ‘Orientation’, since I’ve been doing that for- I don’t know- 4 years.

3 Likes

UPDATE 11/04/2022:

All bugs reported as of November 4th have been fixed and will be available soon in one of the next updates. Namely:

  • searching for “Position” or “Orientation” also shows the respective CFrame property
  • selecting multiple instances and editing just some of the values updates only those values and keeps everything else as-is
  • selecting multiple instances correctly shows fields where values differ as “empty”

Thank you for your feedback!
@sthaple @M_nzter @GreatGuyBoom @alex_png @kyly1982 @DevJanick @avodey

13 Likes

This comment is comedy gold :+1:

1 Like

This was much needed for the 85 years that I have in ROBLOX

why does this only support the first 6 paramaters? Seems like such an obvious thing to add

ok so “simplicity” is the answer, if we cant have the values shown in their own subcategory can we at least set them in the attribute? i want to port over cframe values that i have to this new system but im unable to as it cuts them down to 6 paramaters.

Can you explain what you mean? The 6 values (3 translation, 3 orientation) are enough to uniquely specify a CFrame. Maybe you’re talking about the 12 numbers stored in the underlying CFrame (3 translation, 9 matrix), but you can still copy values over.

If you have a specific use case and your data is only available with the 12 values, you can use a small script, CFrame.new() supports a constructor taking 12 values.

The problem is that it lacks compatibility with other Roblox API that return CFrames with the full 12 values, lets say you hypothetically had a process that collected the object space and set that value to an attribute, with the current system that CFrame would break, when it really doesnt need to.

https://gyazo.com/261cbdbf4866957abfc585a434548814 as illustrated by this gif you cant.

Oh, abstraction. My brain is too small for any level of understanding of vector math so… I’ll just take it.

I REALLY LIKE THIS CHANGE! I always wondered why you cant visualize cframes with position and rotation so this is great!

1 Like