Blender 2.8-Exporter with addional features(e.g. urho3d-materialnodes and components)

Hi there,
I’m working on and off on the blender exporter, also it is uptodate to work on latest blender 2.8.

The new features are:

  • userdata/tag-creation
  • lod-creation more comfortable using its own panel
  • exporting collection and using them as instance (also linking is possible if doing it the right way)
  • parenting to empties
  • starting a runtime from within blender
  • using a special runtime, which will create a json-file representing all exported components (e.g. all logiccomponents) and all materials/techniques/textures to be used in component- and material-trees.
  • using multiple logicnodes per object

Videos:

Repos:
Blender-Urho3D-Addon: https://github.com/dertom95/Urho3D-Blender.git
Blender-JSON-Nodes: https://github.com/dertom95/addon_jsonnodetree
Urho3D-Blender-Runtime: https://github.com/dertom95/urho3d-blender-runtime

13 Likes

Using Blender as a level editor combined with an appropriate exporter could be a good alternative to creating a level editor from ground up.

Absolute best thing would be to mantain an instance of Blender open for level editing, and an instance or Urho running in parallel to see changes, both exchanging data, sort of networking-like but in place, by simply reading project data…

If Blender plugin could have Urho3D instance inside - it can send corresponding updates like in client-server example, also that networking component could be removed if we already have Urho’s viewport inside blender - but both of that features require major integration work to be done.

Interesting work! You may want add a link to your repo in the top post.

Yes, I’m a blender guy and always liked its handling and always wanted it to be my scene-editor. At the very beginning I added a shortcut for opening the Urho3d-Editor from within the runtime, which worked but crashed, once you select a component :wink: (Didn’t know it wasn’t my fault and I kicked it out again).
Still I think both approaches(using an editor or a ‘fat’-exporter) have its advantages…

Yes, this is actually the plan. Having the runtime open to send the blender-instance component/materials/node-changes and the current render and blender sending its viewport position.

Something like this: https://github.com/Kupoman/BlenderRealtimeEngineAddon
Never really could make it run…

Yeah,…I actually thought so as well at the beginning. Blender 2.8 seems to have a better api for implementing custom render-engines, but I guess this would be overkill, and since I want my own components to be part of the engine, I would have to compile all of it everytime I change my components. (Well ok, you could think of shared-libs and hot-reloading, but I’m not skilled enough for fancy stuff like that :wink: )

Indeed :+1:

1 Like

Additionally a name change for this project may provide more clarity concerning it’s features. It would also set it apart from the exporter [sec]. It seems more like an integration instead of just an exporter?

1 Like

Agree. It’s complicated and overkill. Moreover, it’s not the way you would use Urho in a real setup, so no need.
And in the end you’ll end up with something like armory for Blender…

Ok, party people. I created some new videos (see first post). Still a bit confused ones but you will get used to it :wink:

Hmm,…I actually always had in mind to do a pull request once the bugs are found and resolved…making it a project of my own, would feel like a ripoff, not?

Yeah, we will see where it ends. But if it turns out to be like amory but with urho3d as background, would be nice as well. :wink:

1 Like

The license allows for it, and there’s nothing stopping you from thanking the main repo man. I don’t mean to chase you away from @reattiva’s project, at first glance it just seemed to me like you were going your own way somewhat with all the extra features. But maybe it’s all welcome, I have only briefly looked into your efforts.

1 Like

Very interesting projects. I’m still watching the videos, however, documents and pictures explaining the ideas behind the projects would be better for us to know.

Hi @dertom

I’ve watched all the videos on YouTube. I can see that you have spend a lot of time recording the videos. However, it is better if you could introduce your idea as words and images so people can get some of it better before digging into the videos.

The projects are impressive. We used to have similar plugins for 3ds max but call the “runtime” as “previewer”. e.g. We used to extend 3ds max’s particle system and use it as the particle editor for the game which has a similar logic for particles. In order to see the effect of the editing, we developed the previewer and export the config every time and spawn the particle in it.

I think it would be better if your Blender addon can live update/hot reload the changes so that the iteration can be much faster though there are challenges to design and implement to achieve this.

Additionally, I wonder if there is some way to map Urho’s shader and material to Blender’s so that we can see the image in Blender even before the previewer’s. (There is no default Blinn-Phong in Blender and Urho’s PBR is not complete.) Other aspects of the scene would be also the same if they have according representations in the Blender.

Generally, there are two ways of editing scenes. One of use the DCC tools (Maya/3ds max/Blender), the other is use scene editor (Unity/Unreal Engine/CryEngine…). I’m also very interested in this topic and have been thinking about the workflow of combining Blender and Urho3D a lot. There is also very good GDC session - https://www.youtube.com/watch?v=KRJkBxKv1VM&t=168s

Again, nice topic and work.:wink:

1 Like

Well,…I understand that. But writing this down would have taken too much time, As a matter of fact lots of things will be changes sooner or later and I guess I’m not writing down anything until it the final workflow gets obvious…

It acutally does every time to export the scene, it gets hot reloaded

I actually gave it a try this weekend to create the corresponding urho-render of the blender’s viewport and map it via blender’s custom renderengine as a background. Actually it mostly works, BUT I don’t get the blender right-handed viewport matrix properly converted to urho3d’s lefthand one. I’m not so much in this kind of low level matrix calculation :wink: It works at certain angles with my “naive” approach :wink: This will be work in progress but I want this to happen. Atm it looks like this when the view-maps more or less:

Not sure when I find time to work on it again…

2 Likes

That’s really cool that you got Urho Render into Blender! And simply awesome work in general - albeit not production ready - I wonder how long until the Blender Game Engine gets replaced by Urho3D entirely. :slight_smile:
I don’t know if any of you have experience with the BGE, but in my opinion it could use a replacement.

1 Like

Well I guess as of blender 2.8 BGE is offically out of business. There is a fork of it. UPBGE. I was never really interested into BGE due to its gpl-licenses but was part of the gamekit-project some years ago, which had a tight blender integration. It was actually a cool project but died…I always thought to put it on top of urho3d as it was designed as a middleware…but urho3d is so good in itself, it would be a waste to put some abstraction on top of it…

Ah, I was unaware they dropped it… but license aside, I think the logic node system was bad enough to help beginning game developers over their fear of coding but then the scripting API was equally uninviting. Whenever I saw anything made with BGE that looked like an actual game I was amazed at the patience of their creators and not so much the creations themselves. With BGE gone you might be able to inspire members of the Blender community to assist in your add-on’s development.
My earlier notion has been confirmed after watching some more of your videos that what you are working on is more than (what I would call) an exporter. Rather this looks like the Urho3D-Runtime Add-on to me.

Ok,…I took some work (motivated by @jmiller ) to revive multi-material meshes…first tests seem(!) to work:

Just for info, all that is exported is vanilla urho3d-scenes (only if using collection-instances or bone-parenting you need two helper components) and materials
Have fun and nice weekend, Tom

3 Likes

@reattiva Have you seen this?