Jump to content

WickedWhims Animations XML Tuning file generator


Recommended Posts

WickedWhims Animations XML Tuning file generator

View File

Hello everyone,
I decided to try making my own animations and, while they are completely far from what I would like to see in my game, I wrote a small application to simplify the process of filling out the WW XML Tuning file.

So this content may be of interest only to those who are already making animations or planning to.

Description

The current version can generate the most simple XML.


Example:

<?xml version="1.0" encoding="utf-8"?>
<I c="WickedWhimsAnimationPackage" i="snippet" m="wickedwhims.sex.animations.animations_tuning" n="wyler:WickedWhimsAnimations" s="12759614614911656136">
  <T n="wickedwhims_animations">1</T>
  <L n="animations_list">
    <U>
      <T n="animation_raw_display_name">Nice BJ</T>
      <T n="animation_author">Wyler</T>
      <T n="animation_locations">FLOOR</T>
      <T n="animation_category">ORALJOB</T>
      <T n="animation_tags">BLOWJOB</T>
      <T n="animation_loops">10</T>
      <T n="animation_allowed_for_random">1</T>
      <L n="animation_actors_list">
        <U>
          <T n="actor_id">0</T>
          <T n="animation_clip_name">wyler:PosePack_202202181912508911_set_1</T>
          <T n="animation_type">TEASING</T>
          <T n="animation_genders">FEMALE</T>
          <T n="animation_pref_gender">FEMALE</T>
          <T n="animation_naked_type">NONE</T>
          <T n="animation_force_nude_hands">0</T>
          <T n="animation_force_nude_feet">0</T>
          <T n="animation_allow_strapon">0</T>
          <L n="actor_interactions">
            <U>
              <T n="receiving_actor_id">1</T>
              <T n="receiving_actor_category">ORALJOB</T>
              <T n="receiving_actor_cum_layers">NONE</T>
              <T n="receiving_actor_cum_inside">0</T>
            </U>
          </L>
        </U>
        <U>
          <T n="actor_id">1</T>
          <T n="animation_clip_name">wyler:PosePack_202202181912508911_set_2</T>
          <T n="animation_type">TEASING</T>
          <T n="animation_genders">MALE</T>
          <T n="animation_pref_gender">MALE</T>
          <T n="animation_naked_type">NONE</T>
          <T n="animation_force_nude_hands">0</T>
          <T n="animation_force_nude_feet">0</T>
          <T n="animation_allow_strapon">0</T>
          <L n="actor_interactions">
            <U>
              <T n="receiving_actor_id">0</T>
              <T n="receiving_actor_category">NONE</T>
              <T n="receiving_actor_cum_layers">NONE</T>
              <T n="receiving_actor_cum_inside">0</T>
            </U>
          </L>
        </U>
      </L>
    </U>
  </L>
</I>

 

Features:

  • Automatic generation of Decimal/Hex values based on your package name
  • Possibility to add many animations
    • Toggle select locations/tags
  • Possibility to add many actors
    • With many interactions
  • Correct destination file name
  • (new) Edit existing XML file

 

 

This is WIP, so don't expect 100% stable work.

I look forward to your comments. I have some plans for the development of this utility, but they largely depend on demand.

 

Future plans:

  • Edit existing XML support (DONE)
  • Extend with other optional XML parts
    • animation_props_list
    • animation_events_list
    • etc.
  • Implement .package generation (too many applications are required at the moment to generate one file ?

  • Submitter
  • Submitted
    02/20/2022
  • Category
  • Requires
    .NET 6 Runtime

 

Link to comment
  • 2 weeks later...

Awesome work, I was able to set one of my own animations in just two minutes, the software is very well made and super easy to use. Your work is gold, and extremely important for any animator, hope to see props and events soon. Good luck with your work.

Edited by Alexander505
Link to comment

Thanks everyone for the feedback. I plan to add props and events as soon as I understand them myself :) Now the priority is a little refactoring as well as the ability to edit existing XML.

 

On 3/6/2022 at 7:10 PM, ColonolNutty said:

You should make a version that works with Devious Desires too.


I do not use DD myself and do not know how the configuration file is arranged in it. Perhaps I will consider DD support when all the desired features for WW are implemented.

Link to comment

