Page 1 of 3 123 LastLast
Results 1 to 10 of 26

Thread: animation ideas

  1. #1
    Member
    Join Date
    Aug 2004
    Location
    SCEJ - Tokyo, Japan
    Posts
    34

    animation ideas

    I mentioned in another thread that I would prefer baked data. In fact I believe it is essenitial since it means my artists can use any features they want, IK, constraints, expressions, other special plugins. To do that I need to let the 3D package compute the info and then just pull out raw matrices.

    So, my preference is for matrix related animation (nodes, joints) that collada include a complete baked matrix per frame. Others might prefer trans, rot, scale info but I'm just making the request that collada include the matrix as baked by the 3d package because you never know what is truly influencing those matrices.

    On top of that there are a zillion questions about exporting animation that I'm not sure are going to be easy for collada to address across systems.

    Animations that need to be covered:

    * node animation (moving an object)
    * skinned animation (weights on vertices)
    * morph targets (including the list of targets and how they are mixed)
    * vertex animations: pos, color, UV.
    * texture animations
    * user parameter animations
    * standard parameter animations (for example changing the U wrap over time)

    Of the top of my head I'm feeling like the only way to wrap my head around this issue would be to actually try to write the exporters for all the various packages and as I was doing it learn what's possible and what's not while at the same time making sure that in all cases I could achieve my goal.

    I don't envy you guys.

    My goal might be summed up by saying I want to make an exporter where from a collada file I can build a 3D cutscene turning characters into skinned characters where need be. Handling morph targets, pulling out animated camera info like FOV, animated light info like umbras, colors; animated user data that I might be using for in game effects, etc. I have this already but it's Maya only. In my current division the #1 used package is Lightwave.

    sorry if this is a kind of ramble but I thought I'd just post something to start the ball rolling on animation issues and ideas

  2. #2
    Junior Member
    Join Date
    Aug 2004
    Location
    SCEE, UK
    Posts
    9
    In addition to the above, we'll also need driven key set-ups and expressions - and these will often want to be not baked.
    Andrew Ostler
    Senior Principal Programmer
    SCEE

  3. #3
    Guest

    Animation, and general thought

    I don't believe the Collada exporter should make decisions such as you mention here. You should definitely be able to export baked matrices if you like. You should also be able to export any float value, or any other attribute on any other object that you need. The problem with having the Collada exporter making these decisions (the ones that determine what is exported and how) is that it [obviously] impacts the structure and content of the exported data, and this has serious consequences. We are not all going to have identical pipelines. Even within our own pipelines, we will want to export data in one manner on a certain object, an in another manner for another object.

    For this reason, I believe the exporter needs to be passed the data that should be exported. It should NOT collect it, unless it is collecting the data based on a callback supplied by the calling function, or some other related method, etc.

    The nature of the Collada format is such that the data is not inherently flat. Making the exporter output flattened or baked data is a dangerous precedent to set this early in its development. Much of the baking will need to be done by a post processing tool, from tri-strips and visibility sets to texture conversion. I see no reason to treat animation any differently.

    -Judah

  4. #4
    Member
    Join Date
    Aug 2004
    Location
    SCEJ - Tokyo, Japan
    Posts
    34
    I'm not sure I understand what decisions you think Collada is or might make?

    I guess my assumption is the goal should be to make it possible (in as much as is possible) to take any collada file no matter which 3D tool it was made in and use that in your pipeline. While I'm sure each pipeline will use the data in the file in different ways, as long as all the data is there your pipeline can ignore anything it doesn't need. I should not have to write some new callback and target it at 5 different collada exporters (maya, max, xsi, lightwave, etc.) I should just be able to take any collada exported file as is and pass it to my conversion tools. (assuming my artist followed my naming conventions or other types of constraints).

    Of course there will be issues like if I depend on some obscure data only available in one package then when I need that data I'll have to use that package but as long as collada exports all of it then I at least won't have to write my own exporter and for the more likely common case my artists will be able to use any 3D tool.

  5. #5
    Junior Member
    Join Date
    Sep 2004
    Posts
    2

    Interchange format

    If collada is supposed to be an interchange format, how will baking the animation help?

  6. #6
    Member
    Join Date
    Aug 2004
    Location
    SCEJ - Tokyo, Japan
    Posts
    34
    First off, I didn't suggest that collada not have non-baked animation. I only suggested that it require baked.

    The reason is that every 3D package out there has different ways of computing the final results of all its animation parameters. If all collada does is give access to those parameters my program that reads the collada file will have to know about every package. It will have to know if I'm reading a max based collada file that to compute a node's final matrix I do M = A * B * C and if it reads a Maya based collada file I do M = D * F * C. Some people might need that. For me though I just want to be able to read any collada file and use it the same regardless of where it came from. That means I need baked data.

    In fact, without baked data it's unlikely collada (or any collada reader) could get even the majority of animations correctly out of any package into a game. Unless you tell all your artists to not use any constraints or expressions then either collada would have to export all those constraints and expressions (which of course will be different per package) and your reader will have to take them into account computing those expressions and contraints OR you'll have to tell your artists not to use those features which will make it harder for them to make art which will mean your product will take more time or have worse art.

  7. #7
    Junior Member
    Join Date
    Aug 2004
    Location
    England
    Posts
    14
    Would it be feasible for the exporter to break the animation data into techiques in the same way as materials:

    1. A mandatory COMMON technique which would give baked data understandable by all packages.

    2. Additional, optional package-dependent techniques which could give unbaked data in its original form.

  8. #8
    Guest
    Do we need to consider the frame rate of the baked data under some standards?
    Also should we specify the interpolation technique between the keyframes to be used?
    Also, can the interpolation technique be different on different animation curves? Or even between keys?

  9. #9
    Senior Member
    Join Date
    Aug 2004
    Location
    California
    Posts
    771
    Quote Originally Posted by AndyM
    Would it be feasible for the exporter to break the animation data into techiques in the same way as materials:

    1. A mandatory COMMON technique which would give baked data understandable by all packages.

    2. Additional, optional package-dependent techniques which could give unbaked data in its original form.
    This is actually something we want to achieve for animation as well yes.

    For the COMMON technique we think that animation need not be fully baked (sampled) at regular intervals. I think allowing for irregular intervals with linear and spline interpolations is common enough to all animation packages. The most common splines being Bezier and Catmul-Rom I believe.

  10. #10
    Quote Originally Posted by greggman
    First off, I didn't suggest that collada not have non-baked animation. I only suggested that it require baked.
    I agree with greggman here. I think the COMMON profile should requre animation data in a format that everyone can easily understand. Namely: linearly interpolated keyframes.
    It would be up to the exporter to let you set the sampling rate.

Page 1 of 3 123 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •