GSoC 2012 Idea : Cinematic Editor

This is my idea proposal for GSoC 2012. I may edit this post until we submit officially the idea.



Cinematic Editor for JME3 :

JME 3 has a cinematic system that has been made with an editor in mind. Everything is already layed out and should easily be plugable to an UI. However there could be some changes to make on this system during the editor development (save an load features will need to be extended. More on that later)



The only requirements I see for this editor is that it must be a JME SDK plugin based on JMP (netbeans).



The cinematic editor should not be a substitute to blender or any other 3D animation software, so making bone animations, inverse kinematic are out of the scope.



Editor UI features :

  • The editor should allow you to schedule cinematic events on a time line and allow you to see the result in real time in the opengl window.

    (Cinematic event are bone animations, spatial animations, soundtracks, nifty gui text … or even another cinematic).

    the UI has to be intuitive, and should allow the user to drag and drop different events on the time line, so there might be some kind of event palette.
  • The user should be able to seek into the cinematic, play, pause, stop.
  • There should be a fly cam style view to move freely around the scene at design time.
  • Post process filters should be applicable to the cinematic editor view.



    Cameras

    Camera are handled in the cinematic system by using cameraNodes, and enabling or disabling the underlying controls to switch the camera view from one to another.

    The user should be able to switch the view between the different camera nodes used by the cinematic at any time.

    Also Camera Nodes should have visual gizmos in the scene only at design time, so the user can easily select them



    Motion path

    JME3 has a motion path and motion track system, that can be used as a control out of a cinematic. However it’s fully compatible with cinematics as a Cinematic Event. It’s very useful to be able to specify the path a model will follow during an animation.

    The cinematic editor should allow the creation of a motion path, and give the ability to move each way points graphically, or by entering the coordinates.

    Also the user should be able to associate the path to a motion track added to the time line, and a spatial that should follow this path.

    The user should also be able to switch the type of interpolation for the path (linear catmullRom, bezier,etc…)



    Spatial Animation (nice to have)

    Even if I said the editor should not substitute to a 3D animation composer like blender, Spatial Animation are somehow basic enough to be able to integrate them in the editor.

    The user should be able to create a new Spatial Animation, move rotate, scale a spatial graphically at different time stamps (set on the time line) with a record feature. These key frame would be transformed to a Spatial Animation with the AnimationFactory (engine feature).



    Custom events

    The built in cinematic events are pretty basic and users may want to create their own cinematic event. While it’s pretty easy to do it via code, the editor should allow the user the create a custom event and generate the associated java source file.

    The cinematic editor should be able to use this new custom event live. (may require some Normen’s magic)



    Save load

    Right now the Cinematics are fully savable, the editor should save it to a new file format “j3c” (we may have to add a new loader to the AssetManager though).

    Cinematics works on a scene, that can be another j3o file. The user should have the option to embed the scene in the j3c file, link a j3o file that will be loaded along the cinematic, use an already loaded scene.



    Bake (very nice to have)

    The user should be able to bake the cinematic to an avi (or w/e) file using @bortreb Video Capture system

    This way the scene can be computed with full graphic feature and run at the same speed on any hardware.

    I don’t know if the video playback system works fine in JME, there might be some change to do there to play back the video in the engine.



    Here is all i can see right now, maybe more later.



    Feel free to post your ideas/comments
1 Like
  1. Ok, did you read my private mes :stuck_out_tongue:

    If you didn’t , :o you and me have a lot of similar Ideas.

    If you did, well. Here is some of my thought ( agreed all point but these…)
@nehon said:

Cinematic Editor for JME3 :
The cinematic editor should not be a substitute to blender or any other 3D animation software, so making bone animations, inverse kinematic are out of the scope.

Please don't, I still think that we all want to see more in the future: such animations of character which can interactive with other things. So why don't we implement some of those cool things (some of... not bone animation but including IK). I'm trying to say, not to overkill our SDK with guns and swords but for the future, don't say "Blender had it already!!!!"

