this post was submitted on 21 Jul 2023
14 points (100.0% liked)

Godot

5904 readers
1 users here now

Welcome to the programming.dev Godot community!

This is a place where you can discuss about anything relating to the Godot game engine. Feel free to ask questions, post tutorials, show off your godot game, etc.

Make sure to follow the Godot CoC while chatting

We have a matrix room that can be used for chatting with other members of the community here

Links

Other Communities

Rules

We have a four strike system in this community where you get warned the first time you break a rule, then given a week ban, then given a year ban, then a permanent ban. Certain actions may bypass this and go straight to permanent ban if severe enough and done with malicious intent

Wormhole

!roguelikedev@programming.dev

Credits

founded 1 year ago
MODERATORS
 

I have two positions, my cameras, and one from an object. I want to be able to move the camera smoothly from on position to the other. Since the positions are always different, animation players don't work(as far as I know).

top 11 comments
sorted by: hot top controversial new old
[–] laenurd@lemmy.lemist.de 6 points 1 year ago (1 children)

Use a Tween. If it's only translation it's very straightforward. If rotation comes into play, you will probably have to use quaternions instead of Euler angles. More info here.

[–] heimchen@discuss.tchncs.de 1 points 1 year ago (1 children)

Are these 2D/Script only, because I can't find them when pressing plus to add a new node?

[–] simple@lemm.ee 3 points 1 year ago (1 children)

In Godot 4 they're no longer a node. Check the updated docs for how to use them, they work fine in 3D and you can tween any value.

[–] heimchen@discuss.tchncs.de 1 points 1 year ago (2 children)

Thanks, was looking at old threads, do you know how I can rotate with tweens, "position" is for movement, but I can't find something as rotate, does it exist?

[–] Kylamon1@lemmy.world 2 points 1 year ago (1 children)

You can tween pretty much any property(color, scale, position, rotation, modulate, etc) check out the arguments in the tween function.

Here is the doc page for tweens: https://docs.godotengine.org/en/stable/classes/class_tween.html#class-tween

You can see you make a tween using

var tween = get_tree().create_tween()

Then you call tween_property. The arguments are: node to tween(your camera), property to tween(the rotation), desired end state(rotation at the end), time in seconds.

tween.tween_property($Sprite, "modulate", Color.RED, 1)

There are all kinds of fancy tweeners you can add on for making things run one after the other instead of in parallel, having smoother transitions. It's all in the docs and then fiddling.

Good luck!

[–] heimchen@discuss.tchncs.de 1 points 1 year ago (1 children)

rotation_degrees

I just can't find rotation in the docs

[–] Kylamon1@lemmy.world 1 points 1 year ago

That is the fiddeling around part. I've never dealt with 3D or rotations on a tween, but I know it can be done. Do not expect the docs to have EXACTLY what you want. It is a guide with some examples but at some point you have to make the jump and into something unknown and try.

That is honestly 90% of programming. I know what I want, I have some examples if something similar...how do I make it work in my situation.

Give it a try and report back with your success or issues.

[–] simple@lemm.ee 1 points 1 year ago

Yes, you can tween the "rotation" or "rotation_degrees" property. If you need to tween a specific axis you can tween "rotation_degrees:x" for example.

[–] quark42@startrek.website 4 points 1 year ago
[–] drh@lemmy.world 1 points 1 year ago (1 children)
[–] heimchen@discuss.tchncs.de 1 points 1 year ago

I want it to happen on command, so putting it into process is not an option.