@hatiolab/figure-model 0.1.8 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/types.d.ts CHANGED
@@ -24,8 +24,82 @@ export type MaterialPreset = (typeof MATERIAL_PRESETS)[number];
24
24
  * stretch 한 축만 늘어난다. 프레임·벨트·레일
25
25
  * repeat 개수가 늘어난다. 롤러·선반 단 ← 새 geometry 가 생기지 않는다
26
26
  */
27
+ /** What `sizing` means when a part does not say. */
28
+ export declare const DEFAULT_SIZING: "scale";
29
+ /**
30
+ * How many copies one repeat part may expand to.
31
+ *
32
+ * Every copy is a draw call, so an instance stretched far enough would grow
33
+ * without bound and one asset would eat the frame. Past this point the copies
34
+ * are too small to count anyway, so more of them changes nothing on screen.
35
+ *
36
+ * The renderer enforces the same number. It lives here because the report has
37
+ * to predict what the renderer will do -- things-scene used to keep its own
38
+ * copy of it.
39
+ */
40
+ export declare const REPEAT_LIMIT = 100;
27
41
  export declare const SIZING_RULES: readonly ["scale", "fixed", "stretch", "repeat"];
28
42
  export type SizingRule = (typeof SIZING_RULES)[number];
43
+ /**
44
+ * 부품이 한 축에서 기준 상자의 **어느 면을 붙잡나**. 축마다 따로 정한다.
45
+ *
46
+ * scale **아무 면도 안 붙잡는다.** 상자와 함께 비례로 커진다
47
+ * min 아래(또는 왼쪽·뒤) 면에서 잰 거리를 지킨다
48
+ * center 자리는 비례로 따라가고 **크기는 지킨다**
49
+ * max 위(또는 오른쪽·앞) 면에서 잰 거리를 지킨다
50
+ * span **양쪽을 다 붙잡는다.** 가운데가 늘어나 사이를 채운다
51
+ *
52
+ * 붙잡는 면의 수로 읽으면 하나다 — 0 개면 상자와 함께 커지고, 1 개면 그 면에서 잰
53
+ * 거리를 지키고, 2 개면 사이를 채운다. 3D 도구의 나인슬라이스가 하는 일이고 여기서는
54
+ * 그것이 세 축으로 있다.
55
+ *
56
+ * ## `repeat` 의 축에서는 **줄이 어떻게 되는가**를 말한다
57
+ *
58
+ * 같은 「반복」이 두 가지다.
59
+ *
60
+ * 컨베이어의 롤러 길어지면 롤러가 **는다.** 한 칸 간격은 그대로다
61
+ * 셀트레이의 셀 커지면 셀이 **커진다.** 개수는 그 트레이가 몇 셀짜리냐이지
62
+ * 화면에 얼마나 크게 그렸느냐가 아니다
63
+ *
64
+ * 앞의 것이 `center`(줄이 상자를 채운다), 뒤의 것이 `scale`(줄이 상자와 함께 큰다)이다.
65
+ *
66
+ * ## 없던 것을 왜 더하나
67
+ *
68
+ * `sizing` 은 부품의 **크기**가 인스턴스를 어떻게 따라가는지만 말했다. **자리**는
69
+ * 언제나 비례였다. 그래서 시그널 타워를 3 배로 세우면 기둥은 늘어나는데 램프들은
70
+ * 기둥 위 공중으로 흩어졌다 — 저작한 자리 512 가 1536 이 되고, 그 사이의 틈 100 이
71
+ * 300 이 되기 때문이다.
72
+ *
73
+ * 1× foot 0..90 · pole 85..705 · bracket 703..747 · … · cap 1037..1087
74
+ * 3× foot 90..180 · pole 255..2115 · bracket 2153..2197 · … · cap 3161..3211
75
+ *
76
+ * 램프는 상자 안 어디쯤이 아니라 **기둥 꼭대기**에 붙어 있다. 형식에 그 말을 적을
77
+ * 자리가 없었다.
78
+ *
79
+ * ## 적지 않으면 **가까운 면**을 붙잡는다
80
+ *
81
+ * 상자의 위 절반에 저작한 것은 위를, 아래 절반에 저작한 것은 아래를 붙잡는다.
82
+ * 정확히 가운데면 `center` 다. 사람이 램프를 꼭대기 근처에 놓을 때 뜻하는 것이
83
+ * 그것이고, 그래서 표본 열넷 중 어느 것도 이 값을 적지 않고 제대로 선다.
84
+ *
85
+ * `sizing` 이 `'scale'` 인 부품에는 뜻이 없다 — 그 부품은 상자와 함께 커진다.
86
+ */
87
+ export declare const ANCHOR_RULES: readonly ["scale", "min", "center", "max", "span"];
88
+ export type AnchorRule = (typeof ANCHOR_RULES)[number];
89
+ /**
90
+ * 축별 앵커. 적지 않은 축은 `sizing` 이 정한 것을 따른다.
91
+ *
92
+ * **`sizing` 하나로는 못 하는 말이 있어서 있다.** 컨베이어의 데크가 그렇다 —
93
+ * 길이(x)와 폭(z)은 상자를 채우고 두께(y)는 24 mm 그대로여야 한다. `sizing` 은
94
+ * 부품당 하나라 「x 는 채우고 y 는 붙잡는다」를 적을 자리가 없었다.
95
+ *
96
+ * sizing: 'fixed', anchor: { x: 'span', y: 'max', z: 'span' }
97
+ */
98
+ export interface PartAnchor {
99
+ x?: AnchorRule;
100
+ y?: AnchorRule;
101
+ z?: AnchorRule;
102
+ }
29
103
  /**
30
104
  * 디테일 등급 — 이 형상을 얼마나 상세하게 만들 것인지 저작자가 밝히는 값.
31
105
  *
@@ -43,11 +117,30 @@ export declare const DETAIL_LEVELS: readonly ["S", "M", "L"];
43
117
  export type DetailLevel = (typeof DETAIL_LEVELS)[number];
44
118
  /** 등급별 부품 수 상한. */
