Jump to content

How i can change Animation, that NPC plays on Furniture


Recommended Posts

Maybe it works like this:

 

In the 'FurnitureUseItemRoot' tree conditions for two Idles are fulfilled:

1. FurnitureIdleEatingRoot
As it appears to me now, a Fake Food is created via the Sit Package, whereby
the condition of the Idle Tree 'FurnitureIdleEatingRoot' is fulfilled.

2. furniture writing
Condition by presence of the keyword 'AnimFurnChairWithTable' in the Table Object.

(Deleting the keyword caused the companion not to sit down).

The crucial thing now is this:

 

Action Selection

When a sandbox package starts up, it builds a list of nearby objects with which it could interact. To select an action, it computes a score for each object, based on the specifics of that object. That score will be set to zero if that object becomes an invalid target, or if it was the same object that the sandbox just selected previously. Each object's score is then weighted by a relative "probability" value based on the type of the interaction (i.e. sleep, eat, use furniture, use idle markers, or dialogue). The sandbox maintains these probability values over time, adjusting them each time it choses a target object. It drops the probability to zero for the type that was just chosen, and increases the probability for the other types. This ensures that the actor will not select the same kind of action repeatedly (unless it has no other options). For example, after eating, the probability of eating again immediately will be zero, but will increase over time as the actor performs actions other than eating.

 

That is it is decided by a probability calculation which of the two animations will be played. Maybe the probability for the steak animation is increased if the gametime is in one of the meal times.
This would also explain why the steak animation was played a few times in a row and I thought it was because I had changed the furniture write animation condition. (which I did not, as it turned out later).



Link to comment
Share on other sites

It's probably certain that Eating circumstances are out of direct control, i.e. that mysterious Potion comes and goes. Doesn't really matter much, why not use an Idle with idleEatStart to command as necessary? Maybe could be embedded in package. Still can modify Animations tree conditions though in worst case.

 

Look. AnimFurnChairWithTable and similar major keywords is what defines animations set for a Furniture, the set is defined in Race SubGraph and contains paths to data folders which contain subsets of specifically purposed animations. Paths are stacked and files in topmost override lower ones, for better understanding grab BSA Browser and look inside those folders, files naming is uniform mostly and defines the purpose of animation. We can edit the set of Paths in SubGraph (best is to create an additive form) and at certain extent modify behaviour of Furniture. That's how our Table replaces default Drinking idle, what i wondered meself about. But EatIdle is one of specialized cases and will be called by game's decision anyway or manually by any other means, unless a replacement is provided for Loop. At least that's what i can see for now.

ps. Although maybe i'm wrong in some part. Trying to add Writing and EatingTable Paths to PicnicTable, but despite there is no conflict in those Paths for any Enter/Exit animations, still it makes furniture unusable, all entry markers disappear in CK furniture view too, confusing and unclear as hell.

Edited by hereami
Link to comment
Share on other sites

  • Recently Browsing   0 members

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