Use Irrlicht for a non-interactive, machinima-like 3d app?

Discussion about Irrlicht's Java wrapper
yannischris
Posts: 10
Joined: Mon Jan 02, 2012 10:26 pm

Use Irrlicht for a non-interactive, machinima-like 3d app?

Post by yannischris »

Hi all,
I am currently a CS PhD student and my research is on knowledge engineering and particularly on modelling film direction knowledge.

For the purpose of conducting some experiments, I have been searching the web to find a high-level, open-source 3D engine/API, preferably for Java but any other suggestion would be useful, with fair documentation/tutorials and an active community, that will enable me to easily generate some basic "film scene" examples programmatically, without having to go in the deeps of 3D programming. And this has to be done through code, rather than in some 3D platform like 3DMax or Blender.

For example I may need to generate a room, then place some objects (e.g. furniture, everyday-objects) and some human characters in it, and then create basic animations for the characters (e.g walk, sit on a chair or lie on a bed, bend, make simple gestures such as wave, point, hug or grab an object, etc). I will also need to move the characters around, so I need to be able to create motion paths (straight or curved) for translating the characters and the camera in space.

I have spent a lot of time checking out a large number of 3d/game engines and the truth is I have got quite confused... I don’t have any experience in 3D programming and for that reason I need the API to be as high-level and easy-to-understand as possible. Note that I don’t care about audio, networking or high rendering quality. Also I don’t want this to be interactive at all (as opposed to games). I just need to generate a rendered clip through code, according to a number of specific directives.

I came across Jirr and it sounds really promising! But I am wondering whether Jirr would be the optimal solution for what I need to do. Is it high-level enough to easily tackle this task? Or maybe it would be overkill? And, in that case, should I be looking for a simpler, higher-level 3D/Game Engine, or maybe some other type of Virtual Reality API? Any specific suggestions?

I will very much appreciate any help/tip/hint!
Radikalizm
Posts: 1215
Joined: Tue Jan 09, 2007 7:03 pm
Location: Leuven, Belgium

Re: Use Irrlicht for a non-interactive, machinima-like 3d ap

Post by Radikalizm »

Irrlicht itself sounds perfect for your application, it is perfectly possible to create non-interactive applications
However, the Jirr wrapper has not been updated for a very long time and development for it has stopped, so unless you can live with an outdated engine Java is not an option I'm afraid
You can always opt for C# and use the community-created .NET wrapper called Irrlicht Lime which is actively being developed
If you're not familiar with C#, it's extremely similar to Java syntax-wise
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Re: Use Irrlicht for a non-interactive, machinima-like 3d ap

Post by hybrid »

I don't understand why you need to do this in code, because everything you said really hints for a modeling and render app such as blender. Creating or adding animations programatically in Irrlicht is really not that easy, especially when you need to create exactly followed animation sequences which have to match up exactly. Unless you have all the coords pre-calculated, doing everything in code is not the way you want to go. Even for Irrlicht and other engines you'd use a modeling tool first. Of course if you have algorithms which will do the motion calculations, or if all positioning is already pre-calculated somewhere else, it's just about feeding in the data and rendering the result. This is what the default Irrlicht way would look like. Choice of the programming language is then in general just a matter of taste. Though, as already way said, the java wrapper seems out of business and is hence way behind the current engine (IIRC, the Java wrapper is using Irrlicht 1.4).
CuteAlien
Admin
Posts: 9628
Joined: Mon Mar 06, 2006 2:25 pm
Location: Tübingen, Germany
Contact:

Re: Use Irrlicht for a non-interactive, machinima-like 3d ap

Post by CuteAlien »

You know that Blender also has a Python script-API? Very high-level and easy to use.
IRC: #irrlicht on irc.libera.chat
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
yannischris
Posts: 10
Joined: Mon Jan 02, 2012 10:26 pm

Re: Use Irrlicht for a non-interactive, machinima-like 3d ap

Post by yannischris »

Yes, the restriction is that the generation of the virtual scene has to be done through code. And that's exactly the concept that Hyprid described. The idea is to have algorithms that perform the motion calculations (and of course some models with animations) and then load them programmatically to some engine along with the motion/position parameters. So you think that any engine can do that? For example, is there a way in Irrlicht to define a motion path (e.g. a curved path) and then have a 3d object translated along this path?

Regading models import, what formats are supported by Irrlicht? I know of collada format which is very rich in free content on the web. Is this format supported? Or if not, is there a way to convert it to a format that is supported by Irrlicht?
Radikalizm
Posts: 1215
Joined: Tue Jan 09, 2007 7:03 pm
Location: Leuven, Belgium

Re: Use Irrlicht for a non-interactive, machinima-like 3d ap

Post by Radikalizm »