Yep, editing existing XML file is more important, but for now I could use the file that your software made and then adding other animations manually, my main problem was how to start from zero an XML file, but your software made the hard work for me ahah. Do you think adding props is technically possible? It seems very hard to make..just asking, I'm totally ignorant with all this stuff

 

Thanks again

Edited by Alexander505
Link to comment
1 hour ago, Alexander505 said:

Yep, editing existing XML file is more important, but for now I could use the file that your software made and then adding other animations manually, my main problem was how to start from zero an XML file, but your software made the hard work for me ahah. Do you think adding props is technically possible? It seems very hard to make..just asking, I'm totally ignorant with all this stuff

 

Thanks again

 

Props and events are just lists, just like a list of actors. It's pretty easy to add them. I didn't add them right away because I didn't have time to figure out how to properly use them in my animations. (today I have only three of them and I plan to complete the series with an animation where props are needed)
 

Almost done editing. I need to look at the code one more time with a fresh mind. I need to take into account generating and reading "optional" fields like animation_tags

Link to comment
4 minutes ago, wyler said:

 

Props and events are just lists, just like a list of actors. It's pretty easy to add them. I didn't add them right away because I didn't have time to figure out how to properly use them in my animations. (today I have only three of them and I plan to complete the series with an animation where props are needed)
 

Almost done editing. I need to look at the code one more time with a fresh mind. I need to take into account generating and reading "optional" fields like animation_tags

 

Ok, thanks for the info..I did make some animation with props myself but they're CAS objects..You'll publish your animation on LL or you'll keep them private?

Edited by Alexander505
Link to comment
49 minutes ago, Alexander505 said:

 

Ok, thanks for the info..I did make some animation with props myself but they're CAS objects..You'll publish your animation on LL or you'll keep them private?

I'm still experimenting with Blender, so mostly my animations are WIP. Hope to release them some day ?

Link to comment
4 hours ago, LaBambaClub said:

This is very interesting! My main problem with creating animations was the complicated process of adding animations into the game and editing existing animations. I will be following the progress of this as it might make me try animating again :)


Thanks for the feedback :) 
I really hope to see more new works from you, if this utility makes your work easier.

I spent a lot of time on my first animation (from an empty blender file to a game test) and creating the XML config file seemed to be both the bottleneck (easy to make a mistake) and also the easiest to automate.

Link to comment

1.2.0 is here :)

 

 

Features:

  • Animation Events
    • Custom UI for each event type
    • Smart validation (for instance, the target may only start with 'a' or 'b' and must contain an only number as id)
    • VFX event name autocomplete (just start typing)
    • Event restrictions
  • General Improvements
    • Additional validations
    • Newly created actor sex type now depends on animation sex category (for example, if animation sex category is Vaginal, all new actors will have sex type Vaginal by default)
    • All new actor interactions inherit their sex type from the actor by default
    • By default, new actor interaction has one cum layer: None
    • Scroll Bar is updated to cover the whole window
    • Possibility to resize the window
Link to comment
On 3/21/2022 at 3:06 PM, Alexander505 said:

I always thought there would be much more animators by now if they had a few years ago a software like this, the main problem for many people is the XML file rather than making animations.


Everyone is strong in their own way. For me, the most difficult part of the process is the animation. This area is not familiar to me and I spend a lot of time on details.
Creating a package, filling in XML seems much easier to me, but it's easy to make a mistake there.
 

Example of my work few days ago.

I've read quite a few threads on the forum about animation, got a lot of insight, but of course still have a lot of questions.

Link to comment
1 hour ago, Alexander505 said:

That animation is quite good actually, maybe you're to demanding on yourself XD..

Thanks for the update btw, one question: the cum effect allow to add the cum mesh by Cherrypie?

 

I guess the cum effect is just an entry point for rendering WW cum layers. CherryPie's requires prop and own animation clip.

Correct me if I'm wrong.

 

UPD:

CUM (applies cum layer on Sim)

 

Variable 'cum_layer_type’ is the cum type that will be applied on the 'event_target’ at the set 'event_start_timecode’ timecode.

 

Source

Edited by wyler
Link to comment
9 hours ago, wyler said:

 

I guess the cum effect is just an entry point for rendering WW cum layers. CherryPie's requires prop and own animation clip.

Correct me if I'm wrong.

 

UPD:

CUM (applies cum layer on Sim)

 

Variable 'cum_layer_type’ is the cum type that will be applied on the 'event_target’ at the set 'event_start_timecode’ timecode.

 

