Compare commits

...

5 Commits

Author SHA1 Message Date
90da884718 feat: 플레이어 스킬 애니메이션 클립 OnEffect 이벤트 추가 및 10종 신규 클립
- 기존 6종 클립에 OnEffect 애니메이션 이벤트 추가 (마법발사, 마법휘두르기, 모아베기, 베기, 올려베기, 찌르기)

- 신규 10종 클립 추가: 마법_방패치기, 마법_내려찍기, 한손_연속베기, 방패_방패치기, 방패_연속베기, 양손_내려찍기, 양손_연속베기_0, 양손_연속베기_1, 마법_전진베기, 마법_회전베기

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 17:54:59 +09:00
feb34e6ecf feat: 24종 플레이어 스킬 데이터에 이펙트 연결 및 레거시 effects 필드 제거
- legacy effects 필드를 triggeredEffects/castStartEffects/channelTickEffects로 마이그레이션

- 한손 5종: 베기, 올려베기, 연속베기, 찌르기, 전진베기에 DamageEffect 연결

- 양손 5종: 모아베기, 내려찍기, 찌르기, 연속베기, 회전베기 이펙트 재연결

- 마법 5종: 마법발사, 마법휘두르기, 마법오름, 마법광선(채널링), 유도탄

- 방패 2종: 방어태세(ThreatModifier), 방패치기(DamageEffect)

- 지원 4종: 광역치유(HealEffect), 치유광선(채널링), 보호막(ShieldEffect), 부활(ReviveEffect)

- 공용 3종: 도발(TauntEffect), 구르기, 돌진

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 17:54:29 +09:00
0aa50c6495 chore: AGENTS.md에 Obsidian Vault 파일 도구 접근 규칙 추가
- UNC 경로 처리 문제로 cmd/powershell/bash 대신 파일 도구 사용 규칙 명시

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 17:53:31 +09:00
117b0ad8bc chore: MixamoAvatar 에셋을 External/Animations로 이동
- Assets/_Game/Animations/MixamoAvatar → Assets/External/Animations/MixamoAvatar

- ActorCore 에셋 External/Animations/ActorCore에 추가

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 17:53:05 +09:00
29e8bb5726 chore: 스킬 이펙트 에셋 네이밍에 분류 접두어 누락 수정
- 한손(7): 베기, 올려베기, 연속베기×2, 찌르기, 전진베기에 한손_ 접두어 추가

- 마법(6): 마법광선, 유도탄, 보호막, 부활, 광역치유, 치유광선에 마법_ 접두어 추가

- 방패(2): 방어태세, 방패치기에 방패_ 접두어 추가

- 공용(1): 도발에 공용_ 접두어 추가

- 한손_올려베기_0, 한손_연속베기_2 에셋 재생성 (이전 rename 사고로 유실)

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 17:50:34 +09:00
89 changed files with 2297257 additions and 71 deletions

View File

@@ -14,6 +14,7 @@ Multiplayer arena game built with **Unity 6000.3.10f1** and **Unity Netcode for
Design docs are maintained in Obsidian Vault: `\\Truenas\smb\Obsidian Vault\Colosseum`
- Always use the shared Obsidian Vault at `\\Truenas\smb\Obsidian Vault\Colosseum` for project documentation updates.
- **Obsidian Vault 파일은 반드시 파일 도구(read/write/edit)로만 접근한다.** cmd, powershell, bash 등은 UNC 경로를 정상적으로 처리하지 못하므로 사용하지 않는다.
- Do not write Colosseum design notes to `C:\Users\dal4s\OneDrive\문서\Obsidian Vault\Colosseum`; that path is not the active vault for this project.
- Unless the user explicitly names another file, `체크리스트` means `\\Truenas\smb\Obsidian Vault\Colosseum\개발\프로토타입 체크리스트.md`.
- After completing work, always check whether the prototype checklist should be updated and reflect the new status when needed.

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7832b4183a6b29e47987a7d62480a637
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3f6d894f1f6a11d47909eef9cca8e921
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9000000
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0e2ed792a5988304c82e86a671d181d9
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7ba0436909058c54fb6203180daf8377
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 55409975b480666448b276c21d9aeb3d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 686713d64f5e0dd4585b6a3d00fb25a3
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 60a7aefb54ade4a41904977685930f3d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3fe6587798a1a3a47a568b0dea6ffbf4
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 448433a9cacf21e428d4e29f81741ad2
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: fe55ab7fad6cd644db9bd2b6183fe180
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e7ef39b0eacfc6940a8c7e1f20ba97e7
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -31,4 +31,3 @@ MonoBehaviour:
manaCost: 0
maxGemSlotCount: 2
castStartEffects: []
effects: []