yannischris wrote:Yes, the restriction is that the generation of the virtual scene has to be done through code. And that's exactly the concept that Hyprid described. The idea is to have algorithms that perform the motion calculations (and of course some models with animations) and then load them programmatically to some engine along with the motion/position parameters. So you think that any engine can do that? For example, is there a way in Irrlicht to define a motion path (e.g. a curved path) and then have a 3d object translated along this path?

Regading models import, what formats are supported by Irrlicht? I know of collada format which is very rich in free content on the web. Is this format supported? Or if not, is there a way to convert it to a format that is supported by Irrlicht?
It is possible to create a spline animator based on a collection of point, you can then assign this animator to a scene node so the node will traverse the spline
And yes, collada is supported along with a load of other formats, you can find a list here: http://irrlicht.sourceforge.net/features.html
yannischris
Posts: 10
Joined: Mon Jan 02, 2012 10:26 pm

Re: Use Irrlicht for a non-interactive, machinima-like 3d ap

Post by yannischris »

Ok, that's great!
One last thing, regarding the rendering: Does the API allow me to define the position/orientation of a 3d model frame by frame with pre-calculated position/rotation values, instead of defining a motion path?
hendu
Posts: 2600
Joined: Sat Dec 18, 2010 12:53 pm

Re: Use Irrlicht for a non-interactive, machinima-like 3d ap

Post by hendu »

Why certainly it does.
SiriusCG
Posts: 58
Joined: Tue Feb 14, 2006 1:05 am

Re: Use Irrlicht for a non-interactive, machinima-like 3d ap

Post by SiriusCG »

Not to detract from Irrlicht, but you might take a look at Panda3D: http://www.panda3d.org/ which is scripted through Python. It's free as well, developed by Carnegie Mellon University and used by Disney.

Cheers.
yannischris
Posts: 10
Joined: Mon Jan 02, 2012 10:26 pm

Re: Use Irrlicht for a non-interactive, machinima-like 3d ap

Post by yannischris »

Ok, and one last, last thing: Does Irrlicht allow loading of animations together with the loading of a model? And, if yes, does it allow for simultaneous animations (e.g. walking and waving hand at the same time)?

@SiriusCG: I have checked out Panda3D and it seems real nice! But I am wondering whether I can integrate the python scripting with e.g. a Java application?
mongoose7
Posts: 1227
Joined: Wed Apr 06, 2011 12:13 pm

Re: Use Irrlicht for a non-interactive, machinima-like 3d ap

Post by mongoose7 »

Almost everyone here loads animations as part of the model, by creating them in the modelling application and exporting the animation and mesh as one object. If you want to separate animations from the model, you will have to write code that few here have written. So, it doesn't *allow* simultaneous animations, it only *allows* *the* animation that was loaded with the model. There are workarounds, like combining the two animations into a range of *the* animation outside of Irrlicht and asking Irrlicht to just play that part of the animation, but I'm pretty confident this is not what you mean.
SiriusCG
Posts: 58
Joined: Tue Feb 14, 2006 1:05 am

Re: Use Irrlicht for a non-interactive, machinima-like 3d ap

Post by SiriusCG »

I have checked out Panda3D and it seems real nice! But I am wondering whether I can integrate the python scripting with e.g. a Java application?
Ouch! Probably only if you used the Panda3D C/C++ API and created a Java binding ... In that case, if Java is part of the requirements, I'd look seriously at the jMonkey engine: http://jmonkeyengine.com/ It should do all the things you need ... Animations, stop framing, etc ... and of course, it's Java. No binding or porting headaches ...

Cheers.
yannischris
Posts: 10
Joined: Mon Jan 02, 2012 10:26 pm

Re: Use Irrlicht for a non-interactive, machinima-like 3d ap

Post by yannischris »

Regarding the animation, combining two animations outside Irrlicht is not what I mean.. What I mean is, let's say that I load a mesh together with a walking cycle animation and a waving hand animation (as one object). Does Irrlicht allow me to enable both animations simultaneously?

@SiriusG: Thanks for the jMonkey tip!
mongoose7
Posts: 1227
Joined: Wed Apr 06, 2011 12:13 pm

Re: Use Irrlicht for a non-interactive, machinima-like 3d ap

Post by mongoose7 »

No, as I said.
yannischris
Posts: 10
Joined: Mon Jan 02, 2012 10:26 pm

Re: Use Irrlicht for a non-interactive, machinima-like 3d ap

Post by yannischris »

Ok, now I got it right ;-)
And one last (but critical!) question that I forgot to ask before: Does the engine enable me to code in advance transformations of a 3D object for specific time intervals, or start/stop animations for specific time intervals, in order to generate a rendered clip through code?
For example, let's say I want to generate (through code) a rendered clip of 20 secs, in which a character model is static for the first 10 seconds, then translates from a point to another for five seconds (which means that the walking cycle should also be enabled for that five seconds) and then stops and turns his head to the left while waving for another 5 seconds). What I need to do do is to be able to code these actions in advance and generate the rendered video programmatically. Is that possible?
Post Reply