Jump to content

A basic, UNOFFICIAL - Blender .edm Addon


NickD

Recommended Posts

Update: A reminder about this plugin:

 

This tool may only be used for private purposes and may in no way be used for extracting models which may directly or indirectly be used for commercial gain or promotion of any commercial product i.a games, films, media, or artwork.

 

e.g. ED's models and intellectual property remain their own, this changes nothing about that.

 

---

 

After starting playing DCS in VR I wanted to measure exact panel sizes on the SU-25T in order to be able to build a replica autopilot panel, so I started poking the .edm files.

 

It somewhat spiralled out of control.

 

DCS_Suzanne_modelviewer.jpg

 

This is a HIGHLY EXPERIMENTAL, completely UNOFFICIAL attempt at building a .edm exporter for Blender. There is currently very basic import/export functionality, handling basic position/rotation keyframes and single texture diffuse mapping. Lots of things don't work; this includes, nonexhaustively; bones/skinning, in-file LOD, collision shells, scale animations and exporting anything that uses a parent/child hierarchy.

 

Modelviewer reads the exported models fine, and with the core functionality the game reads the models fine without complaint. While it doesn't have a lot of features, what it does let you do, is make simple models to test in the game without having to own an (old) version of 3DS.

 

As an example, here is an in-game screenshot of something you hopefully don't see on the runway every day:

DCS_Suzanne_runway.jpg

 

(for those not in the know, 'Suzanne' the monkey is Blender's version of the classic teapot - a reasonably complex test object that it includes with all of the other primitive creation). An ultra-simple mod that adds this as a 10m high monkey head ('Suzanne' under 'Structures' in the mission editor), as both a simple JSGME-ready mod example, and a proof-of-concept using Blender models can be found attached.

 

In its current state it's probably mostly of interest to hybrid developer/modellers who know a little bit about using blender internals or programming 3d - as with everything else about it, there are certainly no guarantees as to the fragility of model/material settings that it will handle without just failing to export, so I present it merely as a proof-of-concept rather than a complete modelling solution, for people who can't access or afford 3DS max 2014.

 

Like Blender, it's open source, and is available on Github:

 

https://github.com/ndevenish/Blender_ioEDM/releases/latest

 

And more details can be found in the projects README and spec files.

 

I'm not very experienced working on models for DCS - so I'm not sure whether there would be any interest in this at all. And other than working on the hierarchical animations (using tests/MonkeyCannon.blend as a self-generated example) I have no idea what any future wishes/priorities might be - remembering that this isn't for hard-core game-feature-pushing models.

 

But I hope it proves of interest to somebody.


Edited by NickD
  • Like 2
Link to comment
Share on other sites

This is awesome. While I'm not a blender user (yet), I hope this helps prove to ED that they really need to step up their game and support modern max versions. With aurodesks release schedule being pretty regular and their sdk being as robust as it is, there isn't much excuse for them to be as far behind as they are in my opinion.

 

Thank you for this!

 

Sent from my m8wl using Tapatalk

Link to comment
Share on other sites

2017 is probably the best to date. All aspects have been revamp in the code and runs a hell of a lot smoother than previous versions. UVs, Animations, View Ports, etc.

 

Because of the revamped code, it may be the reason there is no plug-in for it yet. The edm plug-in needs revamped too.

https://magnitude-3.com/

https://www.facebook.com/magnitude3llc

https://www.youtube.com/@magnitude_3

i9 13900K, 128GB RAM, RTX 4090, Win10Pro, 2 x 2TB SSD

i9 10980XE, 128GB RAM, RTX 3090Ti, Win10 Pro, 2 x 256GB SSD, 4 x 512GB SSD RAID 0, 6 x 4TB HDD RAID 6, 9361-8i RAID Controller

i7 4960X, 64GB RAM, GTX Titan X Black, Win10 Pro, 512GB PCIe SSD, 2 x 256GB SSD

Link to comment
Share on other sites

I think this would be awesome to add static items to the game..We need crew mechanics working in and around aircraft on the tarmacs. I for one would love to this this in the game...

It will make the airfields come to life to see aircraft being worked on or tanks or helos...for that matter.

Link to comment
Share on other sites

Can I just say what an amazing piece of work you've done here. This will enable so many more people with interests in modelling to get involved in the creation of DCS additions, including myself!

 

I hope this extension gets the updating and attention it deserves. Thank you sir for doing gods work!

Intel i5-8600k | EVGA RTX 3070 | Windows 10 | 32GB RAM @3600 MHz | 500 GB Samsung 850 SSD

Link to comment
Share on other sites

Great job! This will bring many more modellers who can't afford 3dsMax to DCS

My rig specs:

Intel Core i7 4770 @3.4Ghz // Corsair 16GB DDR3 // MoBo Asus Z87K // HDD 1TB 7200RPM // eVGA Nvidia GTX 760GT 2GB DDR5 // LG 3D 47" 1920x1080 // Thrustmaster Warthog HOTAS // Saitek Combat Pro Pedals // Thrustmaster MFD Cougar pack // PS3 Eye + FTNOIR

Link to comment
Share on other sites

WOW! I just noticed this thread.

I might even try Blender again, just to get some simple static objects into the game. For me *.edm export only working with 3DsMax is one of the biggest flaws of DCSW concerning modding. (even though I fully understand why it is that way)


Edited by Aginor
original meaning back in.
Link to comment
Share on other sites

What is it then? I wouldn't exactly call it an advantage if it excludes fellow modders from being able to create ingame models.

 

I think his point is that a bug or flaw is a difference between the intended functionality and the actual functionality of something.

 

Since ED has no (visible) intent to support .edm exports from blender themselves, it's really more of a feature request than a flaw.

Link to comment
Share on other sites

I'd rather this thread not descend into arguments/recriminations about 3DS or studios that exclusively rely on it - I'm sure 3DS is fantastic and that there is plenty of reasons to still use it exclusively, but I for one a) Aren't a student any more b) Can't afford or justify the price for 3DS and C) don't want to pirate it.

 

