Using Excel VBA to generate animation files - IHateMyKite/UnforgivingDevices GitHub Wiki

Made by iiw2012. Copied from https://github.com/iiw2012/UDAnimationsSE/wiki

General File Info

FNIS File

File should not contain spaces in its name

JSON file

File should be encoded in UTF-8 wihtout BOM

How to create file from spreadsheet

The file is divided into two sheets for paired and solo animations. The row on each sheet is an animation event mapped to different devices or situations. To generate a JSON or FNIS file for the selected animations, you need to:

  • add rows and describe animation events as shown in the examples below.
  • select multiple rows with defined animations.
  • if JSON should be loaded with a condition, then the first row in selection should define it.
    • condition on loaded mod in game. JSON load condition1
    • condition on loaded SLAL Pack in game. JSON load condition2
  • click the "Generate JSON" or "Generate FNIS" button.
  • save file to the desired location.

How to define existing animations from SLAL Pack

An example how to define existing animations from SLAL Pack to use in UD struggling.

image

  1. Button to create JSON file from selected rows.
  2. Button to create FNIS file from selected rows.
  3. Animation event name (like in original FINS***.txt from SLAL Pack) for the first actor (the one who's struggling).
  4. Animation event name (like in original FINS***.txt from SLAL Pack) for the second actor (the one who's helping).
  5. An indication that the animation is part of a sequence (for SLAL Pask this is always the case). So when the file is generated, an array of animation events will be created and written (using the _S# replacement).
  6. Rate of aggressiveness (from the second actor towards the first). Could be negative. Currently not in use.
  7. Rate of lewdiness. Currently not in use.
  8. DDs for which this animation is used are marked in this table. Any number greater than 1 will do.
  9. Allowed actor constraints that are compatible with this animation. The number 1 indicates an optional constraint, 2 indicates a mandatory constraint.
  10. Allowed helper constraints that are compatible with this animation. The number 1 indicates an optional constraint, 2 indicates a mandatory constraint.

Let's look at the 3rd line in the example. It defines the animation that will be used to struggle out from devices with zad_DeviousBra or zad_DeviousYoke keywords. At the same time, the actor must wear Devious Yoke. Other than that, the actor shouldn't wear anything other than Hobble Skirt, Mittens or Ankles Chains.

How to define solo animations

An example how to define solo animations (from SLAL Pack) to use in UD and DD situation such as struggling, edging or orgasms.

image

  1. Animation event name for the actor.
  2. Rate of lewdiness. Currently not in use.
  3. DDs for which this animation is used are marked in this table. Any number greater than 1 will do.
  4. In addition, this table has columns for defining orgasm, horny and edging animations. These animations will be used in various situations generated by the DD Framework.
  5. Allowed actor constraints that are compatible with this animation. The number 1 indicates an optional constraint, 2 indicates a mandatory constraint.

Let's look at the 1st line in the example. It defines the animation that will be used to struggle out from the Pet Suit. Almost the entire line in table 3 is highlighted so that when trying to escape from any simple device, the animation for heavy bondage is played in priority.

How to define animation with variants

An example how to define pair animations with variants. Animation variants are sets of animations in one position, featuring different sets of heavy bondage. All variants for different actors must be pairwise compatible with each other in any combination.

image

  1. Event names of animation variants for the first actor.
  2. Event names of animation variants for the second actor. It is best to keep them separate from the first ones.
  3. A merged cell means that these rows define animation variants.
  4. Actor's constraints that are compatible with those variants. The number 1 indicates an optional constraint, 2 indicates a mandatory constraint.
  5. Helper's constraints that are compatible with those variants. The number 1 indicates an optional constraint, 2 indicates a mandatory constraint.