mesh-avatar 0.4.0 → 0.6.0

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.
@@ -32,6 +32,37 @@ export interface Accessory {
32
32
  minRed: number;
33
33
  };
34
34
  }
35
+ /** Optional garment that swings with the body (for example a skirt). */
36
+ export interface ClothTuning {
37
+ responseGain?: number;
38
+ /** Display-only exaggeration of link angles relative to the uppermost link. */
39
+ tierGain?: number;
40
+ /** Damping ratio multiplier for modes above the lowest mode (default 1). */
41
+ highModeDamping?: number;
42
+ swing: number;
43
+ stiffness: number;
44
+ damping: number;
45
+ follow: number;
46
+ cohesion: number;
47
+ wind: number;
48
+ max: number;
49
+ }
50
+ export interface Cloth extends Partial<ClothTuning> {
51
+ /** Physical image scale in millimetres per source pixel; inferred if omitted. */
52
+ scale?: number;
53
+ name: string;
54
+ outline: Point[];
55
+ waist: Point[];
56
+ hem: Point[];
57
+ /** Ordered waist-to-hem polylines; columns follow their source arc lengths. */
58
+ seams?: Point[][];
59
+ /** Ordered cross-column seam lines; each defines a pendulum joint. */
60
+ tiers?: Point[][];
61
+ columns?: number;
62
+ rows?: number;
63
+ behind?: boolean;
64
+ parent?: string;
65
+ }
35
66
  export interface Hand {
36
67
  outline: Point[];
37
68
  jaw: Point[];
@@ -49,6 +80,41 @@ export interface Hand {
49
80
  fingerYBand: Band;
50
81
  pinBand: Band;
51
82
  }
83
+ /** A hanging arm separated from the body by a transparent gap. */
84
+ export interface Arm {
85
+ shoulder: Point;
86
+ elbow: Point;
87
+ wrist: Point;
88
+ split: Point[];
89
+ }
90
+ /** Optional two-bone arms. Left/right refer to the image; amounts are degrees. */
91
+ export interface Arms {
92
+ left: Arm;
93
+ right: Arm;
94
+ swing?: number;
95
+ bend?: number;
96
+ inward?: number;
97
+ }
98
+ export interface Leg {
99
+ hip: Point;
100
+ knee: Point;
101
+ ankle: Point;
102
+ }
103
+ /** Optional planted-foot weight transfer. Left/right refer to the image. */
104
+ export interface Legs {
105
+ spine?: number;
106
+ bob?: number;
107
+ /** Maximum pelvis yaw in degrees, 0..15; absent/zero preserves the old projection. */
108
+ twist?: number;
109
+ pelvis: Point;
110
+ shift: number;
111
+ tilt: number;
112
+ bend: number;
113
+ band: Band;
114
+ left: Leg;
115
+ right: Leg;
116
+ split: Point[];
117
+ }
52
118
  export interface Rig {
53
119
  version: 1;
54
120
  image: {
@@ -72,6 +138,10 @@ export interface Rig {
72
138
  rollBand: Band;
73
139
  chest: Ellipse;
74
140
  shoulders: Ellipse[];
141
+ hip?: {
142
+ shift: number;
143
+ band: Band;
144
+ };
75
145
  };
76
146
  face: Record<'nose' | 'mouth' | 'eyeA' | 'eyeB' | 'earL' | 'earR', Ellipse> & {
77
147
  brow: Ellipse & {
@@ -97,6 +167,9 @@ export interface Rig {
97
167
  strands?: Strand[];
98
168
  accessories?: Accessory[];
99
169
  hand?: Hand;
170
+ cloth?: Cloth[];
171
+ legs?: Legs;
172
+ arms?: Arms;
100
173
  mesh: {
101
174
  baseCell: number;
102
175
  fine: {
@@ -111,10 +184,12 @@ export interface Rig {
111
184
  eyeBallCell: number;
112
185
  eyeCell: number;
113
186
  spriteCell: number;
187
+ clothCell?: number;
114
188
  };
115
189
  view: {
116
190
  padTop: number;
117
191
  padSide: number;
118
192
  gazeCenter?: Point;
193
+ irisTravel?: number;
119
194
  };
120
195
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mesh-avatar",
3
- "version": "0.4.0",
3
+ "version": "0.6.0",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "A browser WebGL runtime for 2D mesh avatars, with .mavatar archive and folder loading.",