I'm sure there are plenty of talented modders/artists/engineers that fall into these three categories, for which this at least starts to open a potential avenue; and I feel it's been well demonstrated that a good modding community thrives not just on the most skilled modders, but with a wide 'halo' of smaller projects with which people can "scratch their own itch".

Link to comment
Share on other sites

I think his point is that a bug or flaw is a difference between the intended functionality and the actual functionality of something.

 

Since ED has no (visible) intent to support .edm exports from blender themselves, it's really more of a feature request than a flaw.

 

I intentionally didn't say bug, because it is intended by ED, just as you said. For me it is still a flaw (in the sense of "spot of bother").

 

But enough of this, back to the awesome fix for that problem!

@NickD, are you further developing this exporter to include the more complex stuff like the parent/child hierarchies?

 

Also: Since I have done some stuff in python myself I will take a look at it, maybe I have an idea or two how I could help. Not much time at the moment, but I'll still peak in. :)

Link to comment
Share on other sites

What is it then? I wouldn't exactly call it an advantage if it excludes fellow modders from being able to create ingame models.

 

It's not a Flaw, nor a Bug, Nor an Intended Feature.

 

ED Never Intended to Support EDM Exports from Blender or Maya, Sketchup or Any Suite NOT in use by the developers.

 

Even W/ A Blender Export Function, Blender itself does not support half the things needed to create anything other than a simple un-animated static mesh.


Edited by SkateZilla

Windows 10 Pro, Ryzen 2700X @ 4.6Ghz, 32GB DDR4-3200 GSkill (F4-3200C16D-16GTZR x2),

ASRock X470 Taichi Ultimate, XFX RX6800XT Merc 310 (RX-68XTALFD9)

3x ASUS VS248HP + Oculus HMD, Thrustmaster Warthog HOTAS + MFDs

Link to comment
Share on other sites

@NickD, are you further developing this exporter to include the more complex stuff like the parent/child hierarchies?

 

Also: Since I have done some stuff in python myself I will take a look at it, maybe I have an idea or two how I could help. Not much time at the moment, but I'll still peak in. :)

 

I have been actively working on it (on a branch) but have been having serious trouble getting the export correct for hierarchies - I think not properly understanding the order of transformations/role of all the transform values is seriously hampering things, as well as having a lot of trouble with the rotation/scale degeneracy with negative scales.

 

For now I've switched to things like collision meshes, because that's probably a more basic fundamental.

 