View File

@@ -34,5 +34,7 @@ MonoBehaviour:
manaCost: 10
maxGemSlotCount: 2
castStartEffects: []
effects:
- {fileID: 11400000, guid: f0aaa98426be3d44082a386c00ea9aea, type: 2}
triggeredEffects:
- triggerIndex: 0
effects:
- {fileID: 11400000, guid: 4e6ed26d4cd68a9d3f45ad5f38da5190, type: 2}

View File

@@ -31,4 +31,3 @@ MonoBehaviour:
manaCost: 0
maxGemSlotCount: 2
castStartEffects: []
effects: []

View File

@@ -30,6 +30,5 @@ MonoBehaviour:
cooldown: 8
manaCost: 15
maxGemSlotCount: 2
castStartEffects: []
effects:
- {fileID: 11400000, guid: 91e08eac488e96b4797dd113dddb78ec, type: 2}
castStartEffects:
- {fileID: 11400000, guid: 27c0fd82314471ff7b0ceb85fefc9dcf, type: 2}

View File

@@ -38,7 +38,7 @@ MonoBehaviour:
channelDuration: 3
channelTickInterval: 0.5
channelTickEffects:
- {fileID: 11400000, guid: 958fe7b9b5d33bb4d83303d3478756ba, type: 2}
- {fileID: 11400000, guid: 5439a9a24502924f6302c2493e61e527, type: 2}
channelEndEffects: []
channelVfxPrefab: {fileID: 1062685050423962, guid: 75ec5047abb8242419c33baf6ca45ca8, type: 3}
channelVfxMountPath: CastPoint

View File

@@ -30,6 +30,5 @@ MonoBehaviour:
cooldown: 10
manaCost: 15
maxGemSlotCount: 2
castStartEffects: []
effects:
- {fileID: 11400000, guid: 65ed1eabc2fb73d43b86230317222608, type: 2}
castStartEffects:
- {fileID: 11400000, guid: 7fc2b1c9c7ff0fe08f01821e6b3e11a9, type: 2}

View File

@@ -30,6 +30,5 @@ MonoBehaviour:
cooldown: 30
manaCost: 30
maxGemSlotCount: 2
castStartEffects: []
effects:
- {fileID: 11400000, guid: a0777ce154a0edd4ab3936e53205ba28, type: 2}
castStartEffects:
- {fileID: 11400000, guid: 64ec4bc26f0346b5fa114255eacbfcdf, type: 2}

View File

@@ -31,5 +31,7 @@ MonoBehaviour:
manaCost: 6
maxGemSlotCount: 2
castStartEffects: []
effects:
- {fileID: 11400000, guid: 07a1db9cf2057fa4889d27ff699c490b, type: 2}
triggeredEffects:
- triggerIndex: 0
effects:
- {fileID: 11400000, guid: 3c24de1bceb5ccfc9385385e5c699557, type: 2}

View File

@@ -36,7 +36,7 @@ MonoBehaviour:
channelDuration: 2.5
channelTickInterval: 0.5
channelTickEffects:
- {fileID: 11400000, guid: 3c87c068bc01da443bbb6e89eaaceb18, type: 2}
- {fileID: 11400000, guid: c4a8062454924a3fd863efd0b8479e0a, type: 2}
channelEndEffects: []
channelVfxPrefab: {fileID: 100100000, guid: b9aac1c232ed68c44be97372b7fc6914, type: 3}
channelVfxMountPath: CastPoint

View File

@@ -31,5 +31,7 @@ MonoBehaviour:
manaCost: 10
maxGemSlotCount: 2
castStartEffects: []
effects:
- {fileID: 11400000, guid: 300d73daaa4a93044ac7e19585b06316, type: 2}
triggeredEffects:
- triggerIndex: 0
effects:
- {fileID: 11400000, guid: d40b44390a329caf7f769f953be34b3e, type: 2}