Save load
Right now the Cinematics are fully savable, the editor should save it to a new file format "j3c" (we may have to add a new loader to the AssetManager though).
Cinematics works on a scene, that can be another j3o file. The user should have the option to embed the scene in the j3c file, link a j3o file that will be loaded along the cinematic, use an already loaded scene.


- super confuse about this one, as the basic idea of "J3o" is the all-in-one format, may be you can tell more about the need of extra file format ?
@atomix said:
Please don't, I still think that we all want to see more in the future: such animations of character which can interactive with other things. So why don't we implement some of those cool things (some of... not bone animation but including IK). I'm trying to say, not to overkill our SDK with guns and swords but for the future, don't say "Blender had it already!!!!"

- super confuse about this one, as the basic idea of "J3o" is the all-in-one format, may be you can tell more about the need of extra file format ?

a) the SDK will never replace a 3d editor, live with it. its not meant to.
b) j3o = spatial, cinematic != spatial

I read your PM yes, but after posting this thread (took me a while to write it :p)


@atomix said:
Please don't, I still think that we all want to see more in the future: such animations of character which can interactive with other things. So why don't we implement some of those cool things (some of... not bone animation but including IK). I'm trying to say, not to overkill our SDK with guns and swords but for the future, don't say "Blender had it already!!!!"

No really, blender has it already. :p
The thing is, our home brewed bone animation editor would surely look poor compared to dedicated software. Also it's a whole area of study and this project must last only one summer.
I think it would be too much and we would end up with something average compared to what we can have in blender and max.

@atomix said:
super confuse about this one, as the basic idea of "J3o" is the all-in-one format, may be you can tell more about the need of extra file format ?

Well, I always tend to separate things so that you know what to expect in the file. Also we already have j3f files in the SDK for filters.
But maybe you're right
@Normen what do you think?

@normen : Yes, we can do it all in Blender (including making game and physics ) !!!



:roll: You see, Blender try to be “the one” !



Some of us leave UDK, Unity, Trinigy … and other goodies to come here with JME



Seriously, we should have built-in IK. I’m trying to say about the animation and Logic interaction. (it’s the future)

Now, how many developers hurt while trying do learn Python just to make some logic with Blender???

@normen said:
j3o = spatial, cinematic != spatial

... filter post processor != spatial :D
@atomix said:
Some of us leave UDK, Unity, Trinigy ... and other goodies to come here with JME
Seriously, we should have built-in IK.

a) None of these have mesh editors.
b) Having a way to do IK on bones has nothing to do with animation editing.
c) All of this has nothing to do with the cinematics editor so stop it now.
@nehon said:
No really, blender has it already. :p
Also it's a whole area of study and this project must last only one summer.
I think it would be too much and we would end up with something average compared to what we can have in blender and max.


Ok, as for that Summer is quite too much but after that...
@normen said:
a) None of these have mesh editors.
b) Having a way to do IK on bones has nothing to do with animation editing.
c) All of this has nothing to do with the cinematics editor so stop it now.


You make me lol :p
a) I've never said about the Mesh Editor
b) IK and animation have a strong relationship, IK and other kinematic(s) are requireed for complex animations, we should have functions to link (not bones!!!) but spatials together, who said that IK just for Bones????
c) I've just want to say what I think
@atomix said:
You make me lol :p

You keep hijacking threads like this discussing off-topic details only you care about.
a) Its a point about a SDK not having mesh, animation or similar editing tools cause theres software that does that brilliantly.
b) Still, adding IK (no matter if for bones, spatials or whatever) would be a topic per se, then after its there one can talk about how to use it in a cinematics editor... if there was any yet xD See, this is about making an editor for the existing cinematics system. Do you see any IK in that system? No? Right.
c) Make a new thread.

Custom events

The built in cinematic events are pretty basic and users may want to create their own cinematic event. While it’s pretty easy to do it via code, the editor should allow the user the create a custom event and generate the associated java source file.

The cinematic editor should be able to use this new custom event live. (may require some Normen’s magic)



A) I really don’t hijack any thing here, and from what I see , this should be where the IK and other kinematic things take place. In other SDK like blender you call it “Rig/Link/WhatEver”

B) You make me feel ugly about my self, I just want to say something and maybe someone try to listen!

1 Like

uh…don’t fight guys.



@atomix I hear you, it’s good to be ambitious, but but we need to keep cool headed here. Sometime too much ambition is just overwhelming and you end by giving up because of the difficulty.

Also something is important : the student HAS to deliver something at the end of the summer, so the scope of the project has to be strictly defined.



For now we need a strong basis for the editor, maybe later an “IK addon” will come to life but, for now it’s just too much.



This editor “specs” are vastly inspired by BioWare’s moding editor for Dragon Age origin with which I played some years ago. Characters had pre defined bones animations and you were able to use them but not edit them.

And it was already awesome IMO.

Yes, I understand that we have to keep the scope small, I will take a good time to read the GSoC rule to have a clear idea what a Student have to do… 8)



As my editor has a lot of things is unnessesary , so cut off some will be a good stragegy !



Can I post my Cinematic Editor 's images in this thread or make another one like @normen said ?

Post it here it’s fine

Ok , i will capture and post some of the UI here :stuck_out_tongue:

For anyone seeing this, this is exactly the kind of discussion we want around all possible GSoC projects :slight_smile:

1 Like

I would like to proopse another feature. A cinematic should be started seamlessly with “realtime playing” and the editor should support that.



A cinematic maker would not know the exact positions of elements in the beginning. The cinematics editor should support kind of “the player object should move here, that other object should move there” without the information (while creating the cinematic) where the objects start. The movement / positions etc is calculated while playing the cinematic.



I think the editor would be awsome!



REgards

@snareoj2 not sure I get what you mean. What you describe looks like the keyframing part i explain for Spatial Animations.



“Spatial Animation (nice to have)

Even if I said the editor should not substitute to a 3D animation composer like blender, Spatial Animation are somehow basic enough to be able to integrate them in the editor.

The user should be able to create a new Spatial Animation, move rotate, scale a spatial graphically at different time stamps (set on the time line) with a record feature. These key frame would be transformed to a Spatial Animation with the AnimationFactory (engine feature).”

@nehon :

In my private message, I 've said that the my Plugin used Position / Rotation/ Scale Track to separate the motion of spatial.



I 've also known that: in Beta3, all of them are deprecate and should be replace by SpatialTrack. But still, I want to separate them into 3 different UITracks (Don’t have time to post image, so I copy from the Orginal component’s site).



http://jaret.de/timebars/images/jaret1_098.gif

http://jaret.de/timebars/images/jaret1_098.gif



Everything is fine, but the only bad thing is I have to modify my code quite some, because now when I move the SpatialTrack, all three children have to move along, and if I expand the one of the children’s track, The parent has to be expanded too…



and I’m still concerning about the benefit of new SpatialAnimation class? Can you tell me the reason why we don’t separate them like before?



P/s: i’m moving on for the changes once again!

I’ve used After Effect (who didn’t) and love that UI the most, so I plan do to the same thing.



Before, we got PositionTrack which have Time and Postion to form KeyFrame …



Now, all three types of translation (positioning, rotating, scaling ) have a same time keyframe value!!! <= IMO, it’s not a good things in the view of an Animator

(you know, a lot of keyframe == confusing; )



An Animator should know very good about the keyframe(s) when they are nessesary or not). A ton of keyframes which only there for Positioning but meaningless for Rotating,Scaling is a head-shot!

8O



SpatialTrack(float[] times, Vector3f[] translations, Quaternion[] rotations, Vector3f[] scales)

Creates a spatial track for the given track data.



Tell me if I misunderstood or lost somethings, but here is what I see in the contructor?