Even W/ A Blender Export Function, Blender itself does not support half the things needed to create anything other than a simple un-animated static mesh.

 

Out of a technical perspective, I'm curious what you consider "Impossible" tasks that Blender cannot support? It'd be nice to have a view of what the more complicated aspects of EDM modelling are.

 

Edit: Especially since simple keyframe position/rotation animations are already being exported?


Edited by NickD
Link to comment
Share on other sites

ED Never Intended to Support EDM Exports from Blender or Maya, Sketchup or Any Suite NOT in use by the developers.

 

And that's what I call a flaw. Because my opinion is that they should.

 

EDIT: Pretty much the same like an Iphone without a headphone jack. It is intended that way. And that is a flaw IMO.

 

Blender itself does not support half the things ...
...yet. Maybe.
Link to comment
Share on other sites

What you believe they should support and what the developers license and use for content creation are 2 different things.

 

it's not a FLAW, it's a Wishlist Item.

Windows 10 Pro, Ryzen 2700X @ 4.6Ghz, 32GB DDR4-3200 GSkill (F4-3200C16D-16GTZR x2),

ASRock X470 Taichi Ultimate, XFX RX6800XT Merc 310 (RX-68XTALFD9)

3x ASUS VS248HP + Oculus HMD, Thrustmaster Warthog HOTAS + MFDs

Link to comment
Share on other sites

Flaw is a normal word to use in this situation, what is your problem with it?

It bothers me. For me it is a flaw. I do understand the situation but I am not satisfied with it. Whether I call it flaw, disadvantage, missing feature or wishlist item doesn't matter, because it means the same thing.

 

Can we go back to discussing the matter now?

 

I have been actively working on it (on a branch) but have been having serious trouble getting the export correct for hierarchies - I think not properly understanding the order of transformations/role of all the transform values is seriously hampering things, as well as having a lot of trouble with the rotation/scale degeneracy with negative scales.

 

For now I've switched to things like collision meshes, because that's probably a more basic fundamental.

 

 

 

Out of a technical perspective, I'm curious what you consider "Impossible" tasks that Blender cannot support? It'd be nice to have a view of what the more complicated aspects of EDM modelling are.

 

Edit: Especially since simple keyframe position/rotation animations are already being exported?

 

Interesting! I am searching through your code at the moment to get a hang of it. It is a complex matter, but maybe I have an idea about one or two things....

Link to comment
Share on other sites

Interesting! I am searching through your code at the moment to get a hang of it. It is a complex matter, but maybe I have an idea about one or two things....

 

Excellent! Make sure you look at the working branch, and feel free to contact me via pm/twitter/github if you have any questions.

Link to comment
Share on other sites

So, minor update; I've added the ability to designate geometry as collision shells. The world objects are no longer restricted to static, uncollideable geometry. As an example, I've attached a screenshot of what now happens if you try to drive through the giant monkey head on the runway (It also shows properly in versions of modelviewer that are capable of rendering collision shells).

 

Other major changes:

  • Collision shells can now be exported with the model
  • Reads the new v10 .edm files in 1.5 (at least at the moment)
  • Specularity should be properly mapped so not everything is automatically super shiny

 

There's also been a lot of background work towards the hierarchical animations, but that isn't working properly yet. I'm not sure the exact lua code, but with collision shells it should be possible to have e.g. static, destroyable geometry/targets, which I imagine covers a lot of the basic modelling use cases.

 

https://github.com/ndevenish/Blender_ioEDM/releases/tag/v0.2.0

 

I'm thinking of making LOD the next priority, for similar reasons - even though It looks like that can be specified through lua code and multiple models, I'm sure it's convenient to have it embedded for simple cases.

Link to comment
Share on other sites

  • 4 weeks later...

Minor update to this - I have not been idle! A couple of bugs and incompatibilities with older versions of Blender led me to provide a couple of interim versions: https://github.com/ndevenish/Blender_ioEDM/releases/tag/v0.2.2

 

I've got most of a new release in place, including lots of bug fixes, new documentation, LOD import/export and UI (preview: https://ndevenish.github.io/Blender_ioEDM/modelling/lod.html), Damage arguments, connector writing and mostly simple hierarchies are working properly (almost solved the problem with hierarchical animations). I just have a load of testing to do to make sure that I haven't messed up the exporting!

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...