chore: Assets 디렉토리 구조 정리 및 네이밍 컨벤션 적용

- Assets/_Game/ 하위로 게임 에셋 통합
- External/ 패키지 벤더별 분류 (Synty, Animations, UI)
- 에셋 네이밍 컨벤션 확립 및 적용
  (Data_Skill_, Data_SkillEffect_, Prefab_, Anim_, Model_, BT_ 등)
- pre-commit hook으로 네이밍 컨벤션 자동 검사 추가
- RESTRUCTURE_CHECKLIST.md 작성

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-16 19:08:27 +09:00
parent 309bf5f48b
commit c265f980db
17251 changed files with 2630777 additions and 206 deletions

View File

@@ -0,0 +1,23 @@
// Copyright (c) 2024 Synty Studios Limited. All rights reserved.
//
// Use of this software is subject to the terms and conditions of the Synty Studios End User Licence Agreement (EULA)
// available at: https://syntystore.com/pages/end-user-licence-agreement
//
// For additional details, see the LICENSE.MD file bundled with this software.
using System;
namespace Synty.SidekickCharacters.Serialization
{
[Serializable]
public class SerializedBlendShapeValues
{
public float BodyTypeValue { get; set; } = 50;
public float BodySizeValue { get; set; } = 0;
public float MuscleValue { get; set; } = 50;
public SerializedBlendShapeValues()
{
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 3c17989085e86534ba82cb3778585e92
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,27 @@
// Copyright (c) 2024 Synty Studios Limited. All rights reserved.
//
// Use of this software is subject to the terms and conditions of the Synty Studios End User Licence Agreement (EULA)
// available at: https://syntystore.com/pages/end-user-licence-agreement
//
// For additional details, see the LICENSE.MD file bundled with this software.
using System;
using System.Collections.Generic;
namespace Synty.SidekickCharacters.Serialization
{
[Serializable]
public class SerializedCharacter
{
public string Name { get; set; }
public int Species { get; set; }
public List<SerializedPart> Parts { get; set; }
public SerializedColorSet ColorSet { get; set; }
public List<SerializedColorRow> ColorRows { get; set; }
public SerializedBlendShapeValues BlendShapes { get; set; } = new SerializedBlendShapeValues();
public SerializedCharacter()
{
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: cd00609b14276004187234e8b51764a4
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,59 @@
// Copyright (c) 2024 Synty Studios Limited. All rights reserved.
//
// Use of this software is subject to the terms and conditions of the Synty Studios End User Licence Agreement (EULA)
// available at: https://syntystore.com/pages/end-user-licence-agreement
//
// For additional details, see the LICENSE.MD file bundled with this software.
using Synty.SidekickCharacters.Database;
using Synty.SidekickCharacters.Database.DTO;
using System;
namespace Synty.SidekickCharacters.Serialization
{
[Serializable]
public class SerializedColorRow
{
public int ColorProperty { get; set; }
public string MainColor { get; set; }
public string Metallic { get; set; }
public string Smoothness { get; set; }
public string Reflection { get; set; }
public string Emission { get; set; }
public string Opacity { get; set; }
// Empty constructor for serialization purposes.
public SerializedColorRow()
{
}
public SerializedColorRow(SidekickColorRow row)
{
ColorProperty = row.PtrColorProperty;
MainColor = row.MainColor;
Metallic = row.Metallic;
Smoothness = row.Smoothness;
Reflection = row.Reflection;
Emission = row.Emission;
Opacity = row.Opacity;
}
public SidekickColorRow CreateSidekickColorRow(DatabaseManager db, SidekickColorSet set)
{
SidekickColorProperty property = SidekickColorProperty.GetByID(db, ColorProperty);
return new SidekickColorRow
{
ID = -1,
ColorSet = set,
ColorProperty = property,
MainColor = MainColor,
Metallic = Metallic,
Smoothness = Smoothness,
Reflection = Reflection,
Emission = Emission,
Opacity = Opacity
};
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 19f55ea79c125694ea4f0d358472d75b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,59 @@
// Copyright (c) 2024 Synty Studios Limited. All rights reserved.
//
// Use of this software is subject to the terms and conditions of the Synty Studios End User Licence Agreement (EULA)
// available at: https://syntystore.com/pages/end-user-licence-agreement
//
// For additional details, see the LICENSE.MD file bundled with this software.
using Synty.SidekickCharacters.Database;
using Synty.SidekickCharacters.Database.DTO;
using System;
namespace Synty.SidekickCharacters.Serialization
{
[Serializable]
public class SerializedColorSet
{
public int Species { get; set; }
public string Name { get; set; }
public string SourceColorPath { get; set; }
public string SourceMetallicPath { get; set; }
public string SourceSmoothnessPath { get; set; }
public string SourceReflectionPath { get; set; }
public string SourceEmissionPath { get; set; }
public string SourceOpacityPath { get; set; }
public SerializedColorSet()
{
}
public void PopulateFromSidekickColorSet(SidekickColorSet colorSet, SidekickSpecies defaultSpecies)
{
Species = colorSet.Species?.ID ?? defaultSpecies.ID;
Name = colorSet.Name;
SourceColorPath = colorSet.SourceColorPath;
SourceMetallicPath = colorSet.SourceMetallicPath;
SourceSmoothnessPath = colorSet.SourceSmoothnessPath;
SourceReflectionPath = colorSet.SourceReflectionPath;
SourceEmissionPath = colorSet.SourceEmissionPath;
SourceOpacityPath = colorSet.SourceOpacityPath;
}
public SidekickColorSet CreateSidekickColorSet(DatabaseManager db)
{
SidekickSpecies species = SidekickSpecies.GetByID(db, Species);
return new SidekickColorSet
{
ID = -1,
Species = species,
Name = Name,
SourceColorPath = SourceColorPath,
SourceMetallicPath = SourceMetallicPath,
SourceSmoothnessPath = SourceSmoothnessPath,
SourceReflectionPath = SourceReflectionPath,
SourceEmissionPath = SourceEmissionPath,
SourceOpacityPath = SourceOpacityPath
};
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: c962ddf0eef8ad649b130eadd0f4b1a7
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,32 @@
// Copyright (c) 2024 Synty Studios Limited. All rights reserved.
//
// Use of this software is subject to the terms and conditions of the Synty Studios End User Licence Agreement (EULA)
// available at: https://syntystore.com/pages/end-user-licence-agreement
//
// For additional details, see the LICENSE.MD file bundled with this software.
using Synty.SidekickCharacters.Enums;
using System;
namespace Synty.SidekickCharacters.Serialization
{
[Serializable]
public class SerializedPart
{
public string Name { get; set; }
public CharacterPartType PartType { get; set; }
public string PartVersion { get; set; }
public SerializedPart()
{
}
public SerializedPart(string name, CharacterPartType partType, string partVersion)
{
Name = name;
PartType = partType;
PartVersion = partVersion;
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: fcbde8c045bfff5408e76a3fa962b09a
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: