Jump to content
Marburg

Toy Scaling

Recommended Posts

I've been designing some furniture toys and during testing i noticed something weird.
The scale of the toy is automatically adjusted to the size of the model even though the Free Toy Length and Girth parameters in the Customizer are the same for both models.

In these pictures, the male model is 6 feet / 180 centimeters tall, the female is 5 foot / 150 cm.
I temporarily added three columns to the toy with exactly 4 / 5 / 6 feet height for easy reference

First picture shows the toy assigned to the 6 foot male.
The toy itself is about 190 cm high and it all seems correctly scaled.


scale_ok.jpg.da28c3feaf123af1a00a6260f78f3d3d.jpg

 

The second picture shows the same toy assigned to the 5 foot female.
As you can see the toy, including the reference columns, is immediately scaled down to her size.
(fun fact: assigning it back to the male doesn't restore the original scale!)


scale_off.jpg.c41ffc4d7df50aac40a9e2b2a3982c0d.jpg

 

 

Like i said, the Customizer Free Toy settings are the same so I'm wondering if this is a bug or a hidden feature

Anyone have an idea? Am i overlooking something?

 

 


 

Link to post
1 hour ago, Hunchback said:

seems the male 6 feet female 5 feet overal size is hardcoded somewhere...

 

no it's not but that's not the point.

i am talking about automatic scaling of toys to fit the size of the actor.

That is supposed to be an option in Pose Edit and not the default behaviour one would expect.

 

 

 

 

Link to post

If you change the actual MODEL SIZE, instead of individual body parts, you always lose. Same goes for poses. Model scaling is related to something internal in the program, rather than the actual model (scaling the model will shift it across a horizontal left/right line, rather than up/down). 

Link to post

Once again  I am NOT talking about the scaling of the models.
I'm talking about the automatic re-scaling of TOYS.

 

it's quite possibly a known issue, i dont know everything (i think that's literally impossible with this game of ours)

I'm wildly guesstimating it must be related to the Pose Edfit scaling of toys using a default factor if none is specified.

I never really used that option as it's (a) hard to get right and (b) affects ALL toys for that model and this can screw up a lot of poses.

 

 

 

 

 

 

Link to post
16 hours ago, Marburg said:

it's quite possibly a known issue...

 

 

Yeah, you really can't scale your models without fucking up everything else in the game. That's partly why I don't share any poses. All my models are not only scaled in relation to each other, but also to the room I'm using. There's no point in my trying to share ANYTHING I've made under those conditions, cuz you'd spend all day fixing it.. To your particular issue, I believe it only reads the size info when you first apply it to the model. Since it was already applied when you loaded the pose, it doesn't read it again. Just a guess. I only know that if you're trying to share toys between different sized actors, your best bet is to attach it to a 3rd model and bury her under the shed..

Link to post

Well, my problem is that this affects furniture type toys snd anything else that should really have fixed, real-world size.

For sex toys the mechanism makes a lot of sense. For everything else it doesn't.

 

Which is another reason we look into room toys / objects.

You could have libraries of certain objects to add to a room like chairs or beds or whatever

