Use JPCT for a non-interactive, machinima-like 3d application?

Started by yannischris, December 26, 2011, 02:30:55 PM

Previous topic - Next topic

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 JPCT and it sounds really promising! But I am wondering whether JPCT 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!

EgonOlsen

I'm not sure...while jPCT can of course handle this, it depends on how much you want/have to invest in the coding side of things. I suggest to give it a try and see if it might be what you are looking for. Maybe this is interesting for you too: http://www.jpct.net/forum2/index.php/topic,2346.0.html

yannischris

I don't mind spending some time coding My main concern is whether the learning process will be manageable for someone who knows Java but does not have any experience in 3d/game programming. Do I have to spend a lot of time initially just studying, or the learning process is more hands-on (through tutorials, examples, etc)? Are the tutorials/examples sufficient for providing basic understanding/knowledge/utilization of JPCT? For example comparing to Java3D JME, do you find JPCT easier or harder to pick it up? And in which way? Also do you consider higher or lower level, comparing to the aforementioned engines?

EgonOlsen

The goal of jPCT was (and still is) to create a 3d engine that is easy to use. But as i'm the author of it, i can't tell you if i've succeeded. Judging from the feedback, i would say yes...but i'm not going to judge the other engines...

AGP

jPCT was by very far the easiest and most intuitive 3D engine I'd ever seen back in '05. I think something like Unity might be a lot easier for something like non-programmatically setting up a scene. It might be overkill, though, and it seems that it has to be done programmatically to begin with. So, I would definitely go with jPCT.

yannischris

Thanks for the useful advice, I will definitely give it a try!
Two last questions:
- Which formats for model import does JPCT support? The collada format (which is very rich in free content on the web)? Is there a way of converting collada format in the formats supported by JPCT?
- Is there a way to define a path (e.g. a curved path) and then translate an object along this path?

Thanks again, I will give it a try and send you feedback!

AGP

Raft's Bones for jPCT (see the jPCT's download page) imports Collada and Ogre. The jPCT ones can be seen here: http://www.jpct.net/doc/com/threed/jpct/Loader.html

I've defined a path of SimpleVectors and had a car move along it (rotating apropriately) before, but jPCT, being a graphics (not a game) engine, doesn't have this pre-built. Egon's very good at helping you get it yourself, though.


EgonOlsen


yannischris

But, being a renderer, I suppose that it will allow me to define the position/orientation of a model, for each frame, with pre-calculated co-ordinates, instead of defining a motion path?


AGP

QuoteI couldn't have said this any better...

I think you did once say it to me. :- )

yannischris

OK, and one last thing: Does JPCT allow the loading of animations together with the loading of a model? And, if yes, does it allow for simultaneous animations to be executed (e.g. translating in space, walking cycle and waving hand at the same time)?

EgonOlsen

Out of the box, jPCT can load MD2 models, which are pretty simple, keyframed animations which include everything. If this isn't flexible enough, you have to use skeletal animations. This can done using Bones: http://www.jpct.net/forum2/index.php/board,10.0.html

Translations/rotations are usually not part of an objects animation and can be done independently from any animation. Mixing animations is only possible if you split the model and apply different animations to the different parts.

AGP

Unless you're talking something like a smiling animation and a walking animation (a vertex and a skeletal one). Those can be combined by a process called animation blending (raft's Bones does it).