Rigged doll with "3D" foreshortening

In this new version of my rigged gym girl, I am converting everything to Synfig, taking advantage of Synfig features that aren’t possible in Inkscape:

  • partial line visibility with Width Point position
  • Using the MapRange Converter to modify the partial line visibility
  • nesting transforms for a “Faux 3D” in the leg

mujer articulada 03.sifz (30.4 KB)

Its still a work in progress. I need to redo it because I don’t work with the Skeleton foreshortening feature, and that’s important to get the knee, shank, foot, in the correct place. … and do all the limbs.

Thank you Rodolfo for making and correcting the MapRange function!!!

The previous version:

https://forums.synfig.org/t/gym-girl-rig-with-22-bones/17084/8

For some reason, the video is only visible in Firefox
Edit BobSynfig: Working fine on Brave and Chrome on Linux

Update: I corrected the thigh side and bottom visibility and continuity at high flexion angles.

Still need to work on negative abduction angles

Update Jul 21: negative abduction and thigh outline visibility corrected as much as possible.

2 Likes

I wanted to continue working on my project, but I got this error:

Is it just a matter of fixing something in the xml file?

At least the older version still works. Attached

mujer articulada 05.sifz (34.3 KB)

mujer articulada 04.sifz (33.3 KB)

At least my plan was to re-do some of this leg, because it needs to work with bones

update: ufff. I detected that the "animated…id=“right thigh flexion” block was moved a few lines under where it should be. Here’s the version 5 that works:

mujer articulada 05b.sif (729.0 KB)

This happened after I deleted one waypoint for “thigh flexion”, and unexpectedly all waypoints got deleted.

1 Like

For future reference: this is how the end foreshortening is implemented.

fs=bone_local_length_scale

If the limb end is a ball, or a shape that should stay the same length as the limb foreshortens, I calculate the “anti-foreshortening”=afs=1/fs and apply it as the x or y scale that is parallel to the bone.

If the end is a flat surface, I calculate the “co-foreshortening”=cfs=sqrt(1-fs^2)/fs=sqrt(1/fs^2-1)=sqrt(afs^2-1) and apply it to the x or y scale of that group that will become the end cross section. This way, the end starts looking like a line when the limb is 100% length, but it appears 100% towards the viewer, when the limb is 0% length.

This “co-foreshortening” is also applicable to circles that wrap around the cylindrical (or conical) surface anywhere in the middle.

If the bone local length is greater than 1, then the flat end will continue to look like a line.

foreshortening 1.sifz (8.1 KB)

2 Likes