View File

@@ -31,6 +31,7 @@ MonoBehaviour:
manaCost: 10
maxGemSlotCount: 2
castStartEffects: []
effects:
- {fileID: 11400000, guid: a6563db8afce56744b6d9011f7da33d1, type: 2}
- {fileID: 11400000, guid: 29608765f5e1e084aadd30c4d1dfab16, type: 2}
triggeredEffects:
- triggerIndex: 0
effects:
- {fileID: 11400000, guid: 088548d47982b87a545ce5f5b1ab60b7, type: 2}

View File

@@ -32,5 +32,3 @@ MonoBehaviour:
manaCost: 10
maxGemSlotCount: 2
castStartEffects: []
effects:
- {fileID: 11400000, guid: c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6, type: 2}

View File

@@ -32,5 +32,3 @@ MonoBehaviour:
manaCost: 12
maxGemSlotCount: 2
castStartEffects: []
effects:
- {fileID: 11400000, guid: f3a7b1c2d4e5f6a8b9c0d1e2f3a4b5c6, type: 2}

View File

@@ -18,7 +18,8 @@ MonoBehaviour:
skillRole: 1
activationType: 1
baseTypes: 1
animationClips: []
animationClips:
- {fileID: 7400000, guid: 60a7aefb54ade4a41904977685930f3d, type: 2}
animationSpeed: 1
useRootMotion: 0
ignoreRootMotionY: 1
@@ -31,6 +32,13 @@ MonoBehaviour:
manaCost: 15
maxGemSlotCount: 2
castStartEffects: []
effects:
- {fileID: 11400000, guid: a99c0e3badadb474e91d173e78478af4, type: 2}
- {fileID: 11400000, guid: eabae38b59d43b940af4a05940e71ef4, type: 2}
triggeredEffects: []
isChanneling: 0
channelDuration: 3
channelTickInterval: 0.5
channelTickEffects: []
channelEndEffects: []
channelVfxPrefab: {fileID: 0}
channelVfxMountPath:
channelVfxLengthScale: 1
channelVfxWidthScale: 1

View File

@@ -31,5 +31,3 @@ MonoBehaviour:
manaCost: 8
maxGemSlotCount: 2
castStartEffects: []
effects:
- {fileID: 11400000, guid: 94d1e7f22bfd24d4d827d52f83c18685, type: 2}

View File

@@ -18,7 +18,9 @@ MonoBehaviour:
skillRole: 1
activationType: 1
baseTypes: 1
animationClips: []
animationClips:
- {fileID: 7400000, guid: 3fe6587798a1a3a47a568b0dea6ffbf4, type: 2}
- {fileID: 7400000, guid: 448433a9cacf21e428d4e29f81741ad2, type: 2}
animationSpeed: 1
useRootMotion: 1
ignoreRootMotionY: 1
@@ -31,6 +33,13 @@ MonoBehaviour:
manaCost: 15
maxGemSlotCount: 2
castStartEffects: []
effects:
- {fileID: 11400000, guid: cdb2092bc74fa35408cb093cd24fba82, type: 2}
- {fileID: 11400000, guid: ab86efb2934c18b4598e2fa5b6ccf648, type: 2}
triggeredEffects: []
isChanneling: 0
channelDuration: 3
channelTickInterval: 0.5
channelTickEffects: []
channelEndEffects: []
channelVfxPrefab: {fileID: 0}
channelVfxMountPath:
channelVfxLengthScale: 1
channelVfxWidthScale: 1

View File

@@ -33,5 +33,7 @@ MonoBehaviour:
manaCost: 5
maxGemSlotCount: 2
castStartEffects: []
effects:
- {fileID: 11400000, guid: e23fca57309ab2b4faa5c380118cd07e, type: 2}
triggeredEffects:
- triggerIndex: 0
effects:
- {fileID: 11400000, guid: 0a79e4690166da35e8582d20ec0e9308, type: 2}

View File

