{

    //幽灵跟随点脚本

    "AbilityName": "Unagi_Follower_Control",

    "AbilityStacking": "Unique",

    

    "DefaultModifier": 

    {

        "OnAdded": 

        [

            //小幽灵跟随点默认追随目标

            {

                "$type": "MoleMole.ApplyModifier",

                "ModifierName": "FollowModifier_01",

                "Target": "Self"

            }

        ]

    },



    //在休闲待机/普攻05/普攻06中，小幽灵跟随点追随目标更改

    "AbilityMixins": 

    [

        {

            "$type": "MoleMole.AttachStateWithModifierMixin",

            "ConfigList": 

            [

                {

                    "LayerIndex": 0,

                    "AnimatorStateName": "Idle_AFK_01",

                    "MaxFrameCountLow": false,

                    "FrameCountLow": 6,

                    "MaxFrameCountHigh": false,

                    "FrameCountHigh": 370,

                    "IsLoop": false,

                    "ModifierNameList": 

                    [

                        "SetFollowTargetModifier",

                        "GhostModifier_Idle_AFK_01",

                        "GhostModifier_Interrupt"

                    ]

                },

                {

                    "AnimatorStateName": "Attack_Normal_05",

                    "LayerIndex": 0,

                    "MaxFrameCountLow": false,

                    "FrameCountLow": 0,

                    "MaxFrameCountHigh": true,

                    "FrameCountHigh": 0,

                    "IsLoop": false,

                    "ModifierNameList": 

                    [

                        "SetFollowTargetModifier",

                        "GhostModifier_Attack_05",

                        "GhostModifier_Interrupt"

                    ]

                },

                {

                    "AnimatorStateName": "Attack_Normal_05_End",

                    "LayerIndex": 0,

                    "MaxFrameCountLow": false,

                    "FrameCountLow": 0,

                    "MaxFrameCountHigh": true,

                    "FrameCountHigh": 0,

                    "IsLoop": false,

                    "ModifierNameList": 

                    [

                        "SetFollowTargetModifier",

                        "GhostModifier_Attack_05",

                        "GhostModifier_Interrupt"

                    ]

                },

                {

                    "AnimatorStateName": "Attack_Normal_06",

                    "LayerIndex": 0,

                    "MaxFrameCountLow": false,

                    "FrameCountLow": 0,

                    "MaxFrameCountHigh": true,

                    "FrameCountHigh": 0,

                    "IsLoop": false,

                    "ModifierNameList": 

                    [

                        "SetFollowTargetModifier",

                        "GhostModifier_Attack_06",

                        "GhostModifier_Interrupt"

                    ]

                },

                {

                    "AnimatorStateName": "Attack_Normal_06_End",

                    "LayerIndex": 0,

                    "MaxFrameCountLow": false,

                    "FrameCountLow": 0,

                    "MaxFrameCountHigh": true,

                    "FrameCountHigh": 0,

                    "IsLoop": false,

                    "ModifierNameList": 

                    [

                        "SetFollowTargetModifier",

                        "GhostModifier_Attack_06",

                        "GhostModifier_Interrupt"

                    ]

                }

            ]

        }

    ],



    "Modifiers": 

    {

        //添加时跟随骨骼，移除时回到背后

        "SetFollowTargetModifier": 

        {

            "ModifierStacking": "Unique",

            "Duration": -1,

            "IgnoreTimeScale": false,



            "OnAdded": 

            [

                {

                    "$type": "MoleMole.RemoveModifier",

                    "ModifierName": "FollowModifier_01",

                    "Target": "Self"

                },

                {

                    "$type": "MoleMole.ApplyModifier",

                    "ModifierName": "FollowModifier_02",

                    "Target": "Self"

                }

            ],



            "OnRemoved": 

            [

                {

                    "$type": "MoleMole.RemoveModifier",

                    "ModifierName": "FollowModifier_02",

                    "Target": "Self"

                },

                {

                    "$type": "MoleMole.ApplyModifier",

                    "ModifierName": "FollowModifier_01",

                    "Target": "Self"

                }

            ]

        },



        //让GhostFollowPoint_02去跟随GhostFollowPoint（以Lerp的方式）

        "FollowModifier_01": 

        {

            "ModifierStacking": "Unique",

            "Duration": -1,

            "IgnoreTimeScale": false,

            

            "ModifierMixins": 

            [

                {

                    "$type": "MoleMole.AttachPointFollowMixin",

                    "AttachPointName": "GhostFollowPoint_02",

                    //目标位置

                    "FollowPosRot": 

                    {

                        "CoordsOption": "ReferTarget",

                        "TargetOption": 

                        {

                            "$type": "MoleMole.ConfigPosRotReferTarget",

                            "OffsetReferTarget": "Caster",

                            "AttachPoint" : "GhostFollowPoint",

                            "IsUseAttachPointPos": true,

                            "IsUseAttachPointRotation": false

                        },

                        "Offset": 

                        {

                            "PositionOffset": {"x": 0.0, "y": 0.0, "z": 0.0},

                            "AngleOffset": {"x": 0.0, "y": 0.0, "z": 0.0},

                            "IsUseRotationY": true,

                            "IsUseRotationXZ": false

                        }

                    },

                    

                    "PosType": "PolarLerp", //位移（PolarLerp）

                    "PolarRadiusRatio": 15.0, //15 5 8

                    "PolarAngleRatio": 5.0,

                    "PolarHeightRatio": 8.0,

                    "RotType": "Lerp", //旋转

                    "RotRatio": 8.0

                }

            ]

        },



        //让GhostFollowPoint_02去跟随Bn_PET（以Instant的方式）

        "FollowModifier_02": 

        {

            "ModifierStacking": "Unique",

            "Duration": -1,

            "IgnoreTimeScale": false,



            "ModifierMixins": 

            [

                {

                    

                    "$type": "MoleMole.AttachPointFollowMixin",

                    "AttachPointName": "GhostFollowPoint_02",

                    //目标位置

                    "FollowPosRot": 

                    {

                        "CoordsOption": "ReferTarget",

                        "TargetOption": 

                        {

                            "$type": "MoleMole.ConfigPosRotReferTarget",

                            "OffsetReferTarget": "Caster",

                            "AttachPoint": "Bn_PET",

                            "IsUseAttachPointPos": true,

                            "IsUseAttachPointRotation": false

                        },

                        "Offset": 

                        {

                            "PositionOffset": {"x": 0.0, "y": 0.0, "z": 0.0},

                            "AngleOffset": {"x": 0.0,"y": 0.0, "z": 0.0},

                            "IsUseRotationY": true,

                            "IsUseRotationXZ": false

                        }

                    },

                    

                    "PosType": "Instant", //位移（PolarLerp）

                    "RotType": "Lerp", //旋转

                    "RotRatio": 8.0

                }

            ]

        },



        //播放休闲待机小幽灵对应动作

        "GhostModifier_Idle_AFK_01": 

        {

            "ModifierStacking": "Unique",

            "Duration": -1,

            "OnAdded": 

            [

                {

                    "$type" : "MoleMole.SetAnimCtrlerParamAction",

                    "ParamType" : 1,

                    "ParamName" : "Trigger_Idle_AFK",

                    "Target": "Custom",

                    "CustomKey": "UnagiGhost_AbilityTargetting_01",

                    "BoolVal" : true

                }

            ]

        },



        //播放普攻05小幽灵对应动作

        "GhostModifier_Attack_05": 

        {

            "ModifierStacking": "Unique",

            "Duration": -1,

            "OnAdded": 

            [

                {

                    "$type" : "MoleMole.SetAnimCtrlerParamAction",

                    "ParamType" : 1,

                    "ParamName" : "Trigger_Attack_05",

                    "Target": "Custom",

                    "CustomKey": "UnagiGhost_AbilityTargetting_01",

                    "BoolVal" : true

                }

            ]

        },



        //播放普攻06小幽灵对应动作

        "GhostModifier_Attack_06": 

        {

            "ModifierStacking": "Unique",

            "Duration": -1,

            "OnAdded": 

            [

                {

                    "$type" : "MoleMole.SetAnimCtrlerParamAction",

                    "ParamType" : 1,

                    "ParamName" : "Trigger_Attack_06",

                    "Target": "Custom",

                    "CustomKey": "UnagiGhost_AbilityTargetting_01",

                    "BoolVal" : true

                }

            ]

        },



        //当Interrupt被移除时（即2个动作结束时或1动作结束后未继续）恢复小幽灵待机动作

        "GhostModifier_Interrupt": 

        {

            "ModifierStacking": "Unique",

            "Duration": -1,

            "OnRemoved" : 

            [

                {

                    "$type" : "MoleMole.SetAnimCtrlerParamAction",

                    "ParamType" : 1,

                    "ParamName" : "Trigger_Idle",

                    "Target": "Custom",

                    "CustomKey": "UnagiGhost_AbilityTargetting_01",

                    "BoolVal" : true

                }

            ]

        },

    }

}