Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scaling down a child/inherited root-scene (enemy scene) does not scale the scene in the top-most scene/level (level scene) #30447

Open
TheConceptBoy opened this issue Jul 9, 2019 · 6 comments

Comments

@TheConceptBoy
Copy link

TheConceptBoy commented Jul 9, 2019

Godot version:
3.1.1 official stable

OS/device including version:
Windows 7 SP 1 64bit

Issue description:
https://www.youtube.com/watch?v=2L67F8kpJ7k

@KoBeWi
Copy link
Member

KoBeWi commented Jul 9, 2019

Things like translation, rotation and scale are part of Transform. When you modify any of them, their value is no longer inherited (and you pretty much always change them by putting object on the scene in a specific position).

Scaling the instanced scene is the indented way to work. At least that seems pretty obvious to me. If it really bothers you, you can add another child node to the model scene, put everything under it and scale that one.

@TheConceptBoy
Copy link
Author

TheConceptBoy commented Jul 9, 2019 via email

@KoBeWi
Copy link
Member

KoBeWi commented Jul 9, 2019

It would be fine if the re-impiort button was working (where you
can set the base scale of the scene prior to re-import) however that seems
to be not producing any visible result.

That seems like a bug actually, although I'm not that familiar with model importing.

@Anutrix
Copy link
Contributor

Anutrix commented Jul 9, 2019

Correct me if I am wrong, but what you want is, the instanced scene's root node scale(0.2) to be saved as its default_scale(1) in your main scene
i.e, 1 is the new 0.2(doubtful grammar but you get the point)?

@schertudi
Copy link

schertudi commented Dec 24, 2019

I'd like this too. Right now I'm playing around with scaling while testing out things - I have a few inherited scenes that I want to scale up. There's quite a few of these scenes floating around so manually editing the scaling for each one isn't ideal, and as this isn't necessary a permanent change I'm reluctant to change the structure of the nodes to accommodate this.

For now a "workaround" to this is to totally reset all the other transformations on the instanced scene (including the matrix), which will cause the custom scaling to kick into place. Then you need to re-apply any translation/rotations you added onto the node beforehand. (probably adjusting the scaling manually is faster/easier than this though.)

Imo not preserving the scaling is counter-intuitive - if you decide that the root node should be x units big you're more likely than not to want that to persist among the scenes it's instanced in.

Can the decision to inherit or not inherit a transform value be based on whether or not the individual Transform component was modified, rather than asking if the entire Transform has been modified at all?

@KoBeWi
Copy link
Member

KoBeWi commented Nov 19, 2020

Can anyone still reproduce this bug in Godot 3.2.3 or any later release?

If yes, please ensure that an up-to-date Minimal Reproduction Project (MRP) is included in this report (a MRP is a zipped Godot project with the minimal elements necessary to reliably trigger the bug). You can upload ZIP files in an issue comment with a drag and drop.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants