|
| 1 | +### Mardini 2025 - Slithering Snake |
| 2 | + |
| 3 | +Today is day 20 of [Mardini 2025][mardini-2025]. The prompt for today is "SLITHER", |
| 4 | +in the KineFX category. |
| 5 | + |
| 6 | +I revisited the coiled snake from a week ago, [practice day 205][day-205]. Where |
| 7 | +previously I made an abstract coil to showcase just the scales, Today I attempted |
| 8 | +to make a snake slithering animation. It's really hard to know how well I succeeded |
| 9 | +until I render it out, but the model is simple enough I can play it back in |
| 10 | +near-realtime in the modeling context (no textures or fancy camera movement). |
| 11 | +There, at least, the snake appears to slither as I'd expect a snake to. |
| 12 | + |
| 13 | +Two things are missing that I was intending to add, but I don't have the time |
| 14 | +(or, honestly the motivation - I'm not enjoying this project as much as I thought |
| 15 | +I would): modeling out the actual snake's head, so it's not just a slithering |
| 16 | +tube, and adding some secondary motion to the end of the snake's tail because |
| 17 | +right now it looks too rigid and procedural. |
| 18 | + |
| 19 | +Adding motion to the scene caused a huge amount of motion blur (intentionally, |
| 20 | +because it'd look super weird if it didn't); but ironically, that motion blur |
| 21 | +causes the render to look like a blurry mess, and hides all of the detail in the |
| 22 | +scale material I was so proud of from a week ago. It also requires the "head" of |
| 23 | +the snake to be visible, whether it looks like a head or not. The snake body also |
| 24 | +no longer goes through a Vellum sim to press it flat against the ground and give |
| 25 | +the body some shape to ground it in the world. So, this practice has taken a firm |
| 26 | +step _backwards_ in almost every way. |
| 27 | + |
| 28 | +New stuff: |
| 29 | + |
| 30 | + - Mostly just figuring out an algorithm to procedurally recreate something akin |
| 31 | + to a snake's motion. I looked up slow-motion videos of snakes moving to do this, |
| 32 | + and while I have many of the elements correct, a snake's actual motion is a lot |
| 33 | + more organic than I was expecting. It isn't quite as formulaic as I had hoped; |
| 34 | + the back of the tail has a lot of fairly unpredictable secondary motion; any |
| 35 | + kind of obstacle or even uneven ground breaks my algorithm easily. |
| 36 | + |
| 37 | + If I were to continue this project, I'd probably have to do a lot more research |
| 38 | + into this motion, and switch from a purely algorithmic approach to a solver. |
| 39 | + Maybe I could combine it with a Vellum simulation treating the snake body as |
| 40 | + a string, and manually applying constraints or forces to get that behavior |
| 41 | + regardless of the ground level or obstacles in the way. But I don't have the |
| 42 | + technical knowledge of how to do that, and I'd rather wait for a more interesting |
| 43 | + project to come along before I try to dig into a solver's internals like, or my |
| 44 | + motivation will die entirely. |
| 45 | + |
| 46 | +<!-- My entry post is [here][entry-post]. --> |
| 47 | + |
| 48 | +[mardini-2025]: https://www.sidefx.com/community-main-menu/contests-jams/mardini-2025/ |
| 49 | +[day-205]: https://brandonslade.me/houdini-practice/204 |
| 50 | +<!-- [entry-post]: ... --> |
0 commit comments