-
-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FYI: I'm starting work on Skeletal+Frame mode, rejiggering things some #149
Comments
It took me 3 days of work to do the rewrite. I need to test it more but the old facilities are working. The new API is shown below. I changed "getAnimCount" to "getAnimationCount" because the other ones that use "getAnim" refer to Animation data members.
All of the "getAnimX" methods have their "mode" parameters ripped out, which generally makes code a lot simpler to deal with. (They were mostly busy work and duplication to keep track of that and draw from different memory pools, so I made no bones about keeping them.) For For operations like rotating the selection I chose to ignore the selection when there are joints selected in editing mode since I can foresee that rotating the joints and the vertex data attached to them simultaneously would be double rotating the vertices, so it's probably not what users would expect to happen. So all and all the operation seems a success. Oh! also I changed the |
Here is what I decided on for the layouts of these sections. I haven't run this code. I wonder about alignment. Another source of alignment trouble is the
|
Published: https://github.com/mick-p1982/mm3d/releases/tag/win32-demo2c (It also lets vertices be moved in skeletal only animation mode.) |
Update: I haven't yet gone over the changes here to integrate into my fork (https://github.com/mick-p1982/mm3d) but I got to a stopping point on the project I was working on all year (https://swordofmoonlight.itch.io/k) so I have less time pressure right now to do some things.
Like today or tomorrow I'm breaking further ground on changing how animations are organized. The changes are pretty simple, but the biggest difference is instead using different indices for each mode I'm going to store the animations in the same array and use the same data structure (which is identical in my fork) so that the indices passed to the APIs can refer to any animation type by virtue of mapping onto an animation of a given type.
But I'm going to keep the modes partitioned so Skeletal is first, Frame is second, and the new mode will technically be Frame but with Joint keyframes allowed.
In my game project I have frame animation models that don't actually move center point wise (like a treadmill) so I'm faced with the option of "physically" moving their vertices, but this seems like a bad idea and throws out a lot of the benefits of the animation system (by having to provide express data-points for every single vertex just to walk) so what I really want is to parent the vertex animation to a basal joint/bone object. Anyway this is an example of why you'd want to combine these techniques.
Since I've already changed the frame-based point animations to work like the skeletal system instead most of the code is identical between these types and I've changed them to use the same APIs except I switch on the
PositionTypeE
type. In the new design that won't be necessary since the single index model will be able to fully identify an animation.The new mode will be
ANIMMODE_SKELETAL|ANIMMODE_FRAME
(3) and I will switching to treating these like bitmasks. I've also planned for a UI facility that can edit/draw the animation with one or the other mode disabled for when you want to work with just one or the other. It only applies to the new animation type.The text was updated successfully, but these errors were encountered: