refactor(topics): 멀티 에이전트용 지식 재편 — _Common(공통 기본기) + Domain_* 구조
에이전트 8종(대화형/프로그래머 C·S/디자이너/설계자/기획자/QA/PD/PM)에게 [공통 기본 능력 + 롤별 Specialty] 2층으로 지식을 주입하기 위한 재분류. 문서 내용·포맷은 무수정, 폴더 이동만 (6,372개 문서 수 보존 확인). - Topic_Programming → Domain_Programming (내부 구조 보존) - Topic_Graphic → Domain_Design - Topic_Business → Domain_Product - Topic_General → Domain_General - _Common 신설: Math(구 Topic_Math_Specialty), Reasoning(구 General/From_Thinking & Reasoning), Reasoning_Creativity(구 General/From_창의성), Communication(Poetic_Blog_Writing + From_writing) - 타 도메인의 From_* 폴더는 유지 (출처 표기일 뿐, 이미 도메인에 맞게 분류된 문서) - 빈 폴더 정리 (memory/procedures) - 에이전트→폴더 매핑은 workspace의 .astra/agent-knowledge-map.json (9개 에이전트) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,173 @@
|
||||
---
|
||||
id: wiki-2026-0508-에셋-재사용-asset-reuse
|
||||
title: 에셋 재사용(Asset Reuse)
|
||||
category: 10_Wiki/Topics
|
||||
status: verified
|
||||
canonical_id: self
|
||||
aliases: [Asset Reuse, Asset Library, 모듈러 에셋]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.9
|
||||
verification_status: applied
|
||||
tags: [gamedev, assets, pipeline, modularity, optimization]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-10
|
||||
github_commit: pending
|
||||
tech_stack:
|
||||
language: gamedev
|
||||
framework: 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.0–0.25 v: stone trim
|
||||
├─ 0.25–0.5 v: wood trim
|
||||
├─ 0.5–0.75 v: metal trim
|
||||
└─ 0.75–1.0 v: tileable wall
|
||||
→ 50+ pieces share 1 texture, 1 draw call
|
||||
```
|
||||
|
||||
### Unreal Material Instance
|
||||
```cpp
|
||||
// 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
|
||||
```csharp
|
||||
// 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
|
||||
```glsl
|
||||
// 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)
|
||||
```json
|
||||
{
|
||||
"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
|
||||
```python
|
||||
# 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
|
||||
```python
|
||||
# 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
|
||||
- 부모: [[Asset Pipeline]]
|
||||
- 변형: [[Procedural Generation]]
|
||||
- Adjacent: [[GPU Instancing]] · [[LoRA Fine-tuning]]
|
||||
|
||||
## 🤖 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. |
|
||||
Reference in New Issue
Block a user