45
119
  export declare const PART_LIMIT: Record<DetailLevel, number>;
46
- /** 애니메이션 종류. `animation/animations/` 에 있는 것과 같은 집합. */
47
- export declare const ANIMATION_KINDS: readonly ["fade", "heartbeat", "moving", "outline", "rotation", "vibration", "waypoint"];
48
- export type AnimationKind = (typeof ANIMATION_KINDS)[number];
49
- /** 피봇이 없으면 뜻이 달라지는 애니메이션. 회전은 중심이 어디냐로 결과가 완전히 바뀐다. */
50
- export declare const PIVOT_REQUIRED: readonly AnimationKind[];
120
+ /**
121
+ * 채널이 무엇을 움직이나. **glTF 의 `target.path` 그대로다.**
122
+ *
123
+ * `weights` 는 없다 — 모프 타깃이 없는 형식이다.
124
+ */
125
+ export declare const CHANNEL_PATHS: readonly ["translation", "rotation", "scale"];
126
+ export type ChannelPath = (typeof CHANNEL_PATHS)[number];
127
+ /** 키프레임 사이를 어떻게 잇나. glTF 의 `CUBICSPLINE` 은 없다 — 접선을 손으로 적을 형식이 아니다. */
128
+ export declare const INTERPOLATIONS: readonly ["linear", "step"];
129
+ export type Interpolation = (typeof INTERPOLATIONS)[number];
130
+ /**
131
+ * clip 이 어떻게 구동되나.
132
+ *
133
+ * **glTF 에는 없는 항목이다.** glTF 는 재생을 런타임에 맡긴다. 여기서 형식이 말하는
134
+ * 이유는 트윈이 타임라인을 재생하지 않기 때문이다 — 「문 열기 클립을 재생하라」가 아니라
135
+ * 「지금 40% 열려 있다」다.
136
+ *
137
+ * loop 시각이 흐른다. 인스턴스가 주는 값은 **배속**이다. 도는 롤러가 그렇다
138
+ * hold 시각이 멈춰 있다. 인스턴스가 주는 값은 **0~1 위치**다. 열린 정도가 그렇다
139
+ *
140
+ * 같은 clip 이 둘 다 될 수 있지만, 그 자산이 무엇인지는 저작 시점에 정해진다.
141
+ */
142
+ export declare const CLIP_DRIVES: readonly ["loop", "hold"];
143
+ export type ClipDrive = (typeof CLIP_DRIVES)[number];
51
144
  export declare const AXES: readonly ["x", "y", "z"];