Source

 

You're right, the cum mesh is a rig, so is like a prop.

 

I'm trying to add an event, both timecode must be set in decimal numbers, so, if I want that an event starts to 30th frame, so 30*0,03333334 = 1,0, so, starting timecode should be 0.016? and if I want that an event doesn't end, I just set 999 in the ending timecode. Right?

Edited by Alexander505
Link to comment
3 hours ago, Alexander505 said:

 

You're right, the cum mesh is a rig, so is like a prop.

 

I'm trying to add an event, both timecode must be set in decimal numbers, so, if I want that an event starts to 30th frame, so 30*0,03333334 = 1,0, so, starting timecode should be 0.016? and if I want that an event doesn't end, I just set 999 in the ending timecode. Right?


Source -> Paragraph 4

If you want an event to start from 30th frame, you need to set start time to 1.0000002 (30*0,03333334).
Regarding 999, you're right.

Link to comment
12 minutes ago, wyler said:


Source -> Paragraph 4

If you want an event to start from 30th frame, you need to set start time to 1.0000002 (30*0,03333334).
Regarding 999, you're right.

 

I'm trying to test very quickly a short animation involving a man peeing, is just a test, I want to start the animation at 30th frame and ending to 453th frame (the animation have 500 frame max), that's the data on XML file. The vfx don't show up during the animation, what I did get wrong? ?

 

Quote

<U>
      <T n="animation_raw_display_name">test</T>
      <T n="animation_author">test</T>
      <T n="animation_locations">FLOOR</T>
      <T n="animation_category">TEASING</T>
      <T n="animation_tags">PEEING</T>
      <T n="animation_loops">1</T>
      <T n="animation_allowed_for_random">0</T>
      <L n="animation_actors_list">
        <U>
          <T n="actor_id">0</T>
          <T n="animation_clip_name">555:PosePack_202203230129380475_set_1</T>
          <T n="animation_type">TEASING</T>
          <T n="animation_genders">MALE</T>
          <T n="animation_pref_gender">MALE</T>
          <T n="animation_outfit_category">CURRENT_OUTFIT</T>
          <T n="animation_naked_type">NONE</T>
          <T n="animation_force_nude_hands">0</T>
          <T n="animation_force_nude_feet">0</T>
          <T n="animation_allow_strapon">0</T>
          <L n="actor_interactions" />
        </U>
      </L>
      <L n="animation_events_list">
        <U>
          <T n="event_type">EFFECT</T>
          <T n="event_start_timecode">1.0000002</T>
          <T n="event_target">a0</T>
          <T n="event_end_timecode">15.10000302</T>
          <T n="effect_name">obj_fountaintool_brackish_lg_tube_enter_splash</T>
          <T n="effect_joint_name">b_Penis_Tip</T>
        </U>
      </L>
    </U>
  </L>
</I>

 

Link to comment
5 hours ago, Alexander505 said:

 

I'm trying to test very quickly a short animation involving a man peeing, is just a test, I want to start the animation at 30th frame and ending to 453th frame (the animation have 500 frame max), that's the data on XML file. The vfx don't show up during the animation, what I did get wrong? ?

 

 


I guess you misspelled joint name. It should have two underscore's after 'b' -> b__Penis_Tip

Link to comment

Thank you, now it worked...what a stupid mistake ?

 

 

Quote

 

All bones male

 

b__ROOT__
b__ROOT_bind__
b__Spine0__
b__Spine1__
b__Spine2__
b__Neck__
b__Head__
b__CAS_Glasses__
b__L_Cheek__
b__L_Squint__
b__CAS_L_EyeArea__
b__L_InBrow__
b__L_MidBrow__
b__L_OutBrow__
b__CAS_L_EyeScale__
b__L_LoLid__
b__L_UpLid__
b__L_Eye__
b__R_Cheek__
b__R_Squint__
b__CAS_R_EyeArea__
b__R_InBrow__
b__R_MidBrow__
b__R_OutBrow__
b__CAS_R_EyeScale__
b__R_LoLid__
b__R_UpLid__
b__R_Eye__
b__CAS_NoseArea__
b__CAS_NoseTip__
b__CAS_NoseBridge__
b__CAS_L_Nostril__
b__CAS_R_Nostril__
b__CAS_UpperMouthArea__
b__L_Mouth__
b__L_UpLip__
b__R_Mouth__
b__R_UpLip__
b__UpLip__
b__mouth_slot
b__Jaw__
b__CAS_LowerMouthArea__
b__LoLip__
b__L_LoLip__
b__R_LoLip__
b__CAS_JawComp__
b__CAS_Chin__
b__L_Earring_slot
b__R_Earring_slot
b__Neck_slot
b__backNeck_slot
b__L_chestTarget_slot
b__L_shoulderbladeTarget_slot
b__R_chestTarget_slot
b__R_shoulderbladeTarget_slot
b__R_Clavicle__
b__R_ShoulderTarget_slot
b__R_UpperArm__
b__R_Forearm__
b__R_ForearmTwist__
b__R_Bracelet_slot
b__R_Hand__
b__R_Stigmata
b__R_Thumb0__
b__R_Thumb1__
b__R_Thumb2__
b__R_Pinky0__
b__R_Pinky1__
b__R_Pinky2__
b__R_Ring0__
b__R_Ring1__
b__R_Ring2__
b__R_Ring_slot
b__R_Mid0__
b__R_Mid1__
b__R_Mid2__
b__R_Index0__
b__R_Index1__
b__R_Index2__
b__R_ForearmTarget_slot
b__R_Elbow__
b__R_ShoulderTwist__
b__R_outShortSleeve_slot
b__L_Clavicle__
b__L_UpperArm__
b__L_Forearm__
b__L_ForearmTwist__
b__L_Bracelet_slot
b__L_Hand__
b__L_Stigmata
b__L_Thumb0__
b__L_Thumb1__
b__L_Thumb2__
b__L_Index0__
b__L_Index1__
b__L_Index2__
b__L_Mid0__
b__L_Mid1__
b__L_Mid2__
b__L_Ring0__
b__L_Ring1__
b__L_Ring2__
b__L_Ring_slot
b__L_Pinky0__
b__L_Pinky1__
b__L_Pinky2__
b__L_ForearmTarget_slot
b__L_Elbow__
b__L_ShoulderTwist__
b__L_outShortSleeve_slot
b__L_ShoulderTarget_slot
b__R_ArmExportPole__
b__L_ArmExportPole__
b__R_HandDangle_slot
b__L_HandDangle_slot
b__CAS_L_Breast__
b__L_breastTarget_slot
b__L_frontTorsoTarget_slot
b__L_sideBackTorsoTarget_slot
b__CAS_R_Breast__
b__R_breastTarget_slot
b__R_frontTorsoTarget_slot
b__R_sideBackTorsoTarget_slot
b__R_BackTarget_slot
b__L_BackTarget_slot
b__Carry__
b__R_carry_slot
b__L_carry_slot
b__L_backBellyTarget_slot
b__L_BellyTarget_slot
b__L_frontBellyTarget_slot
b__R_backBellyTarget_slot
b__R_BellyTarget_slot
b__R_frontBellyTarget_slot
b__L_lowBackTarget_slot
b__R_lowBackTarget_slot
b__Pelvis__
b__L_Thigh__
b__L_Calf__
b__L_Foot__
b__L_Toe__
b__L_frontCalfTarget_slot
b__L_inCalfTarget_slot
b__L_KneeTarget_slot
b__L_Skirt__
b__L_ThighTwist__
b__L_LegExportPole__
b__L_outThighTarget_slot
b__L_ThighFrontTarget_slot
b__R_Thigh__
b__R_Calf__
b__R_Foot__
b__R_Toe__
b__R_frontCalfTarget_slot
b__R_inCalfTarget_slot
b__R_KneeTarget_slot
b__R_Skirt__
b__R_ThighTwist__
b__R_LegExportPole__
b__R_outThighTarget_slot
b__R_ThighFrontTarget_slot
b__L_ThighTarget_slot
b__R_ThighTarget_slot
b__R_Prop__
b__L_Prop__
b__Penis_Base
b__Penis_Base01
b__Penis_Mid
b__Penis_Mid01
b_Penis_Tip
b__Penis_Tip01
b__Penis_Tip02
b__Penis_Tip03
b__Penis_Testicles
b__Penis_R_Testicle
b__Penis_L_Testicle

 

All bones female

 

b__R_breastTarget_slot
b__CAS_R_Breast__
b__L_breastTarget_slot
b__CAS_L_Breast__

 

 

Edited by Alexander505
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use