Home Artists Posts Import Register

Content

It's never easy. Particularly because this eating logic added yet another level of complexity to the possibilities of what you can do with Shinobu combined with the other logic modules. My goal is to continue writing as neat as code as possible to reduce bugs and eventually trim away at some minor possibilities. Video 1 shows the current eating donuts implementation. Still not done with it.

A lot of things are at play in this video. For starters there are many interpolations going on such as Shinobu reaching for the donut, the current base animation, reusing code for calculating the closest holding form (which still is executed when you hand the donut to her!), the inverse kinematics with changing targets, and the target hold blending animation. Each interpolation logic layer has its own clamps and functions built in. One example is clamping the distance of the target hand IK along the forward plane of Shinobu. This is to prevent Shinobu's reaching hands from reaching and clipping behind her back and glitching out which could happen if her hands are reaching towards my donut and I quickly move behind her. Video 2 highlights the planar clamp (approximated with a big sphere).

A decent chunk of this donut logic module is now entirely procedural at this point. But I'll be damned if it does not look good. Randomness and variety are really good for making believable simple AI. However, the price is that complexity rises for such programs. It's a good thing my main background is in programming.

Things I have to continue working on are rotating and changing the hold form when she takes out a quarter bite of the donut. Also biting the correct side of the donut. As previously stated, I do plan to continue using the realistic holding forms even when not picking up objects from the floor. Something else I have to work on is visible in video 1. If you look closely when I grab her head as she is eating the donut, the donut does not reach her mouth (Complexity rises!). So I was thinking maybe this should count as interrupting her and making her angry. Let me know if you have a better idea. After these things I should start implementing the angry side of the donut logic where she runs to you to snatch the donut. I forgot to mention that I forgot to animate body_angry_jealous_steal so by next post entry I should have that animation ready to go.

There are some minor things I sometimes forget to mention that I worked on because they were very minor or technical. An example is making another small animation called body_stand_happy_beg_end which is a new asset I made to have a smoother blend out from the begging loop. Video 3 related. Another thing is realizing that the quaternions that Blender spits out are NOT in the same gymbal lock space of my calculated Unity quaternions which caused slight jittering and spinning when lerping between animation and target look-at.

Files

Comments

No comments found for this post.