The standard game has a posing Pose (Posing #4?) that uses a Thonet chair that is not a toy so it's technically possible

 

 

 

 

 

 

 

Link to post

Well, the main idea behind toys in this game is dildos, buttplugs, etc... You kinda want those to scale with the model. I don't know what you mean by "Posing Pose #4/Thonet chair"? If you're talking about the built-in poses in free mode, they all use room objects, as far as I know.

Link to post

Nope, Posing #4 uses a special chair to do a stripper routine with.

Look at the attached picture of the Stripclub. That chair is not present in the room but appears when you select that pose.

 

see \Archives\2.158.001\Scenes.zip\Scenes\Shared\Furniture\props_chair.[bsb]

that is the only entry in this Furniture folder btw.

I hope this might be a backdoor to "someday" add more (static) objects to poses

 

posing4.jpg.3e16fc1781bbc81ae051542db18fda3b.jpg

 

Link to post
Quote

I have NEVER seen that chair before now! And I can only get it to come up in stripclub, so it must be tied to the room somehow.

Yes and no. The chair is part of the pose and the pose is (more or less) tied to the room.

You can load the pose elsewhere, in other rooms or positions,  but the chair only appears in the Stripclub because that is the only room with the "right" position definitions (there are several positions in this room that will accept the Posing 4 pose)

 

If you look at the stripclub room script files you can see that these positions have extra code that enables the specific behaviour.

 

from AvFurnitures.bs for the stripclub:

 

AvReparent :PropChairUnparent . {
    .Node "Room:props_chair";
    .Parent "Nil";
};

 

AvFurniture :Posing01 . {
    .RootNode "Room:Posing01";
    .Do [ AvFurnitureSituation :Posing01_position01 . {
        .Mappings [ "position01", "%{ModelTRS}" ];
        .Exports [ "posing" ];
        .Init [ AvReparent . {
            .Node "Room:props_chair";
            .Parent "::Room:Posing01:position01";
        };
        ];
        .Exit [ :PropChairUnparent ];

    };
    ];
};

 

And in AcRoom.bs we find this:

 

// here the chair prop gets loaded into the room scene

    AppImportScene . {
        .NodeName "props_chair";
        .ParentPath "Nil";
        .SceneFile "Shared/Furniture/props_chairs";
    };

// setting up chair-related animations
    AppCharacter . {
        .Name "props_chair_range";
        .Pattern "props_chair_range";
    };
    AppCharacter . {
        .Name "props_chair01_character";
        .Pattern "props_chair01_character";
    };
    AppCharacter . {
        .Name "props_chair02_character";
        .Pattern "props_chair02_character";
    };
    AppCharacter . {
        .Name "props_chair_shadow_character";
        .Pattern "props_chair_shadow_character";
    };
    AppActionAnimRange . {
        .Name "props_chair_range";
        .RangeCharacters [ "props_chair_range" ];
        .Characters [ "props_chair01_character", "props_chair02_character", "props_chair_shadow_character" ];
        .ActionPrefix "Props:";
    };

 

finally from AvRoom.bs:

 

AvSituation :RoomIdle . {
    .WithoutFurniture True;
    .Def [ AvPose . {
        .Init [ AvPlay . {
            .Action "Props:props_chair_init";
        };
        AvPlay . {
            .Action "Room:shower01_init";
        };
        AvPlay . {
            .Action "Vibramatic:tool_vibra_init";
        };
        ];
    };
    ];
    .Do [ ];
};

 

This of course raises two questions: can this mechanism be used for other poses and would it be possible to add more "shared furniture"?

I'm currently trying to do a quick & dirty hack to see if i can get the chair to appear in one of my custom rooms.

 

Lo and behold!

 

chair_posing.jpg.1177fa32cc5d53c2612afc1c1a3f4f45.jpg

 

 

Link to post
22 minutes ago, Newboi360 said:

Like "robot" from hangar room??

Similar but if I'm not mistaken, the robot and others like the Guardian(?) and the Tentacle monster are actually Actor #1 in disguise.

That's why you can only use single actor poses in those rooms

 

 

Link to post

I actually remember looking at that stripclub code, and thinking maybe it was some way to spin the chairs around..

 

Anyway.. So If I understand what I'm looking at, it means the pose has to include that information also. Have you managed to hack the internal poses to see what the script looks like? Do you even know where they're located? So far, I haven't been able to find them. I'm almost convinced they're hidden in one of those 3X dlls.

 

As far as I know, no one has hacked the internal animations yet. Whoever can make those editable will become LORD of the NOOBS! lol

Link to post
Quote

So If I understand what I'm looking at, it means the pose has to include that information also.

No. You can load the Pose in other rooms/locations and it performs the same routine but without the chair.

But if you add the room-specific code to another room, the Pose does use the chair.

 

The extra bits in AcRoom and AvRoom (both room script files as you know) are used to make the chair load, appear and disappear (a form of animation)

The chair is always in the room but invisible by default.

When the Pose loads, the "show chair" animation is triggered and when it stops, the "hide chair" animation plays.

 

The position definition in AvFurnitures.bs also plays a crucial part.

That's where the chair prop is linked to the pose.

 

        .Init [ AvReparent . {
            .Node "Room:props_chair";
            .Parent "::Room:room_position_group:position_Kitchen";
        };

 

Ergo: the Pose doesnt load the chair but reveals and uses it if it's there.

 

First experiment to replace the chair with something else failed but that's probably just an oversight on my part.

I'll give it a few more tries.

 

 

Link to post

Yeah, but then doesn't the show chair command have to be part of the pose? Otherwise, it would load the chair any time a pose uses that starting position, no? The only thing I see that looks like it references the pose is in AvFurnitures.bs. And it says Posing01, not 04.

 

        .Init [ AvReparent . {
            .Node "Room:props_chair";
            .Parent "::Room:Posing01:position01";
        };
        ];
        .Exit [ :PropChairUnparent ];

Link to post

Yes and no. The show & hide chair animations are entirely defined in the stripclub scene file and setup in the room scripts.

But they are triggered by the pose.

Without Posing 4, the chair doesn't show.

 

 

Quote

Otherwise, it would load the chair any time a pose uses that starting position, no?

 

No. That only happens when a linked pose is loaded.

In this case, the four Posing poses are linked but the other 3 do not trigger the show chair animation.

 

The linking is what you see in AvFurnitures.bs

And "::Room:Posing01:postion01" is the position group:position (as defined in stripclub.bs) that are being linked to the Pose & Chair combo.

The stripclub has a whole range of position groups instead of just one

The same location is probably repeated in other group(s)

 

 

 

Link to post
1 hour ago, Marburg said:

In this case, the four Posing poses are linked but the other 3 do not trigger the show chair animation.

 

Yeah, but what is specifically identifying Posing04? That's what I'm not seeing. Or is it just that Posing04 meets a certain set of criteria? Seems a damned convoluted way to call an object!

Link to post
17 minutes ago, EJAX said:

 

Yeah, but what is specifically identifying Posing04? That's what I'm not seeing. Or is it just that Posing04 meets a certain set of criteria? Seems a damned convoluted way to call an object!

Nothing. But this particular position only exports the "Posing" group of animated poses.

And as far as i can tell, #4 of that group looks for the animation "hooks" and calls them if found.

The others don't.

And any oter group of poses wont even use this position (not to be confused with location!)

 

I agree it is rather convoluted but that's the 3X way of doing things LOL. The whole game is a convoluted mess!

 

My guestimate is that the company that shall remain nameless also decided the method is too cumbersome to implement elsewhere.

There's only the one chair prop and only one pose that uses it.

A pretty good reason to assume they had a rethink after they realised the amount of effort (= cost) involved.

 

 

Link to post
9 hours ago, Marburg said:

And as far as i can tell, #4 of that group looks for the animation "hooks" and calls them if found.

 

Yeah, that's what I'm saying... I've stared at this code until my brain hurts, and I still don't see what calls that animation. It has to be in the pose, wherever that is.

Link to post

3X often uses standard labels/object names to enable this kind of thing to work.

 

Compare with the Shower pose. When it loads, it looks for the shower animation init code.
This code is always called the same in all rooms with a shower. If it is present, the shower animation will be started.
in pseudo code: IF EXIST( shower_animation ) DO( shower_animation )
If no animation "hook" can be found, it just proceeds.

 

Clearly, their tools have more features than our Pose Editor LOL

 

 

Link to post
24 minutes ago, Marburg said:

Compare with the Shower pose. When it loads, it looks for the shower animation init code.
in pseudo code: IF EXIST( shower_animation ) DO( shower_animation )
If no animation "hook" can be found, it just proceeds.

 

Yeah... Exactly! ... WHAT "LOOKS"? ... There's nothing in the pose editor to say "check for shower animation" (or in this case, "chair animation"). So what triggers it? The name of the pose? The starting location? Which way her pussy is pointing?? Maybe you've told me ten times already and I'm just not getting it?

 

For the record, I presently have no clue how to make a pose that can turn the shower on/off in the strip club (or any other room, for that matter). As far as I'm concerned, they're totally non-functional, unless I break the script in just the right way (possibly my greatest skill as a programmer).

Link to post

like i said: their Pose Editor is not the same as ours!

 

I'm pretty sure they do their animations in Maya, export the data and then add things like type and group info and animation triggers before compiling the whole lot into a Pose.
That's how i would do it.

 

In any case: what we get in game is not what they use. For sure.

Link to post
16 minutes ago, Marburg said:

like i said: their Pose Editor is not the same as ours!

 

Well, maybe not, but it can at least produce a line of code that THIS engine can read." WHERE IS THAT LINE?", is my question. You say "There isn't one". Well, I don't believe in MAGIC so there must be a LINE!

Link to post

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...