Does YEP_X_VisualStateFX have a way to superimpose SV animation?

● ARCHIVED · READ-ONLY
Started by Summer夏 5 posts View original ↗
  1. QQ图片20180324143522.png QQ图片20180324143536.png
    For example, the SV animation of state 5 is shown in Fig. 1, and the SV animation of state 10 is shown in Fig. 2. If two states are applied at the same time, SV animation can only display the latter. Is there any way to make SV animation superimpose?
    Sorry, English is not good. I don't know if you can read it or not....
  2. YEP_X_VisualStateFX is hardcoded to only ever show one animation. You could get around this by modifying the plugin somehow, or take a super convoluted hack-y route (which I happen to be specialized in) using YEP_AutoPassiveStates.

    • Make a passive state that has the animation tag for the super imposed animation.
    • Make sure the state you just made has a higher priority than both of your other states referenced in the OP.
    • Make that passive state be on all actors/enemies passively using the plugin parameters for the plugin.
    • Use the following note tag to make it only become active if the user has BOTH of the other states.
    Code:
    <Custom Passive Condition>
    if (user.isStateAffected(X) && user.isStateAffected(Y)) {
    condition = true;
    } else {
    condition = false;
    }
    </Custom Passive Condition>
    (replace 'X' and 'Y' with the stateIds of your two animated states from the OP).

    Voila, whenever a battler has both states, you have a super-imposed state that shows both animations. Whenever they have one or none of the states, it'll only show the one animation.

    On a related note, it looks like your images are actually rendering the animation behind the afflicted battler. How did you get it to do that?
  3. ramza said:
    YEP_X_VisualStateFX is hardcoded to only ever show one animation. You could get around this by modifying the plugin somehow, or take a super convoluted hack-y route (which I happen to be specialized in) using YEP_AutoPassiveStates.

    • Make a passive state that has the animation tag for the super imposed animation.
    • Make sure the state you just made has a higher priority than both of your other states referenced in the OP.
    • Make that passive state be on all actors/enemies passively using the plugin parameters for the plugin.
    • Use the following note tag to make it only become active if the user has BOTH of the other states.
    Code:
    <Custom Passive Condition>
    if (user.isStateAffected(X) && user.isStateAffected(Y)) {
    condition = true;
    } else {
    condition = false;
    }
    </Custom Passive Condition>
    (replace 'X' and 'Y' with the stateIds of your two animated states from the OP).

    Voila, whenever a battler has both states, you have a super-imposed state that shows both animations. Whenever they have one or none of the states, it'll only show the one animation.

    On a related note, it looks like your images are actually rendering the animation behind the afflicted battler. How did you get it to do that?

    rpg_sprites
    Sprite_Animation.prototype.updatePosition = function() {
    Posterior addition↓
    if (this._animation.name.contains("TPZH")) {
    this.z = -1;
    } else {
    this.z = 8;
    }
    Animation name plus TPZH
    Can you read it?

    Your method seems to only have two SV animations at the same time. This method is very practical, but I can also modify the official SV animation (Poisoning\Sleep...). I want to modify the plugin to be a multi-SV animation. Is there a way to achieve it?
  4. My method would work if you had several dozen passive states, with differing priorities levels for each combination of states possible. As long as the priority is set correctly, it should always show the animation for the largest number of states.

    example:
    Code:
    //Priority 51 used for 2 states simultaneously:
    <Custom Passive Condition>
    if (user.isStateAffected(X) && user.isStateAffected(Y)) {
    condition = true;
    } else {
    condition = false;
    }
    </Custom Passive Condition>
    <Custom Passive Condition>
    if (user.isStateAffected(X) && user.isStateAffected(Z)) {
    condition = true;
    } else {
    condition = false;
    }
    </Custom Passive Condition>
    <Custom Passive Condition>
    if (user.isStateAffected(Y) && user.isStateAffected(Z)) {
    condition = true;
    } else {
    condition = false;
    }
    </Custom Passive Condition>
    
    //Priority 52 for three states:
    <Custom Passive Condition>
    if (user.isStateAffected(X) && user.isStateAffected(Y) && user.isStateAffected(Z)) {
    condition = true;
    } else {
    condition = false;
    }
    </Custom Passive Condition>

    Obviously this isn't ideal, but hack-y codes like this are rarely useful beyond a very specific use-case. If it was for a couple of states, it'd probably be fine, but this is probably a lot of work to do for all your states.

    Thanks for the code on that animation thing, I'd been trying to figure something out with it for a while, I wanted some state animations behind and others not, and this seems to do the trick.
  5. ramza said:
    My method would work if you had several dozen passive states, with differing priorities levels for each combination of states possible. As long as the priority is set correctly, it should always show the animation for the largest number of states.

    example:
    Code:
    //Priority 51 used for 2 states simultaneously:
    <Custom Passive Condition>
    if (user.isStateAffected(X) && user.isStateAffected(Y)) {
    condition = true;
    } else {
    condition = false;
    }
    </Custom Passive Condition>
    <Custom Passive Condition>
    if (user.isStateAffected(X) && user.isStateAffected(Z)) {
    condition = true;
    } else {
    condition = false;
    }
    </Custom Passive Condition>
    <Custom Passive Condition>
    if (user.isStateAffected(Y) && user.isStateAffected(Z)) {
    condition = true;
    } else {
    condition = false;
    }
    </Custom Passive Condition>
    
    //Priority 52 for three states:
    <Custom Passive Condition>
    if (user.isStateAffected(X) && user.isStateAffected(Y) && user.isStateAffected(Z)) {
    condition = true;
    } else {
    condition = false;
    }
    </Custom Passive Condition>

    Obviously this isn't ideal, but hack-y codes like this are rarely useful beyond a very specific use-case. If it was for a couple of states, it'd probably be fine, but this is probably a lot of work to do for all your states.

    Thanks for the code on that animation thing, I'd been trying to figure something out with it for a while, I wanted some state animations behind and others not, and this seems to do the trick.

    thanks for your help, I will try to use this method