Ambiera Forum

Discussions, Help and Support.

Ambiera Forum > CopperCube > Feature requests and bug reports
Better improvement for rotation, alignment and other stuff

toonyman2020
Registered User
Quote
2023-06-03 00:41:33

ideas for alignments and quick toolbar buttons for rotating objects. Here's a breakdown of my suggestions for improvement and easier work flow:

Alignment Toolbar:
1. Add an alignment toolbar to facilitate object alignment and sticking them to other objects.
2. Provide options to align objects to floors or walls, ensuring proper sticking.

Quick Rotation Tool Buttons:
1. Create quick rotation tool buttons in the toolbar menu for easy access.
2. Include options for common or various rotations, as well as the ability to reset the object's orientation to specific coordinates, such as (0,0,0).
3. Allow users to rotate objects by specific degrees (e.g., 180, 90, 45, 30, 20, etc.).
4. Implement a functionality where holding down the button presents a selection of predefined degrees for users to set objects to.
5. For top-down games (or any game genre), provide rotation options for all eight directions, similar to the movement in Zelda games on SNES.
6. Implement a feature where users can click an object in the scene, and then click a button near the object for quick rotation and orientation adjustments.

Improved Value Input for Objects:
1. Change the way values are added to objects by allowing mouse scrolling instead of typing each value.
2. Add up and down arrows for each value box, providing both typing and scrolling options for input.
3. Include a quick save button for users to save their favorite values. This can be helpful for frequently used settings, such as setting gravity to a specific value.
4. Allow users to scroll to increase or decrease values and provide buttons with up and down arrows within the value boxes to adjust the values incrementally.
5. Implement the ability to customize the increment value for more precise adjustments.

Improved Asset Organization:
1. Enhance folder organization for all types of assets, including prefabs.
2. Enable users to categorize assets and create custom folders to avoid clutter and improve accessibility.
3. Implement a search bar functionality to quickly locate specific assets within the folders.

By incorporating these suggested improvements, users will benefit from enhanced alignment and rotation tools, improved value input options, and better asset organization, resulting in a more efficient and user-friendly experience when working with the application or game.


just_in_case
Moderator
Quote
2023-06-12 08:35:43

Thanks a lot for the suggestions :)


j9907
Guest
Quote
2023-06-12 08:49:30

To expand on the rotation suggestion, being able to set the rotation or position of an object via JavaScript and giving it a time parameter (so it takes X amount of ms to finish) would be nice. The built-in behaviors already have this available. Having it available via script would help.


just_in_case
Moderator
Quote
2023-06-12 09:06:56

with scripting you can already achieve that, you can do almost all sort of time based animations for the transformations of the object with the help of javascript.

try looking at the source of this behavior for animated scale, you can use the same code, for rotation and for position as well.https://www.ambiera.com/coppercu...

Hope that helps.


okeoke
Registered User
Quote
2023-06-12 15:50:58

Hi j9907,

You can achieve that using linear interpolation. Here is a function to use with Euler degrees:
function lerpEuler(start, end, t) { 
start = ((start + 180) % 360) - 180;
end = ((end + 180) % 360) - 180;
if (delta >= 180) {
delta -= 360;
} else if (delta < -180) {
delta += 360;
}
var result = start + delta * t;
result = ((result + 180) % 360) - 180;
return result;
}


Start is your current rotation
End is your target rotation
t is a value between 0 and 1, which indicates how close the result to start or end value. 0 means it's the same as start, 1 means it's the same as end.

If you need to rotate something you can add something like:
rot.y = lerpEuler(rot.y, targetRot.y, 0.1)

to your onAnimate function. What way on each frame your current rotation will get close to target.


okeoke
Registered User
Quote
2023-06-12 15:54:31

You can basically do the same for all 3 dimensions of position, but use regular lerp.

function lerp( start, end, t) {
return start + t * ( end - start);
}


Create reply:


Posted by: (you are not logged in)


Enter the missing letter in: "Internationa?" (you are not logged in)


Text:

 

  

Possible Codes


Feature Code
Link [url] www.example.com [/url]
Bold [b]bold text[/b]
Image [img]http://www.example.com/image.jpg[/img]
Quote [quote]quoted text[/quote]
Code [code]source code[/code]

Emoticons


   






Copyright© Ambiera e.U. all rights reserved.
Privacy Policy | Terms and Conditions | Imprint | Contact