Files
2nd/10_Wiki/Topics/AI_and_ML/에셋 재사용(Asset Reuse).md
T
Antigravity Agent f8b21af4be Wiki cleanup: error-doc removal, dedup merge, link normalization
10_Wiki/Topics 대규모 정리:
- 오류 캡처/미완성 stub 문서 227개 제거
- 교차폴더 중복 43클러스터 병합 (63파일 → redirect)
- 링크명 정규화: 깨진 링크 수정·redirect 직결·개념 매핑 ~2,400건
- 카테고리 MOC 6개 신규 생성
- Graph 섹션 미해결 related-keyword 링크 10,058건 제거

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 23:52:15 +09:00

5.4 KiB
Raw Blame History

id, title, category, status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, verification_status, tags, raw_sources, last_reinforced, github_commit, tech_stack
id title category status canonical_id aliases duplicate_of source_trust_level confidence_score verification_status tags raw_sources last_reinforced github_commit tech_stack
wiki-2026-0508-에셋-재사용-asset-reuse 에셋 재사용(Asset Reuse) 10_Wiki/Topics verified self
Asset Reuse
Asset Library
모듈러 에셋
none A 0.9 applied
gamedev
assets
pipeline
modularity
optimization
2026-05-10 pending
language framework
gamedev unity-unreal-godot

에셋 재사용(Asset Reuse)

매 한 줄

"매 한 번 만든 에셋은 100번 사용된다". 게임/콘텐츠 production 의 cost curve 를 평탄화하는 매 가장 강력한 lever — modular kit, prefab variant, material instance, atlas/trim sheet 의 조합으로 art budget 을 5-10x 확장할 수 있다. 2026 의 AI gen pipeline 도 결국 reusable seed asset 으로 수렴.

매 핵심

매 reuse 의 layer

  • Geometry: kitbash, modular wall, trim sheet, tileable mesh.
  • Material: master material + parameter, layered shader, texture atlas.
  • Animation: shared rig, retargeting, additive layer, montage.
  • Audio: oneshot pool, granular synth, randomized variation.
  • VFX: parameterized particle template, shader-based effect.

매 modular kit 원칙

  • Grid snap: 1m / 2m / 4m 의 standard pivot.
  • Trim sheet UV: shared 2K texture 로 100+ pieces.
  • Material slot consistency: 같은 master material + param.
  • Naming: SM_Wall_2m_A, M_StoneBrick_Inst_Mossy.

매 응용

  1. Open-world building 의 modular architecture.
  2. Character outfit 의 mix-and-match layered system.
  3. AI image gen 의 character LoRA + style LoRA 의 조합.

💻 패턴

Trim sheet UV layout

2048×2048 trim sheet
├─ 0.00.25 v: stone trim
├─ 0.250.5 v: wood trim
├─ 0.50.75 v: metal trim
└─ 0.751.0 v: tileable wall
→ 50+ pieces share 1 texture, 1 draw call

Unreal Material Instance

// Master Material exposes parameters
ScalarParameter "Roughness" default 0.5
VectorParameter "BaseColorTint" default (1,1,1,1)
TextureParameter "BaseColorMap" default T_Default

// Instance overrides only what differs
MI_Stone_Mossy:
  BaseColorTint = (0.7, 0.9, 0.6, 1)
  Roughness = 0.8
  BaseColorMap = T_Stone_Albedo

Unity Prefab Variant

// Base Prefab: Building_Module_Wall.prefab
// Variant: Building_Module_Wall_Window.prefab
//   - Inherits all components
//   - Overrides: adds WindowFrame child
//   - Overrides: Material slot 1 = M_Glass

// Code-side: spawn variant
var wall = PrefabUtility.InstantiatePrefab(wallVariant) as GameObject;

GPU instancing

// vertex shader — per-instance transform
layout(location = 5) in mat4 instanceMatrix;
layout(location = 9) in vec4 instanceColor;

void main() {
    gl_Position = projection * view * instanceMatrix * vec4(aPos, 1.0);
    vColor = instanceColor;
}
// → 10000 trees, 1 draw call

Sprite atlas (2D)

{
  "frames": {
    "hero_idle_0": { "frame": {"x":0,"y":0,"w":64,"h":64} },
    "hero_idle_1": { "frame": {"x":64,"y":0,"w":64,"h":64} },
    "hero_run_0":  { "frame": {"x":0,"y":64,"w":64,"h":64} }
  },
  "meta": { "image": "hero.png", "size": {"w":1024,"h":1024} }
}

Animation retargeting

# Maya / Blender — retarget Mixamo to custom rig
source_rig = "Mixamo_Y_Bot"
target_rig = "MyHero_Skeleton"

bone_map = {
    "mixamorig:Hips": "pelvis",
    "mixamorig:Spine": "spine_01",
    "mixamorig:LeftArm": "upperarm_l",
    # ...
}
retarget(source_rig, target_rig, bone_map, anim_clip)
# 1 anim → N characters

AI gen 의 seed reuse

# Stable Diffusion / FLUX — same character LoRA, vary scene
from diffusers import FluxPipeline
pipe = FluxPipeline.from_pretrained("black-forest-labs/FLUX.1-dev")
pipe.load_lora_weights("./hero_lora.safetensors")

scenes = ["forest at dusk", "neon alley", "snowy peak"]
for s in scenes:
    img = pipe(f"hero character, {s}", generator=torch.Generator().manual_seed(42)).images[0]
# → consistent character across scenes

매 결정 기준

상황 Approach
같은 mesh, 다른 material Material Instance
같은 mesh, 다른 transform GPU Instancing
비슷한 변형 prefab Prefab Variant
50+ small textures Atlas / Trim sheet
character anim library Retarget shared lib
AI generated assets LoRA + seed lock

기본값: master material + instance, modular grid kit, shared atlas.

🔗 Graph

🤖 LLM 활용

언제: kit naming convention 작성, material parameter schema, prefab variant tree planning, asset audit checklist. 언제 X: hero asset 의 unique sculpt — handcraft 가 정답.

안티패턴

  • Copy-paste duplication: 매 새 변형마다 mesh duplicate — texture memory blowup.
  • No naming convention: wall_01_final_FINAL_v3.fbx 의 chaos.
  • Atlas without padding: bleeding artifact at mip levels.
  • Over-modularity: 0.5m grid 의 piece 가 너무 많아 매 build cost 증가.

🧪 검증 / 중복

  • Verified (Unreal Engine 5.4 docs, Unity 6 manual, GDC asset pipeline talks 2024-2025).
  • 신뢰도 A.

🕓 Changelog

날짜 변경
2026-05-08 Phase 1
2026-05-10 Manual cleanup — modular asset reuse 의 production patterns.