@@ -18,7 +18,8 @@ MonoBehaviour:
skillRole: 1
activationType: 1
baseTypes: 1
animationClips: []
animationClips:
- {fileID: 7400000, guid: fe55ab7fad6cd644db9bd2b6183fe180, type: 2}
animationSpeed: 1
useRootMotion: 0
ignoreRootMotionY: 1
@@ -31,6 +32,22 @@ MonoBehaviour:
manaCost: 10
maxGemSlotCount: 2
castStartEffects: []
effects:
- {fileID: 11400000, guid: 5c8977946ac095044961f0b2645210c3, type: 2}
- {fileID: 11400000, guid: 06e16e53f7d1a5e4783e2ffa4d4ec950, type: 2}
triggeredEffects:
- triggerIndex: 0
effects:
- {fileID: 11400000, guid: 63a64e7bf66816c0e8d2a02ae912b03c, type: 2}
- triggerIndex: 1
effects:
- {fileID: 11400000, guid: 749d331dcc55c6408f07dc70165193ac, type: 2}
- triggerIndex: 2
effects:
- {fileID: 11400000, guid: b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7, type: 2}
isChanneling: 0
channelDuration: 3
channelTickInterval: 0.5
channelTickEffects: []
channelEndEffects: []
channelVfxPrefab: {fileID: 0}
channelVfxMountPath:
channelVfxLengthScale: 1
channelVfxWidthScale: 1

View File

@@ -34,5 +34,7 @@ MonoBehaviour:
manaCost: 5
maxGemSlotCount: 2
castStartEffects: []
effects:
- {fileID: 11400000, guid: a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4, type: 2}
triggeredEffects:
- triggerIndex: 0
effects:
- {fileID: 11400000, guid: a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6, type: 2}

View File

@@ -18,7 +18,8 @@ MonoBehaviour:
skillRole: 1
activationType: 1
baseTypes: 17
animationClips: []
animationClips:
- {fileID: 7400000, guid: e7ef39b0eacfc6940a8c7e1f20ba97e7, type: 2}
animationSpeed: 1
useRootMotion: 1
ignoreRootMotionY: 1
@@ -31,6 +32,16 @@ MonoBehaviour:
manaCost: 8
maxGemSlotCount: 2
castStartEffects: []
effects:
- {fileID: 11400000, guid: a62b755095eb8904a9c5f72e89b18458, type: 2}
- {fileID: 11400000, guid: ed7044f0b4d4e7f479aecc4f29ce59fe, type: 2}
triggeredEffects:
- triggerIndex: 0
effects:
- {fileID: 11400000, guid: 59b8b33b725bbaec1f0fdedb4293afba, type: 2}
isChanneling: 0
channelDuration: 3
channelTickInterval: 0.5
channelTickEffects: []
channelEndEffects: []
channelVfxPrefab: {fileID: 0}
channelVfxMountPath:
channelVfxLengthScale: 1
channelVfxWidthScale: 1

View File

@@ -34,5 +34,7 @@ MonoBehaviour:
manaCost: 5
maxGemSlotCount: 2
castStartEffects: []
effects:
- {fileID: 11400000, guid: a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4, type: 2}
triggeredEffects:
- triggerIndex: 0
effects:
- {fileID: 11400000, guid: 7b19e612521f80e5cc0f0c87ad3aeceb, type: 2}

View File

@@ -0,0 +1,28 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 58efb3c775496fa40b801b21127a011e, type: 3}
m_Name: "Data_SkillEffect_Player_\uD55C\uC190_\uC5F0\uC18D\uBCA0\uAE30_2_\uB370\uBBF8\uC9C0"
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.DamageEffect
targetType: 1
targetTeam: 0
areaCenter: 0
areaShape: 1
targetLayers:
serializedVersion: 2
m_Bits: 4294967295
areaRadius: 3
fanOriginDistance: 0
fanRadius: 3
fanHalfAngle: 45
baseDamage: 10
damageType: 0
statScaling: 1

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,28 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 58efb3c775496fa40b801b21127a011e, type: 3}
m_Name: "Data_SkillEffect_Player_\uD55C\uC190_\uC62C\uB824\uBCA0\uAE30_0_\uB370\uBBF8\uC9C0"
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.DamageEffect
targetType: 1
targetTeam: 0
areaCenter: 0
areaShape: 1
targetLayers:
serializedVersion: 2
m_Bits: 4294967295
areaRadius: 3
fanOriginDistance: 0
fanRadius: 3
fanHalfAngle: 45
baseDamage: 10
damageType: 0
statScaling: 1

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant: