neverhood311 / Stop-motion-OBJ

A Blender add-on for importing a sequence of OBJ meshes as frames
GNU General Public License v3.0
676 stars 52 forks source link

Keyframing an OBJ sequence #110

Open matteckholm opened 3 years ago

matteckholm commented 3 years ago

I came across Stop Motion OBJ through a few BA threads looking for solutions for replacement animation, literally trying to emulate a stop motion technique in Blender.

I wonder if it would be possible to add a choice when importing an animated sequence into a scene to only show one frame at a time and allowing the user to keyframe which frame appears and for how long. This would make this effect easy to accomplish without mask modifiers.

neverhood311 commented 3 years ago

I had this idea sometime last year. I actually tried it out, too. But I couldn't quite figure out how to make it play nicely with the existing playback modes and no one had asked for it (yet), so I abandoned it.

Maybe it's time to dust it off and try again.

neverhood311 commented 3 years ago

@VacantLuxuries I'm about to give this feature another go. Would you be willing to be my guinea pig once I get something working?

matteckholm commented 3 years ago

@neverhood311 I'd be happy to!

neverhood311 commented 3 years ago

I've created an alpha release (2.2.0.alpha.2) with my first attempt at this feature. Any feedback would be great, even if you hate it :) . There's a screenshot and some basic instructions in that link. Let me know how it goes.

matteckholm commented 3 years ago

@neverhood311 It's been a busy week so I apologize it's taken me a bit to circle back to this. I did a keyframe test with some primitives and it seems to have worked out fine. One thing I did notice is that the active mesh only updates when you actually set a keyframe, though that's certainly something that can be worked around.

Now that I've gotten my feet wet, I'm going to model some phonetics this weekend and do something that demonstrates the value of this function a little better. But so far I'm loving it!

neverhood311 commented 3 years ago

Good catch! I had forgotten about that quirk. At first I didn't think there was anything that could be done since Blender doesn't give a lot of control over detecting changes to the scene. But they do have a catch-all method that just happens to detect when you're messing with the keyframes. I haven't done thorough testing, but it seems to work on my end. Go download 2.2.0.alpha.3 and see if that's better.

matteckholm commented 3 years ago

@neverhood311 Well the good news is the keyframe updating seems to be working better. The bad news is I kept encountering crashes when I attempted to update the keyframe while in render mode. Works fine in solid or preview, but rendered it does not like.

neverhood311 commented 3 years ago

Dang, that's a bummer.

A few questions since I'm not able to get my Blender to crash:

When you say "render mode", I'm assuming you mean that the Viewport Shading" is set to "Rendered", not that you're actively doing the final render of your sequence. Is that correct?

Which version of Blender are you using?

Which render engine are you using? Cycles? Eevee? Workbench?

Is there any sort of error message you're seeing? Or is it just closing Blender without warning?

matteckholm commented 3 years ago

Certainly:

Despite this, I'm getting some pretty fun results out of the plugin so far!

neverhood311 commented 3 years ago

Ok, I'll do some digging. I have been using Blender 2.83.9 LTS, but I definitely need the addon to work with the latest version also.

Despite this, I'm getting some pretty fun results out of the plugin so far!

Dude, that's awesome! It's actually got my mental gears turnings... How did you make the individual mouth shapes? Did you know beforehand which shapes you'd need, create them, then import them with Stop Motion OBJ? What if you could create the shapes on the fly and build up a mesh sequence rather than importing a pre-existing sequence? Could you see that as a useful workflow?

matteckholm commented 3 years ago

Thanks! I grabbed a mouth phoneme chart that had the common shapes and brought it into Blender. Used curves to create the Aardman-style lips, some primitives to make the teeth, tongue, and back of the mouth, and arranged them in place to create my mesh sequence.

That worked for the most part, but since I was doing the animations on twos and the lyrics of the song were more rapid than 12fps could account for, there were sections where I did wish I could make a new mouth on the fly. And there were one or two on the chart that I didn't use as at all.

Doing it on the fly would be a lot closer to claymation than the current workflow and I'd love to have that option. Even if I didn't make the entire sequence from scratch on the fly, it would allow for greater range of expression if I could create the common phonemes and adjust them to be happier, sadder, more intense/louder, etc as needed.

neverhood311 commented 3 years ago

Ok, I've put that feature on my backlog. Can't promise when I'll get around to it, but I'll keep you in the loop once I have something working.

neverhood311 commented 3 years ago

I've just pushed a minor update to the keyframe feature (2.2.0.alpha.4). It seems to be more stable in Rendered viewport mode, but I'm not holding my breath. This specific crash is not uncommon for Blender, even in other addons, and they don't seem keen on fixing it any time soon.

schroef commented 3 years ago

Did you guys see this Keymesh addon. I think this is what the OP is asking for. I believe principle of this addon is same as this addon but more towards sculptors and animators

https://vimeo.com/channels/1522686

https://twitter.com/_pepeland_/status/1356281834041180162?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1356300058161983489%7Ctwgr%5E%7Ctwcon%5Es3_&ref_url=https%3A%2F%2Fwww.blendernation.com%2F2021%2F02%2F02%2Fkeymesh-digital-stop-motion-add-on-released%2F

neverhood311 commented 3 years ago

@schroef Yeah, I saw their announcement way back when it first came out. I was just kind of tired of waiting for them to release something, so I started working on this feature myself.

matteckholm commented 3 years ago

I'm keeping an eye on Keymesh but I'm not a sculptor so having the ability to achieve the same effect with mesh modelling is something I value.

For example, one thing I can do with this is rig a figure's face traditionally, create all the phenomes and expressions I need for a project, and place them into one mesh sequence that I can control. The Keymesh workflow would require me to make every expression on the spot.

Is that great news for people who love claymation? Absolutely! For me, trying to get more of a Laika style out of my animations, that's not particularly helpful.

neverhood311 commented 3 years ago

@matteckholm That's a very valuable insight for me.

schroef commented 3 years ago

Ps if you want to emulate stopmotion, why not add a stepframe count. Like render settings has. The step frame is the amount of frames which will be "stepped over". This feature is handy when you do quick renders of an animation and preview blockouts. its basically this "sceneFrame * n = currentFrame" > N = stepframe amount.

Current blender docs dont seem to have info about it. But this link does more info

after reading the request again, i guess this would need to have complete manual input. Thats is quite something different than what i linked above. The above simply skips frames and jumps to frames in the animation automatically according to scene frame and the given N-value. The OP prefers to have the option to manually select each frame, this makes it much more complicated.

neverhood311 commented 2 years ago

@matteckholm Hey Matt, I'm getting ready to release the next version. I was wondering if I could add one of your facial "clay" animations to the Gallery in the README as well as in the Wiki. I wanted to show something that features the new Keyframing feature.

matteckholm commented 2 years ago

@neverhood311 Absolutely! I'll email you some links to the full resolution versions