1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Keyhole Sweater Project

Discussion in 'Loader Requests' started by fakedelde, Jul 14, 2015.

  1. fakedelde

    fakedelde Potential Patron

    May 25, 2013
    Likes Received:
    I've created a Keyhole sweater import.

    However, the intersection between the breast and shoulder layers clips and intersects when she breathes heavily. Here is the problem area.

    I'd like to add elastic features to the fabric around the collarbone, so that it will stretch around the body without clipping. I'd also like to add breast slider support to this outfit.

    stuntcock has offered to help with these tasks, so we'll use this thread to document our work on the project.

    Here are links to the current .fla and .swf files. This is intended to be an open, collaborative project to inform future import creators of how to overcome these issues.

    FLA File: https://mega.nz/#!jw4yQZjA!I7l-rfjc8QXjkf9OnNsQeJXryMLeAEwNBSDJ_z4RZYg
    SWF File: https://mega.nz/#!GwpUwRCD!u_5eUtvtt5TbiBTGFwHjjoQoObUCgw6y8LMFE6GLomM

    None of the files in this thread will represent the final project. When it is complete, you will be able to download it via my thread (in my signature)

    Right now, it's usable but as I've said doesn't posess the "sweater-like" physics which I am striving to achieve in this thread.
  2. stuntcock

    stuntcock Staff Member Moderator

    Jun 5, 2012
    Likes Received:
    Before we get into the implementation details, I'd like to emphasize the idea that we're adding physics features to the sweater. We're going to ask the physics system to generate curves which pass through (or across) various parts of the body. These locations on the body are referred to as anchor points or attachment points.

    In order to make the process very obvious, I'm going to show these curves as actual lines in the first few WIP files. I'll also make the anchor point indicators very large and keep them visible in screenshots. We'll see a collection of bullseye markers, with black lines running between them, traced across a naked body. Once we're satisfied with the curves, we'll add fills to them -- they'll become the outline of the garment.

    Each physics-enabled section behaves as a separate "length of rope" or "strip of cloth." It is usually connected to at least one anchor point on the body, but it can also be attached to an endpoint (or midpoint) of another strip of cloth.

    We're able to adjust the length and tension of each section. Depending on how we set these variables, a particular strip of cloth might appear to be permanently taut. More commonly, though, each strip of cloth will be designed so that it can "relax" during gameplay. This slackening makes the whole garment feel more authentic to the viewer. Intervals of slackening also help to emphasize moments of tension, which may correspond to interesting gameplay events (e.g. deep penetration, sudden movement, etc). The actual circumstances of tautness or relaxation will depend on the type of item (e.g. bra, skirt, cloak, necklace) and its configuration.

    If we imagine a chain connecting a pair of handcuffs, then it would fall slack whenever the hands are close together.

    If we imagine a fixed-size bandeau, then it would appear taut with wrapped around a large pair of breasts but it would become loose as the breast size is decreased.

    It's even possible to image an extreme example (such as a fully physics-enabled Shibari costume) in which heavy breathing or boob jiggle would be sufficient to generate a noticeable change in the tautness of some rope sections.

    Why is this relevant? Because our tasks will be much easier if we work with the physics system. It's very easy to generate a smooth curve. Such curves will respond to changes in scene gravity (due to Animtools) in a way which seems "appropriate" to the eye. These curves will also respond to displacement (character movement) and inertia. In fact, they tend to respond too well; a physics-enabled neckline or bra strap would tend to bounce around like a tiny trampoline. That's okay; we can introduce a bit of "friction" (to simulate the fact that this strip of cloth is held tightly against the skin) and the results tend to be acceptable.

    It's much more difficult to get the physics system to generate 90ยบ angles. In order to achieve such results, we're forced to push a lot of "rigidity" into the physics parameters. This makes the garment much less responsive to the scene -- it doesn't react when its wearer is placed on all fours, or even when she's flipped upside-down. The excessive rigidity will also cause the garment to look "fake" or "wrong" whenever it moves.

    Therefore, I suggest that we take a cue from real-life fashion designers. Instead of trying to create a complete sweater and then cut a square-shaped hole out of it, we could split it up into two overlapping pieces:


    1) A low-cut sweater which exposes the upper portion of the breasts and the entire neck. This piece would include sleeves, but I've omitted them for the sake of visibility. I've retained the original "loose fit" around the waist. To me, this seems more appropriate for a "T-shirt" rather than a "sweater," but we can argue about that later :)


    2) A miniature shawl which stretches from collarbone to armpit. This piece would also include the "turtleneck" extension (if we decide to include one).


    Note that the keyhole is now defined by two smooth curves - which the physics system can handle very well. As the girl moves and breathes, both curves will react appropriately (and hence the keyhole will reshape itself appropriately, since it's defined by the intersection of the two curves). The fact that we're left with two overlapping strips of fabric is no problem. The physics system doesn't care about overlap, and we (as modders) can easily adapt the artwork to avoid unwanted seamlines.

    This approach allows us to tweak each "half" of the fitting in isolation. We can drop the neckline down (which exposes more breast and enlarges the keyhole) without worrying about clipping issues suddenly occuring at the shoulder or collarbone. We can lengthen the turtleneck without causing a nip-slip incident.


    If this two-piece approach seems reasonable to you, then I'll setup a simple physics demo (anchor points and curves, but no fills). Once that's complete, we can test its behaviour in-game: breast slider, breathing, animtools positions, etc...

    If the demo proves satisfactory, then I'll begin writing up the steps involved in creating it (i.e. the tutorial content). You'll have ownership of the FLA file, so you can fine-tune the placement of the anchor points. You can also use this interval to draw some of the paths and fills that we'll need for breast slider support -- I'll explain the goals and demonstrate the process, and then ask you to complete the work and test it in-game.