2021.5.15.697 - Object focus & orbit mode for freeform camera, tweaks & bugfixes
Hello everyone, got a few more bits for the Freeform camera, it now supports object focusing and orbit mode, which should make editing in desktop much easier and friendlier! There are some more goodies based on some feedback too, like ability to get name of your current role in currently focused world or determine which user has allocated specific object. Please pay attention to the notes though to avoid running into gotcha's in the future!
There's a few other tweaks and bugfixes too. For example new user MTC sessions will now have their locale at the end, which can help you determine their native language before joining and LogiX has received a bunch of bugfixes too! I'll have some last additions for this phase of desktop soon, but I'm pretty much just wrapping it up on that now before refocusing on other stuff.
[h2]New Features:[/h2]
- Added focus mode to Freeform Camera mode, which allows focusing view at any object in the scene
-- To focus object, hover over it with mouse cursor and press Ctrl+F
-- When using Developer Tooltip, you can focus currently selected object by pressing F (this will also activate Freeform cam if it's not active, pressing F on the same object will toggle back previous camera)
-- To orbit view around the object, hold Alt and the Right Mouse Button
-- While orbiting object, you can use the mouse scroll wheel to zoom in closer or further
-- Press Alt+F to unfocus
-- When the focused object is actively moved by grabbing or gizmo, it will be temporarily unfocused to avoid feedback loop
- Added RoleName to FocusedWorldStatus, which indicates the name of the role you have in currently focused world (based on feedback by @Beaned and @Shifty | Quality Control Lead)
- Added AllocatingUser node (under References) which will output the User who allocated a given element (based on feedback by @Cyro)
-- It will output null if the allocating user is no longer available (e.g. has left since)
-- Currently leaving and rejoining will also make it impossible to determine which user allocated element. This might change in the future
- Added ReferenceID node (under References) which provides RefID of input element
-- Please note that RefID is an opaque, non-persistent value (meaning its structure and meaning can change at any time, including between sessions) and it's STRONGLY recommended to don't work with them directly, but rather interact with typed references and nodes to extract desired data instead like the one above. If you rely on particular structure or meaning of RefID, your creations WILL break. If functionality is missing, make a request.
- You can now press I when holding the Developer Tooltip to quickly open inspector
[h2]Tweaks:[/h2]
- The starter tutorial MTC sesssion now has user's language code at the end (based on feedback by @あむ(Rabbuttz), relayed by @Raith (CytraX))
-- This can help indicate which language does the user likely speak
-- This is just a tentative solution for now, proper general session language indicators will come down the line
- Replaced remaining instances of debugging printouts when coverting objects ToString to clean versions
-- Note that ToString for objects is meant for user friendly string that "sums up" the object and doesn't present a way to serialize or access its properties (if you need that, please make a request)
- Rotating of grabbed items in Freeform camera mode now locks the cursor in its current position, preventing the item from being moved around (based on report by @Psychpsyo)
[h2]Bugfixes:[/h2]
- UI Aligned Camera mode now automatically updates the current space of the focused UI when it changes
-- This fixes UI's that are held by a player when focused on keeping the focus on the grabbing user hand after it's released (reported by @MattyK, @Kiovo, @Aegis_Wolf | Creative Director and @Shifty | Quality Control Lead)
- Fixed custom Description for CreateSpawnUndoStep not changing the actual description (reported by @Zyzyl)
- Fixed MultiLerp node throwing an exception when the Lerp input is NaN (reported by @chemicalcrux)
- Fixed internal logging system throwing exceptions when passed a null object
- Fixed LogiX overload swapping not being able to reconnect variable length outputs on the swapped variant
-- This fixes Demultiplex and other nodes getting stuck mid-swap and being duplicated when it has already connected outputs (reported by @chemicalcrux)
[h2]Known Issues:[/h2]
- You can't focus freecam on items selected through the inspector, only directly selected with developer tooltip (doing this will require a unified selection system to be implemented)

There's a few other tweaks and bugfixes too. For example new user MTC sessions will now have their locale at the end, which can help you determine their native language before joining and LogiX has received a bunch of bugfixes too! I'll have some last additions for this phase of desktop soon, but I'm pretty much just wrapping it up on that now before refocusing on other stuff.
[h2]New Features:[/h2]
- Added focus mode to Freeform Camera mode, which allows focusing view at any object in the scene
-- To focus object, hover over it with mouse cursor and press Ctrl+F
-- When using Developer Tooltip, you can focus currently selected object by pressing F (this will also activate Freeform cam if it's not active, pressing F on the same object will toggle back previous camera)
-- To orbit view around the object, hold Alt and the Right Mouse Button
-- While orbiting object, you can use the mouse scroll wheel to zoom in closer or further
-- Press Alt+F to unfocus
-- When the focused object is actively moved by grabbing or gizmo, it will be temporarily unfocused to avoid feedback loop
- Added RoleName to FocusedWorldStatus, which indicates the name of the role you have in currently focused world (based on feedback by @Beaned and @Shifty | Quality Control Lead)
- Added AllocatingUser node (under References) which will output the User who allocated a given element (based on feedback by @Cyro)
-- It will output null if the allocating user is no longer available (e.g. has left since)
-- Currently leaving and rejoining will also make it impossible to determine which user allocated element. This might change in the future
- Added ReferenceID node (under References) which provides RefID of input element
-- Please note that RefID is an opaque, non-persistent value (meaning its structure and meaning can change at any time, including between sessions) and it's STRONGLY recommended to don't work with them directly, but rather interact with typed references and nodes to extract desired data instead like the one above. If you rely on particular structure or meaning of RefID, your creations WILL break. If functionality is missing, make a request.
- You can now press I when holding the Developer Tooltip to quickly open inspector
[h2]Tweaks:[/h2]
- The starter tutorial MTC sesssion now has user's language code at the end (based on feedback by @あむ(Rabbuttz), relayed by @Raith (CytraX))
-- This can help indicate which language does the user likely speak
-- This is just a tentative solution for now, proper general session language indicators will come down the line
- Replaced remaining instances of debugging printouts when coverting objects ToString to clean versions
-- Note that ToString for objects is meant for user friendly string that "sums up" the object and doesn't present a way to serialize or access its properties (if you need that, please make a request)
- Rotating of grabbed items in Freeform camera mode now locks the cursor in its current position, preventing the item from being moved around (based on report by @Psychpsyo)
[h2]Bugfixes:[/h2]
- UI Aligned Camera mode now automatically updates the current space of the focused UI when it changes
-- This fixes UI's that are held by a player when focused on keeping the focus on the grabbing user hand after it's released (reported by @MattyK, @Kiovo, @Aegis_Wolf | Creative Director and @Shifty | Quality Control Lead)
- Fixed custom Description for CreateSpawnUndoStep not changing the actual description (reported by @Zyzyl)
- Fixed MultiLerp node throwing an exception when the Lerp input is NaN (reported by @chemicalcrux)
- Fixed internal logging system throwing exceptions when passed a null object
- Fixed LogiX overload swapping not being able to reconnect variable length outputs on the swapped variant
-- This fixes Demultiplex and other nodes getting stuck mid-swap and being duplicated when it has already connected outputs (reported by @chemicalcrux)
[h2]Known Issues:[/h2]
- You can't focus freecam on items selected through the inspector, only directly selected with developer tooltip (doing this will require a unified selection system to be implemented)