52
145
  export type Axis = (typeof AXES)[number];
53
146
  /** 텍스트를 언제 보이나. 표현 수단(sprite·overlay)은 런타임이 고른다. */
@@ -238,18 +331,53 @@ export interface RepeatSpec {
238
331
  */
239
332
  pitch: number;
240
333
  }
334
+ /** 한 시각의 값. glTF sampler 의 input 한 칸과 output 한 칸이다. */
335
+ export interface Keyframe {
336
+ /** 시각(초). 0 이상이고 **오름차순**이어야 한다. */
337
+ at: number;
338
+ /**
339
+ * 그 시각의 값. 경로마다 뜻이 다르다.
340
+ *
341
+ * translation 부품 기준 옮김
342
+ * rotation **오일러 도(°)** — `transform.rotation` 과 같은 약속
343
+ * scale 배율. 1 이 제 크기
344
+ */
345
+ value: Vec3;
346
+ }
241
347
  /**
242
- * 애니메이션 포인트.
348
+ * 한 부품의 한 속성을 시간에 따라 움직인다. **glTF 의 channel + sampler 를 합친 것.**
243
349
  *
244
- * `pivot` 을 적지 않으면 회전축이 부품 자기 중심이 된다.
245
- * `threed/real-object-extrude.ts:98` 의 `geometry.center()` 때문이다. 교반 축이
246
- * 몸체 가운데를 돌아야 하면 피봇을 명시해야 한다.
350
+ * glTF 는 채널과 샘플러를 나누어 여러 채널이 한 샘플러를 나눠 쓸 수 있게 한다. 그건
351
+ * 정점 데이터를 아끼려는 장치고, 손으로 적는 형식에서는 한 겹 더 들어갈 뿐이라 합쳤다.
247
352
  */
248
- export interface AnimationPoint {
249
- kind: AnimationKind;
250
- axis?: Axis;
251
- /** 부품 기준 로컬 좌표. `PIVOT_REQUIRED` 종류에는 필수. */
353
+ export interface AnimationChannel {
354
+ /** 어느 부품인가. `FigurePart.name`. **노드 인덱스가 아니다** — 이 형식은 이름으로 가리킨다. */
355
+ target: string;
356
+ path: ChannelPath;
357
+ /**
358
+ * 회전 중심. `rotation` 에서만 뜻이 있고, 부품 기준 로컬이다.
359
+ *
360
+ * **glTF 에는 없다.** 거기서는 부모 노드를 하나 끼워서 중심을 옮긴다. 이 형식의 부품은
361
+ * 겹치지 않으므로 끼울 노드가 없어 여기 둔다. 안 적으면 부품 제 중심이다.
362
+ */
252
363
  pivot?: Vec3;
364
+ /** 안 적으면 `linear`. */
365
+ interpolation?: Interpolation;
366
+ /** **둘 이상**이어야 한다. 하나뿐이면 움직이는 것이 아니라 자세 하나다. */
367
+ keys: Keyframe[];
368
+ }
369
+ /**
370
+ * 움직임 한 벌. **glTF 의 `animations[]` 한 칸이다.**
371
+ *
372
+ * 길이는 적지 않는다 — 마지막 키의 시각이 곧 길이다. 따로 적으면 어긋날 수 있고,
373
+ * 어긋나면 어느 쪽이 맞는지 알 방법이 없다.
374
+ */
375
+ export interface AnimationClip {
376
+ /** **저장되는 식별자다.** 인스턴스가 이 이름으로 구동한다. */
377
+ name: string;
378
+ /** 안 적으면 `loop`. */
379
+ drive?: ClipDrive;
380
+ channels: AnimationChannel[];
253
381
  }
254
382
  /** 텍스트 표현 자리. 무엇을·언제만 정하고 수단은 런타임이 고른다. */
255
383
  export interface LabelSpec {
@@ -264,6 +392,35 @@ export interface PartShape {
264
392
  path?: Point2[];
265
393
  /** 코너 라운드. `rect` · `polygon` 공통. */
266
394
  round?: number;
395
+ /** 속을 판다. `HollowSpec` 참고. */
396
+ hollow?: HollowSpec;
397
+ }
398
+ /**
399
+ * 민 단면의 **속을 판다** — 트레이 · 토트 · 통 · 케이스 · 프레임이 전부 이 모양이다.
400
+ *
401
+ * 없을 때는 바닥판 하나에 벽 넷을 세워 만들었다. 다섯 부품이 드는 것도 문제지만 더
402
+ * 나쁜 것은 **모양이 안 맞는다**는 것이다. 셀트레이의 바닥판은 모서리를 둥글게 깎았는데
403
+ * 벽 넷은 각진 상자라, 네 귀퉁이에서 둥근 것과 각진 것이 만난다.
404
+ *
405
+ * 한 덩어리로 밀면 바깥 테가 한 바퀴 이어지고, 안쪽 테도 같은 반경에서 두께만큼 줄어든
406
+ * 채 따라온다. 벽과 바닥이 맞닿는 자리가 없어져 z-fighting 이 날 자리도 하나 준다.
407
+ *
408
+ * `size` 는 **바깥 치수**다. 판 자리는 그 안쪽이다.
409
+ *
410
+ * ## 왜 프리미티브를 새로 만들지 않았나
411
+ *
412
+ * 「속을 판다」는 상자만의 성질이 아니다. `polygon` 을 파면 U 자 가드 · ㄷ 자 프레임이
413
+ * 같은 규칙으로 나온다. 새 프리미티브를 두면 그 둘이 서로 모르는 두 벌이 된다.
414
+ */
415
+ export interface HollowSpec {
416
+ /** 벽 두께. 안쪽 테는 바깥 테에서 이만큼 들어온다. */
417
+ wall: number;
418
+ /**
419
+ * 바닥 두께. 없으면 벽과 같다.
420
+ *
421
+ * `0` 이면 **위아래가 다 뚫린다** — 통이 아니라 테두리다. 프레임 · 덕트가 그렇다.
422
+ */
423
+ floor?: number;
267
424
  }
268
425
  export interface FigurePart {
269
426
  /**
@@ -278,11 +435,24 @@ export interface FigurePart {
278
435
  /** extrude 계열의 단면. */
279
436
  shape?: PartShape;
280
437
  material: PartMaterial;
281
- /** 상태 색이 연동될 재질 슬롯. 없으면 상태를 표현하지 않는다. */
282
- slot?: MaterialSlot;
438
+ /**
439
+ * 상태 색이 연동될 재질 슬롯. 없으면 상태를 표현하지 않는다.
440
+ *
441
+ * **`slot` 이 아니라 `materialSlot` 이다.** 이 낱말은 스택에서 이미 임자가 있다 —
442
+ * operato-scene 의 `SlotDef` 는 **보유물이 앉는 자리**이고, 그것이 언젠가 이 형식에도
443
+ * 들어온다(`Capacity.get slots()`). 그때 한 형식 안에서 `slot` 이 「재질 인덱스」와
444
+ * 「자재가 앉는 자리」 둘을 뜻하게 된다. 여기는 재질 쪽이므로 그렇게 부른다.
445
+ */
446
+ materialSlot?: MaterialSlot;
283
447
  sizing?: SizingRule;
448
+ /**
449
+ * 어느 면을 붙잡나. 적지 않은 축은 **가까운 면**이다(`ANCHOR_ENDS` 참고).
450
+ *
451
+ * `sizing` 이 정한 것을 축마다 덮어쓴다. `sizing: 'stretch'` 는 가장 긴 축에
452
+ * `'span'` 을 넣는 짧은 표기이고, 여기 적으면 그것이 이긴다.
453
+ */
454
+ anchor?: PartAnchor;
284
455
  repeat?: RepeatSpec;
285
- animation?: AnimationPoint;
286
456
  label?: LabelSpec;
287
457
  }
288
458
  /** 저작 결과. 편집 가능한 원본 데이터. */
@@ -301,6 +471,13 @@ export interface FigureSource {
301
471
  /** StyleKit 참조. 팔레트·분할 수·그리드·등급을 한 번에 받는다. */
302
472
  styleKit?: string;
303
473
  parts: FigurePart[];
474
+ /**
475
+ * 움직임. **glTF 처럼 부품 바깥에 둔다.**
476
+ *
477
+ * 한 clip 이 부품 여럿을 같이 움직이기 때문이다 — 문 두 짝이 같이 열리는 것이 clip
478
+ * 하나다. 부품 안에 넣으면 그 「같이」를 적을 자리가 없다.
479
+ */
480
+ animations?: AnimationClip[];
304
481
  }
305
482
  /** 청사진 스키마 버전. 형식이 바뀌면 올린다. */
306
483
  export declare const BLUEPRINT_VERSION = 1;
@@ -318,6 +495,8 @@ export interface BlueprintMember {
318
495
  */
319
496
  segments?: number;
320
497
  sizing: SizingRule;
498
+ /** 어느 면을 붙잡나. 원본에 적힌 것만 실린다 — 적지 않은 축은 그리는 쪽이 센다. */
499
+ anchor?: PartAnchor;
321
500
  repeat?: RepeatSpec;
322
501
  shape?: PartShape;
323
502
  /** 이 부품의 삼각형 수 추정. */
@@ -333,18 +512,13 @@ export interface BlueprintGroup {
333
512
  /** MaterialBank 키. */
334
513
  materialKey: string;
335
514
  material: PartMaterial;
336
- slot?: MaterialSlot;
337
- /** 애니메이션 포인트에 연결된 그룹인지. 연결된 그룹은 부품을 하나만 갖는다. */
515
+ materialSlot?: MaterialSlot;
516
+ /** 움직이는 부품이 든 그룹인지. 그런 그룹은 부품을 하나만 갖는다. */
338
517
  animated: boolean;
339
518
  members: BlueprintMember[];
340
519
  }
341
- export interface BlueprintPoint {
342
- /** 어느 부품인가. `FigurePart.name`. */
343
- name: string;
344
- kind: AnimationKind;
345
- axis?: Axis;
346
- pivot?: Vec3;
347
- }
520
+ /** 청사진의 clip. 원본에 적은 것 그대로다. */
521
+ export type BlueprintClip = AnimationClip;
348
522
  export interface BlueprintLabel extends LabelSpec {
349
523
  /** 어느 부품에 붙나. `FigurePart.name`. */
350
524
  at: string;
@@ -365,13 +539,13 @@ export interface Violation {
365
539
  * 처리를 정해야 하는데, 코드가 늘어난 것이 알려지지 않으면 그 대응이 빠진다. 뜻은
366
540
  * `docs/validation.md` 에 있고, 문서와 이 목록이 어긋나면 테스트가 실패한다.
367
541
  */
368
- export declare const ERROR_CODES: readonly ["not-object", "not-finite", "not-positive", "out-of-range", "not-integer", "not-boolean", "not-allowed", "missing-type", "missing-base", "missing-parts", "bad-style-kit", "missing-name", "duplicate-name", "missing-transform", "missing-position", "missing-size", "too-few-segments", "missing-shape-path", "bad-shape-point", "missing-material", "material-unresolvable", "missing-repeat", "missing-axis", "missing-pivot", "missing-surface-ref", "missing-label-name", "missing-label-source"];
542
+ export declare const ERROR_CODES: readonly ["not-object", "not-finite", "not-positive", "out-of-range", "not-integer", "not-boolean", "not-allowed", "missing-type", "missing-base", "missing-parts", "bad-style-kit", "missing-name", "duplicate-name", "missing-transform", "missing-position", "missing-size", "too-few-segments", "missing-shape-path", "bad-shape-point", "hollow-too-thick", "hollow-not-convex", "missing-material", "material-unresolvable", "missing-repeat", "missing-channels", "unknown-channel-target", "too-few-keys", "keys-out-of-order", "missing-surface-ref", "missing-label-name", "missing-label-source"];
369
543
  export type ErrorCode = (typeof ERROR_CODES)[number];
370
544
  /**
371
545
  * 위반 코드 전부. 위반은 컴파일을 막지 않는다 — 저작 화면이 알려 주는 데 쓴다.
372
546
  * 뜻과 한도는 `docs/validation.md` 에 있다.
373
547
  */
374
- export declare const VIOLATION_CODES: readonly ["segments-off-preset", "segments-ignored", "repeat-ignored", "detail-level-missing", "too-many-parts", "too-many-animation-points", "too-many-material-groups", "too-many-transparent", "too-many-surface-textures", "too-many-always-labels"];
548
+ export declare const VIOLATION_CODES: readonly ["segments-off-preset", "segments-ignored", "repeat-ignored", "anchor-ignored", "hollow-ignored", "pivot-ignored", "detail-level-missing", "too-many-parts", "too-many-animated-parts", "too-many-material-groups", "too-many-transparent", "too-many-surface-textures", "too-many-always-labels"];
375
549
  export type ViolationCode = (typeof VIOLATION_CODES)[number];
376
550
  /** 형식·정합성 오류. 이것이 있으면 컴파일할 수 없다. */
377
551
  export interface FigureError {
@@ -392,11 +566,11 @@ export interface FigureBlueprint {
392
566
  detailLevel?: DetailLevel;
393
567
  budget: {
394
568
  triangles: number;
395
- /** 묶음 수 = 재질·슬롯 조합 수 + 애니메이션 포인트 수. **재는 것은 이것이다.** */
569
+ /** 묶음 수 = 재질·슬롯 조합 수 + 움직이는 부품 수. **재는 것은 이것이다.** */
396
570
  groups: number;
397
571
  };
398
572
  groups: BlueprintGroup[];
399
- points: BlueprintPoint[];
573
+ animations: BlueprintClip[];
400
574
  labels: BlueprintLabel[];
401
575
  violations: Violation[];
402
576
  }
@@ -444,8 +618,8 @@ export interface FigureInstanceModel {
444
618
  export declare const LIMITS: {
445
619
  /** 재질·슬롯 조합 수. */
446
620
  readonly materialGroups: 3;
447
- /** 애니메이션 포인트 수. 프레임마다 매트릭스를 갱신한다. */
448
- readonly animationPoints: 2;
621
+ /** 움직이는 부품 수. 프레임마다 매트릭스를 갱신하고, 저마다 단독 묶음이다. */
622
+ readonly animatedParts: 2;
449
623
  /** 투명 재질. 정렬 비용이 크다. */
450
624
  readonly transparentMaterials: 1;
451
625
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -41,7 +41,66 @@ export const MATERIAL_PRESETS = ['default', 'metal', 'glass', 'plastic', 'wood',
41
41
  * stretch 한 축만 늘어난다. 프레임·벨트·레일
42
42
  * repeat 개수가 늘어난다. 롤러·선반 단 ← 새 geometry 가 생기지 않는다
43
43
  */
44
+ /** What `sizing` means when a part does not say. */
45
+ export const DEFAULT_SIZING = 'scale';
46
+ /**
47
+ * How many copies one repeat part may expand to.
48
+ *
49
+ * Every copy is a draw call, so an instance stretched far enough would grow
50
+ * without bound and one asset would eat the frame. Past this point the copies
51
+ * are too small to count anyway, so more of them changes nothing on screen.
52
+ *
53
+ * The renderer enforces the same number. It lives here because the report has
54
+ * to predict what the renderer will do -- things-scene used to keep its own
55
+ * copy of it.
56
+ */
57
+ export const REPEAT_LIMIT = 100;
44
58
  export const SIZING_RULES = ['scale', 'fixed', 'stretch', 'repeat'];
59
+ /**
60
+ * 부품이 한 축에서 기준 상자의 **어느 면을 붙잡나**. 축마다 따로 정한다.
61
+ *
62
+ * scale **아무 면도 안 붙잡는다.** 상자와 함께 비례로 커진다
63
+ * min 아래(또는 왼쪽·뒤) 면에서 잰 거리를 지킨다
64
+ * center 자리는 비례로 따라가고 **크기는 지킨다**
65
+ * max 위(또는 오른쪽·앞) 면에서 잰 거리를 지킨다
66
+ * span **양쪽을 다 붙잡는다.** 가운데가 늘어나 사이를 채운다
67
+ *
68
+ * 붙잡는 면의 수로 읽으면 하나다 — 0 개면 상자와 함께 커지고, 1 개면 그 면에서 잰
69
+ * 거리를 지키고, 2 개면 사이를 채운다. 3D 도구의 나인슬라이스가 하는 일이고 여기서는
70
+ * 그것이 세 축으로 있다.
71
+ *
72
+ * ## `repeat` 의 축에서는 **줄이 어떻게 되는가**를 말한다
73
+ *
74
+ * 같은 「반복」이 두 가지다.
75
+ *
76
+ * 컨베이어의 롤러 길어지면 롤러가 **는다.** 한 칸 간격은 그대로다
77
+ * 셀트레이의 셀 커지면 셀이 **커진다.** 개수는 그 트레이가 몇 셀짜리냐이지
78
+ * 화면에 얼마나 크게 그렸느냐가 아니다
79
+ *
80
+ * 앞의 것이 `center`(줄이 상자를 채운다), 뒤의 것이 `scale`(줄이 상자와 함께 큰다)이다.
81
+ *
82
+ * ## 없던 것을 왜 더하나
83
+ *
84
+ * `sizing` 은 부품의 **크기**가 인스턴스를 어떻게 따라가는지만 말했다. **자리**는
85
+ * 언제나 비례였다. 그래서 시그널 타워를 3 배로 세우면 기둥은 늘어나는데 램프들은
86
+ * 기둥 위 공중으로 흩어졌다 — 저작한 자리 512 가 1536 이 되고, 그 사이의 틈 100 이
87
+ * 300 이 되기 때문이다.
88
+ *
89
+ * 1× foot 0..90 · pole 85..705 · bracket 703..747 · … · cap 1037..1087
90
+ * 3× foot 90..180 · pole 255..2115 · bracket 2153..2197 · … · cap 3161..3211
91
+ *
92
+ * 램프는 상자 안 어디쯤이 아니라 **기둥 꼭대기**에 붙어 있다. 형식에 그 말을 적을
93
+ * 자리가 없었다.
94
+ *
95
+ * ## 적지 않으면 **가까운 면**을 붙잡는다
96
+ *
97
+ * 상자의 위 절반에 저작한 것은 위를, 아래 절반에 저작한 것은 아래를 붙잡는다.
98
+ * 정확히 가운데면 `center` 다. 사람이 램프를 꼭대기 근처에 놓을 때 뜻하는 것이
99
+ * 그것이고, 그래서 표본 열넷 중 어느 것도 이 값을 적지 않고 제대로 선다.
100
+ *
101
+ * `sizing` 이 `'scale'` 인 부품에는 뜻이 없다 — 그 부품은 상자와 함께 커진다.
102
+ */
103
+ export const ANCHOR_RULES = ['scale', 'min', 'center', 'max', 'span'];
45
104
  /**
46
105
  * 디테일 등급 — 이 형상을 얼마나 상세하게 만들 것인지 저작자가 밝히는 값.
47
106
  *
@@ -58,10 +117,27 @@ export const SIZING_RULES = ['scale', 'fixed', 'stretch', 'repeat'];
58
117
  export const DETAIL_LEVELS = ['S', 'M', 'L'];
59
118
  /** 등급별 부품 수 상한. */
60
119
  export const PART_LIMIT = { S: 3, M: 8, L: 20 };
61
- /** 애니메이션 종류. `animation/animations/` 에 있는 것과 같은 집합. */
62
- export const ANIMATION_KINDS = ['fade', 'heartbeat', 'moving', 'outline', 'rotation', 'vibration', 'waypoint'];
63
- /** 피봇이 없으면 뜻이 달라지는 애니메이션. 회전은 중심이 어디냐로 결과가 완전히 바뀐다. */
64
- export const PIVOT_REQUIRED = ['rotation'];
120
+ /**
121
+ * 채널이 무엇을 움직이나. **glTF 의 `target.path` 그대로다.**
122
+ *
123
+ * `weights` 는 없다 — 모프 타깃이 없는 형식이다.
124
+ */
125
+ export const CHANNEL_PATHS = ['translation', 'rotation', 'scale'];
126
+ /** 키프레임 사이를 어떻게 잇나. glTF 의 `CUBICSPLINE` 은 없다 — 접선을 손으로 적을 형식이 아니다. */
127
+ export const INTERPOLATIONS = ['linear', 'step'];
128
+ /**
129
+ * clip 이 어떻게 구동되나.
130
+ *
131
+ * **glTF 에는 없는 항목이다.** glTF 는 재생을 런타임에 맡긴다. 여기서 형식이 말하는
132
+ * 이유는 트윈이 타임라인을 재생하지 않기 때문이다 — 「문 열기 클립을 재생하라」가 아니라
133
+ * 「지금 40% 열려 있다」다.
134
+ *
135
+ * loop 시각이 흐른다. 인스턴스가 주는 값은 **배속**이다. 도는 롤러가 그렇다
136
+ * hold 시각이 멈춰 있다. 인스턴스가 주는 값은 **0~1 위치**다. 열린 정도가 그렇다
137
+ *
138
+ * 같은 clip 이 둘 다 될 수 있지만, 그 자산이 무엇인지는 저작 시점에 정해진다.
139
+ */
140
+ export const CLIP_DRIVES = ['loop', 'hold'];
65
141
  export const AXES = ['x', 'y', 'z'];
66
142
  /** 텍스트를 언제 보이나. 표현 수단(sprite·overlay)은 런타임이 고른다. */
67
143
  export const LABEL_WHENS = ['always', 'zoomed', 'selected', 'abnormal'];
@@ -114,14 +190,18 @@ export const ERROR_CODES = [
114
190
  // 단면
115
191
  'missing-shape-path',
116
192
  'bad-shape-point',
193
+ 'hollow-too-thick',
194
+ 'hollow-not-convex',
117
195
  // 재질
118
196
  'missing-material',
119
197
  'material-unresolvable',
120
198
  // 크기 반응
121
199
  'missing-repeat',
122
200
  // 애니메이션
123
- 'missing-axis',
124
- 'missing-pivot',
201
+ 'missing-channels',
202
+ 'unknown-channel-target',
203
+ 'too-few-keys',
204
+ 'keys-out-of-order',
125
205
  // 예외 표면
126
206
  'missing-surface-ref',
127
207
  // 라벨
@@ -136,9 +216,12 @@ export const VIOLATION_CODES = [
136
216
  'segments-off-preset',
137
217
  'segments-ignored',
138
218
  'repeat-ignored',
219
+ 'anchor-ignored',
220
+ 'hollow-ignored',
221
+ 'pivot-ignored',
139
222
  'detail-level-missing',
140
223
  'too-many-parts',
141
- 'too-many-animation-points',
224
+ 'too-many-animated-parts',
142
225
  'too-many-material-groups',
143
226
  'too-many-transparent',
144
227
  'too-many-surface-textures',
@@ -156,8 +239,8 @@ export const VIOLATION_CODES = [
156
239
  export const LIMITS = {
157
240
  /** 재질·슬롯 조합 수. */
158
241
  materialGroups: 3,
159
- /** 애니메이션 포인트 수. 프레임마다 매트릭스를 갱신한다. */
160
- animationPoints: 2,
242
+ /** 움직이는 부품 수. 프레임마다 매트릭스를 갱신하고, 저마다 단독 묶음이다. */
243
+ animatedParts: 2,
161
244
  /** 투명 재질. 정렬 비용이 크다. */
162
245
  transparentMaterials: 1,
163
246
  /**
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAqBA,OAAO,EAgBL,KAAK,WAAW,EAGhB,KAAK,SAAS,EAEf,MAAM,YAAY,CAAA;AAMnB,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,UAAU,EAAE,SAAS,EAAE,CAAA;CACxB;AA4UD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,cAAc,CAwCxD"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAqBA,OAAO,EAoBL,KAAK,WAAW,EAGhB,KAAK,SAAS,EAEf,MAAM,YAAY,CAAA;AAOnB,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,UAAU,EAAE,SAAS,EAAE,CAAA;CACxB;AAmgBD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,cAAc,CA2CxD"}