① 이번 예제에서 할 작업

gold2를 예제로 사용해 기존 DATA 모드의 캐릭터 시체 hth_dead에 색상 빛기둥 이벤트만 병합합니다.
공유 combined.timelines 전체를 이 패키지 파일로 덮어쓰지 않고, 기존 모드의 다른 이벤트는 유지합니다.

② 수정할 파일

[수정할 기존 파일]
data/hd/character/player/amazon/animation/combined.timelines
data/hd/character/player/assassin/animation/combined.timelines
data/hd/character/player/barbarian/animation/combined.timelines
data/hd/character/player/druid/animation/combined.timelines
data/hd/character/player/necromancer/animation/combined.timelines
data/hd/character/player/paladin/animation/combined.timelines
data/hd/character/player/sorceress/animation/combined.timelines
data/hd/character/player/warlock/animation/combined.timelines

[복사할 에셋 - gold2 예제]
data/hd/vfx/colorlight/drop_light_gold2.particles
data/hd/vfx/colorlight/color_light.texture
data/hd/vfx/colorlight/gold2.texture

③ 찾아야 할 위치

각 combined.timelines에서 root의 "timelines" 객체를 찾고 그 안의 "hth_dead"를 확인합니다.

주변 문맥 예:

"timelines": {
    ...기존 타임라인...,
    "hth_death": { ... },
    "hth_dead": {
        "type": "AnimationTimeline",
        "name": "hth_dead",
        ...
        "animationEvents": [
            ...기존 이벤트...
        ]
    },
    ...기존 타임라인...
}

- hth_dead가 이미 있으면 그 객체 전체를 교체하지 않습니다.
- hth_dead.animationEvents 안의 기존 이벤트를 유지합니다.
- 이름이 "jimssng_itemoverlay_corpse_color_pillar_"로 시작하는 기존 이벤트가 있으면 그것만 먼저 제거합니다.

④ 실제로 삽입/수정할 코드

정확한 7개 SpawnVFX 객체는 이 패키지의 같은 직업 기본 DATA 파일에서
"jimssng_itemoverlay_corpse_color_pillar_0"을 검색하면 연속해서 확인할 수 있습니다.
그 0~6 이벤트만 대상 hth_dead.animationEvents에 그대로 추가합니다.

첫 이벤트의 형태는 다음과 같습니다.

{
    "type": "SpawnVFX",
    "name": "jimssng_itemoverlay_corpse_color_pillar_0",
    "eventTimestamp": 0,
    "duration": -1,
    "isCritical": false,
    "eventParams": [
        {
            "type": "VFXSourceAnimationEventParameter",
            "name": "jimssng_itemoverlay_corpse_color_pillar_0_filename",
            "value": "data/hd/vfx/colorlight/drop_light_gold2.particles",
            "parameterName": "filename"
        },
        {
            "type": "AttachToEntityAnimationEventParameter",
            "name": "jimssng_itemoverlay_corpse_color_pillar_0_attachToEntity",
            "value": true,
            "parameterName": "attachToEntity"
        },
        {
            "type": "BoneNameAnimationEventParameter",
            "name": "jimssng_itemoverlay_corpse_color_pillar_0_boneName",
            "value": "root",
            "parameterName": "boneName"
        },
        {
            "type": "OrientationBoneNameAnimationEventParameter",
            "name": "jimssng_itemoverlay_corpse_color_pillar_0_orientationBoneName",
            "value": "root",
            "parameterName": "orientationBoneName"
        },
        {
            "type": "TranslationOffsetAnimationEventParameter",
            "name": "jimssng_itemoverlay_corpse_color_pillar_0_translationOffset",
            "value": { "x": 0, "y": 0, "z": 0 },
            "parameterName": "translationOffset"
        },
        {
            "type": "RotationOffsetAnimationEventParameter",
            "name": "jimssng_itemoverlay_corpse_color_pillar_0_rotationOffset",
            "value": { "x": 0, "y": 0, "z": 0 },
            "parameterName": "rotationOffset"
        },
        {
            "type": "HardKillVFXAnimationEventParameter",
            "name": "jimssng_itemoverlay_corpse_color_pillar_0_hardKill",
            "value": false,
            "parameterName": "hardKillOnTimeout"
        },
        {
            "type": "AttachToDeadBodyEventParameter",
            "name": "jimssng_itemoverlay_corpse_color_pillar_0_attachToDeadBody",
            "value": true,
            "parameterName": "attachToDeadBody"
        }
    ]
}

7개 이벤트의 Y 오프셋은 순서대로 다음과 같습니다.
0, 2.7, 6, 10, 15, 20, 25

다른 색상을 쓰려면 7개 이벤트의 filename을 모두 같은 값으로 바꿉니다.
예: red1이면 data/hd/vfx/colorlight/drop_light_red1.particles
그리고 red1용 particle / red1.texture / 공통 color_light.texture를 복사합니다.

[hth_dead가 없는 파일]
패키지의 같은 직업 기본 DATA 파일에서 "hth_dead" 객체만 복사해 "hth_death" 바로 다음에 추가합니다.
다른 timelines 항목은 교체하지 않습니다.

[성기사]
기존 hth_dead가 바닐라 형태인 경우 duration을 0으로 바꾸고 기존 ChangeEquipmentLayerWeight 이벤트는 유지한 뒤 7개 SpawnVFX를 추가합니다.
이미 다른 모드가 hth_dead를 수정한 상태라면 그 객체를 통째로 기본 DATA와 바꾸지 말고 기존 이벤트를 보존합니다.

⑤ 삽입 후 형태

"animationEvents": [
    ...기존 다른 모드 이벤트...,
    { "name": "jimssng_itemoverlay_corpse_color_pillar_0", ... },
    { "name": "jimssng_itemoverlay_corpse_color_pillar_1", ... },
    { "name": "jimssng_itemoverlay_corpse_color_pillar_2", ... },
    { "name": "jimssng_itemoverlay_corpse_color_pillar_3", ... },
    { "name": "jimssng_itemoverlay_corpse_color_pillar_4", ... },
    { "name": "jimssng_itemoverlay_corpse_color_pillar_5", ... },
    { "name": "jimssng_itemoverlay_corpse_color_pillar_6", ... }
]

⑥ 적용 원리

시체의 hth_dead 타임라인에 같은 컬러 파티클을 서로 다른 Y 위치로 7번 SpawnVFX하여 세로 빛기둥을 만듭니다.
각 이벤트는 root에 붙고 attachToDeadBody=true이므로 시체 상태에 귀속됩니다.
공유 combined.timelines에서는 이 7개 소유 이벤트만 병합하는 것이 다른 모드와의 충돌을 가장 적게 만듭니다.
