-
-
Notifications
You must be signed in to change notification settings - Fork 21.8k
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
Reimporting a 3D model does not get propagated to inherited scenes #38853
Comments
Godot version: OS/device including version: Issue description: Steps to reproduce: |
Have this problem also, serious show stopper for 3d work in Godot. Destroys the iterative workflow |
@phelioz The best workaround (if we can call it that) I've found to keep an iterative workflow between my 3d app and godot is loading the gltf directly and avoid all inheritance. To complement this, I do the following two things:
Of course this is still a very uncomfortable workflow, but I thought this may be useful to someone reading the issue. It definitely improved things for me. When modelling, especially at the final stages, it is crucial to be able to see how things will look in-game. |
Setzer, thanks for sharing your workaround. Just gonna drop a link to the official docs about the import hints you mentioned (-col etc). I use them with Blender and the escn exporter. |
@setzer22 Thanks for sharing :) For example if you are not doing something procedural and are placing modular meshes together to create something bigger that looks nice it just feels very weird to do all that placement in code when we have a 3d editor. Then a simpler framework without a editor could be used instead of Godot if going that route. Which is a shame because the 3d editor is pretty nice in Godot. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
After some testing and studying of underlying To demonstrate this, create a basic 3D scene (a single root Technically speaking, switching scene tabs triggers the call chain To the contrary, when going back to Godot and reimporting (step 3), |
My takes from the previous comment. Should However, I am wondering about more complex "transitive refresh" scenarios: should a scene Should this be true and Indeed I guess one way around this would be to add an extra, optional |
@oparisy Interesting find :) Did play around with it a little more now and to me it seems to only update when you create a new inherited scene from the glb mesh scene and when you have the glb mesh scene open. Switching to tabs where the mesh is instanced in the scene tree doesn't refresh it. Neither does switching to a scene that is directly inheriting the mesh scene. But just keeping the mesh scene open seems to update it even if you aren't looking at the mesh scene. |
Hi @phelioz! May I ask you on which branch/build you did those tests? I only studied a recent build of master for now. Edit: out of curiosity I compared the latest Am I correct in my understanding that you cannot reproduce the scenario described by @setzer22? Because I definitely can, and it guided my code study. At which step does the behavior he describes diverge for you? Under which OS did you perform your test? The code paths I describe rely on file system events and timestamps, so maybe there is some abstraction leak here. |
I still have the problem @setzer22 described but I don't need to switch to the imported mesh scene to have it updated, only having it open in a inactive scene tab keeps updating it for me. So what I mean is that I don't need to switch to it or reopen it to get it refreshed in the other scenes. Just keeping the tab open keeps updating the other scenes. But did notice it refreshes the other scenes also when you are creating a new inherited scene. For example it refreshes once you hit the "right click/New Inhertied Scene" button. Get the same behavior in @setzer22 minimal reproduction project too. Do you understand what I mean when it works and not for me now? :) Right now I am running 3.2.4 beta 4 on Window 10 (10.0.18363) |
I'm on 3.3.2 Stable and I'm noticing that scenes made with "New Inherited Scene" get updated when the model is overwritten, when I open the model (.dae) in this case it does show the changes, but the inherited ones do not. The workaround of switching to the original scene doesn't propagate the changes to everything, it seems that only the immediate inherited ones, I have to manually save them to propagate it to users of those scenes again. Needless to say this workflow is slow and it's easy to forget all the steps you need to do when you want to update something. edit: after trying to reproduce the problem more, it seems more and more inconsistent, sometimes things get updated like mentioned in OP, but not always, and sometimes individual instances of the model disappear and switching between scenes 'fixes' it again. |
I hit this issue in 4.0.beta7.official. I tried with .glb and .blend assets. The best workaround for me is to create a new inherited scene after the asset is reimported and then immediately close it, as that seems to trigger updating all the existing inherited scenes. |
I made a plugin that meanwhile works around this issue in Godot 3.x. InstantMeshUpdate Its far from perfect but might help some.. |
Bugsquad note: This issue has been confirmed several times already. No need to confirm it further.
Godot version:
Godot Engine v3.2.1.stable.official
OS/device including version:
Arch Linux (rolling release, last updated at the time of submitting).
Issue description:
I have a 3D model imported as a scene (The format does not seem to affect, as I've tried all of them with the same behaviour. I'm using gltf2 for the reproduction example). When the model file gets modified on disk (e.g. by exporting again from a 3d modelling tool), godot reimports the asset, but changes are not shown on the inherited scene.
The chanes are only shown if I open the original scene, and then get propagated to all the scenes where this was instanced.
Steps to reproduce:
This uses the minimal reproduction project below. The project has four important resources:
The steps to reproduce:
Minimal reproduction project:
MeshReimportIssue.zip
The text was updated successfully, but these errors were encountered: