reze-engine 0.54.5 → 0.54.7

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.
@@ -1 +1 @@
1
- {"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../../src/graph/presets/body.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE5C,eAAO,MAAM,UAAU,EAAE,WA+FxB,CAAA"}
1
+ {"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../../src/graph/presets/body.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE5C,eAAO,MAAM,UAAU,EAAE,WAuGxB,CAAA"}
@@ -8,6 +8,12 @@ export const BODY_GRAPH = {
8
8
  tags: ["body"],
9
9
  nodes: [
10
10
  { id: "tex", type: "texture" },
11
+ // Base colour: the texture times the PMX material's diffuse. MMD authors
12
+ // tint per MATERIAL rather than per texel — an eyebrow sharing the face
13
+ // atlas is painted once and coloured here — so the diffuse belongs in the
14
+ // base of every look.
15
+ { id: "mat_diffuse", type: "material_diffuse" },
16
+ { id: "tex_base", type: "mix/multiply", inputs: { fac: 1.0 } },
11
17
  { id: "geo", type: "geometry" },
12
18
  { id: "str", type: "shader_to_rgb_diffuse" },
13
19
  { id: "toon", type: "ramp_constant", inputs: { pos0: 0.0, pos1: 0.2966 } },
@@ -59,8 +65,10 @@ export const BODY_GRAPH = {
59
65
  ],
60
66
  links: [
61
67
  { from: { node: "str", socket: "value" }, to: { node: "toon", socket: "fac" } },
62
- { from: { node: "tex", socket: "color" }, to: { node: "shadow_tint", socket: "color" } },
63
- { from: { node: "tex", socket: "color" }, to: { node: "lit_tint", socket: "color" } },
68
+ { from: { node: "tex", socket: "color" }, to: { node: "tex_base", socket: "a" } },
69
+ { from: { node: "mat_diffuse", socket: "color" }, to: { node: "tex_base", socket: "b" } },
70
+ { from: { node: "tex_base", socket: "color" }, to: { node: "shadow_tint", socket: "color" } },
71
+ { from: { node: "tex_base", socket: "color" }, to: { node: "lit_tint", socket: "color" } },
64
72
  { from: { node: "toon", socket: "fac_out" }, to: { node: "toon_color", socket: "fac" } },
65
73
  { from: { node: "shadow_tint", socket: "color" }, to: { node: "toon_color", socket: "a" } },
66
74
  { from: { node: "lit_tint", socket: "color" }, to: { node: "toon_color", socket: "b" } },
@@ -1 +1 @@
1
- {"version":3,"file":"cloth_rough.d.ts","sourceRoot":"","sources":["../../../src/graph/presets/cloth_rough.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE5C,eAAO,MAAM,iBAAiB,EAAE,WAwD/B,CAAA"}
1
+ {"version":3,"file":"cloth_rough.d.ts","sourceRoot":"","sources":["../../../src/graph/presets/cloth_rough.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE5C,eAAO,MAAM,iBAAiB,EAAE,WAgE/B,CAAA"}
@@ -8,6 +8,12 @@ export const CLOTH_ROUGH_GRAPH = {
8
8
  tags: ["cloth_rough"],
9
9
  nodes: [
10
10
  { id: "tex", type: "texture" },
11
+ // Base colour: the texture times the PMX material's diffuse. MMD authors
12
+ // tint per MATERIAL rather than per texel — an eyebrow sharing the face
13
+ // atlas is painted once and coloured here — so the diffuse belongs in the
14
+ // base of every look.
15
+ { id: "mat_diffuse", type: "material_diffuse" },
16
+ { id: "tex_base", type: "mix/multiply", inputs: { fac: 1.0 } },
11
17
  { id: "geo", type: "geometry" },
12
18
  { id: "str", type: "shader_to_rgb_diffuse" },
13
19
  { id: "ramp_008", type: "ramp_constant_aa", inputs: { edge: 0.2966 } },
@@ -34,10 +40,12 @@ export const CLOTH_ROUGH_GRAPH = {
34
40
  links: [
35
41
  { from: { node: "str", socket: "value" }, to: { node: "ramp_008", socket: "fac" } },
36
42
  { from: { node: "ramp_008", socket: "fac_out" }, to: { node: "mix04_fac", socket: "a" } },
37
- { from: { node: "tex", socket: "color" }, to: { node: "dark_tex", socket: "color" } },
43
+ { from: { node: "tex", socket: "color" }, to: { node: "tex_base", socket: "a" } },
44
+ { from: { node: "mat_diffuse", socket: "color" }, to: { node: "tex_base", socket: "b" } },
45
+ { from: { node: "tex_base", socket: "color" }, to: { node: "dark_tex", socket: "color" } },
38
46
  { from: { node: "mix04_fac", socket: "value" }, to: { node: "mix_004", socket: "fac" } },
39
47
  { from: { node: "dark_tex", socket: "color" }, to: { node: "mix_004", socket: "a" } },
40
- { from: { node: "tex", socket: "color" }, to: { node: "mix_004", socket: "b" } },
48
+ { from: { node: "tex_base", socket: "color" }, to: { node: "mix_004", socket: "b" } },
41
49
  { from: { node: "geo", socket: "normal" }, to: { node: "sep_n", socket: "vector" } },
42
50
  { from: { node: "sep_n", socket: "y" }, to: { node: "bevel_clamp", socket: "a" } },
43
51
  { from: { node: "bevel_clamp", socket: "value" }, to: { node: "mix_003", socket: "fac" } },
@@ -51,7 +59,7 @@ export const CLOTH_ROUGH_GRAPH = {
51
59
  { from: { node: "noise", socket: "value" }, to: { node: "noise_ramp", socket: "fac" } },
52
60
  { from: { node: "noise_ramp", socket: "fac_out" }, to: { node: "bump", socket: "height" } },
53
61
  { from: { node: "geo", socket: "normal" }, to: { node: "bump", socket: "normal" } },
54
- { from: { node: "tex", socket: "color" }, to: { node: "principled_base", socket: "color" } },
62
+ { from: { node: "tex_base", socket: "color" }, to: { node: "principled_base", socket: "color" } },
55
63
  { from: { node: "principled_base", socket: "color" }, to: { node: "principled", socket: "base_color" } },
56
64
  { from: { node: "bump", socket: "vector" }, to: { node: "principled", socket: "normal" } },
57
65
  { from: { node: "npr_emit", socket: "color" }, to: { node: "mix_shader_001", socket: "a" } },
@@ -1 +1 @@
1
- {"version":3,"file":"cloth_smooth.d.ts","sourceRoot":"","sources":["../../../src/graph/presets/cloth_smooth.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE5C,eAAO,MAAM,kBAAkB,EAAE,WAgDhC,CAAA"}
1
+ {"version":3,"file":"cloth_smooth.d.ts","sourceRoot":"","sources":["../../../src/graph/presets/cloth_smooth.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE5C,eAAO,MAAM,kBAAkB,EAAE,WAwDhC,CAAA"}
@@ -8,6 +8,12 @@ export const CLOTH_SMOOTH_GRAPH = {
8
8
  tags: ["cloth_smooth"],
9
9
  nodes: [
10
10
  { id: "tex", type: "texture" },
11
+ // Base colour: the texture times the PMX material's diffuse. MMD authors
12
+ // tint per MATERIAL rather than per texel — an eyebrow sharing the face
13
+ // atlas is painted once and coloured here — so the diffuse belongs in the
14
+ // base of every look.
15
+ { id: "mat_diffuse", type: "material_diffuse" },
16
+ { id: "tex_base", type: "mix/multiply", inputs: { fac: 1.0 } },
11
17
  { id: "geo", type: "geometry" },
12
18
  { id: "str", type: "shader_to_rgb_diffuse" },
13
19
  { id: "ramp_008", type: "ramp_constant_aa", inputs: { edge: 0.2966 } },
@@ -31,10 +37,12 @@ export const CLOTH_SMOOTH_GRAPH = {
31
37
  links: [
32
38
  { from: { node: "str", socket: "value" }, to: { node: "ramp_008", socket: "fac" } },
33
39
  { from: { node: "ramp_008", socket: "fac_out" }, to: { node: "mix04_fac", socket: "a" } },
34
- { from: { node: "tex", socket: "color" }, to: { node: "dark_tex", socket: "color" } },
40
+ { from: { node: "tex", socket: "color" }, to: { node: "tex_base", socket: "a" } },
41
+ { from: { node: "mat_diffuse", socket: "color" }, to: { node: "tex_base", socket: "b" } },
42
+ { from: { node: "tex_base", socket: "color" }, to: { node: "dark_tex", socket: "color" } },
35
43
  { from: { node: "mix04_fac", socket: "value" }, to: { node: "mix_004", socket: "fac" } },
36
44
  { from: { node: "dark_tex", socket: "color" }, to: { node: "mix_004", socket: "a" } },
37
- { from: { node: "tex", socket: "color" }, to: { node: "mix_004", socket: "b" } },
45
+ { from: { node: "tex_base", socket: "color" }, to: { node: "mix_004", socket: "b" } },
38
46
  { from: { node: "geo", socket: "normal" }, to: { node: "sep_n", socket: "vector" } },
39
47
  { from: { node: "sep_n", socket: "y" }, to: { node: "bevel_clamp", socket: "a" } },
40
48
  { from: { node: "bevel_clamp", socket: "value" }, to: { node: "mix_003", socket: "fac" } },
@@ -44,7 +52,7 @@ export const CLOTH_SMOOTH_GRAPH = {
44
52
  { from: { node: "mix_003", socket: "color" }, to: { node: "npr_overlay", socket: "a" } },
45
53
  { from: { node: "hue_004", socket: "color" }, to: { node: "npr_overlay", socket: "b" } },
46
54
  { from: { node: "npr_overlay", socket: "color" }, to: { node: "npr_emit", socket: "color" } },
47
- { from: { node: "tex", socket: "color" }, to: { node: "principled_base", socket: "color" } },
55
+ { from: { node: "tex_base", socket: "color" }, to: { node: "principled_base", socket: "color" } },
48
56
  { from: { node: "principled_base", socket: "color" }, to: { node: "principled", socket: "base_color" } },
49
57
  { from: { node: "npr_emit", socket: "color" }, to: { node: "mix_shader_001", socket: "a" } },
50
58
  { from: { node: "principled", socket: "color" }, to: { node: "mix_shader_001", socket: "b" } },
@@ -1 +1 @@
1
- {"version":3,"file":"eye.d.ts","sourceRoot":"","sources":["../../../src/graph/presets/eye.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE5C,eAAO,MAAM,SAAS,EAAE,WAqBvB,CAAA"}
1
+ {"version":3,"file":"eye.d.ts","sourceRoot":"","sources":["../../../src/graph/presets/eye.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE5C,eAAO,MAAM,SAAS,EAAE,WA6BvB,CAAA"}
@@ -12,6 +12,12 @@ export const EYE_GRAPH = {
12
12
  tags: ["eye"],
13
13
  nodes: [
14
14
  { id: "tex", type: "texture" },
15
+ // Base colour: the texture times the PMX material's diffuse. MMD authors
16
+ // tint per MATERIAL rather than per texel — an eyebrow sharing the face
17
+ // atlas is painted once and coloured here — so the diffuse belongs in the
18
+ // base of every look.
19
+ { id: "mat_diffuse", type: "material_diffuse" },
20
+ { id: "tex_base", type: "mix/multiply", inputs: { fac: 1.0 } },
15
21
  {
16
22
  id: "principled",
17
23
  type: "principled",
@@ -21,8 +27,10 @@ export const EYE_GRAPH = {
21
27
  { id: "add", type: "add_shader" },
22
28
  ],
23
29
  links: [
24
- { from: { node: "tex", socket: "color" }, to: { node: "principled", socket: "base_color" } },
25
- { from: { node: "tex", socket: "color" }, to: { node: "emission", socket: "color" } },
30
+ { from: { node: "tex", socket: "color" }, to: { node: "tex_base", socket: "a" } },
31
+ { from: { node: "mat_diffuse", socket: "color" }, to: { node: "tex_base", socket: "b" } },
32
+ { from: { node: "tex_base", socket: "color" }, to: { node: "principled", socket: "base_color" } },
33
+ { from: { node: "tex_base", socket: "color" }, to: { node: "emission", socket: "color" } },
26
34
  { from: { node: "principled", socket: "color" }, to: { node: "add", socket: "a" } },
27
35
  { from: { node: "emission", socket: "color" }, to: { node: "add", socket: "b" } },
28
36
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"face.d.ts","sourceRoot":"","sources":["../../../src/graph/presets/face.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE5C,eAAO,MAAM,UAAU,EAAE,WA6HxB,CAAA"}
1
+ {"version":3,"file":"face.d.ts","sourceRoot":"","sources":["../../../src/graph/presets/face.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE5C,eAAO,MAAM,UAAU,EAAE,WAqIxB,CAAA"}
@@ -11,6 +11,12 @@ export const FACE_GRAPH = {
11
11
  tags: ["face"],
12
12
  nodes: [
13
13
  { id: "tex", type: "texture" },
14
+ // Base colour: the texture times the PMX material's diffuse. MMD authors
15
+ // tint per MATERIAL rather than per texel — an eyebrow sharing the face
16
+ // atlas is painted once and coloured here — so the diffuse belongs in the
17
+ // base of every look.
18
+ { id: "mat_diffuse", type: "material_diffuse" },
19
+ { id: "tex_base", type: "mix/multiply", inputs: { fac: 1.0 } },
14
20
  { id: "geo", type: "geometry" },
15
21
  // ── toon shading ──
16
22
  { id: "str", type: "shader_to_rgb_diffuse" },
@@ -71,8 +77,10 @@ export const FACE_GRAPH = {
71
77
  links: [
72
78
  // toon
73
79
  { from: { node: "str", socket: "value" }, to: { node: "toon", socket: "fac" } },
74
- { from: { node: "tex", socket: "color" }, to: { node: "shadow_tint", socket: "color" } },
75
- { from: { node: "tex", socket: "color" }, to: { node: "lit_tint", socket: "color" } },
80
+ { from: { node: "tex", socket: "color" }, to: { node: "tex_base", socket: "a" } },
81
+ { from: { node: "mat_diffuse", socket: "color" }, to: { node: "tex_base", socket: "b" } },
82
+ { from: { node: "tex_base", socket: "color" }, to: { node: "shadow_tint", socket: "color" } },
83
+ { from: { node: "tex_base", socket: "color" }, to: { node: "lit_tint", socket: "color" } },
76
84
  { from: { node: "toon", socket: "fac_out" }, to: { node: "toon_color", socket: "fac" } },
77
85
  { from: { node: "shadow_tint", socket: "color" }, to: { node: "toon_color", socket: "a" } },
78
86
  { from: { node: "lit_tint", socket: "color" }, to: { node: "toon_color", socket: "b" } },
@@ -1 +1 @@
1
- {"version":3,"file":"hair.d.ts","sourceRoot":"","sources":["../../../src/graph/presets/hair.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE5C,eAAO,MAAM,UAAU,EAAE,WAmExB,CAAA"}
1
+ {"version":3,"file":"hair.d.ts","sourceRoot":"","sources":["../../../src/graph/presets/hair.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE5C,eAAO,MAAM,UAAU,EAAE,WA2ExB,CAAA"}
@@ -15,6 +15,12 @@ export const HAIR_GRAPH = {
15
15
  tags: ["hair"],
16
16
  nodes: [
17
17
  { id: "tex", type: "texture" },
18
+ // Base colour: the texture times the PMX material's diffuse. MMD authors
19
+ // tint per MATERIAL rather than per texel — an eyebrow sharing the face
20
+ // atlas is painted once and coloured here — so the diffuse belongs in the
21
+ // base of every look.
22
+ { id: "mat_diffuse", type: "material_diffuse" },
23
+ { id: "tex_base", type: "mix/multiply", inputs: { fac: 1.0 } },
18
24
  { id: "geo", type: "geometry" },
19
25
  { id: "hs_shadow", type: "hue_sat", inputs: { hue: 0.5, saturation: 1.2, value: 0.5, fac: 1.0 } },
20
26
  { id: "hs_002", type: "hue_sat", inputs: { hue: 0.48, saturation: 1.2, value: 0.7, fac: 1.0 } },
@@ -46,9 +52,11 @@ export const HAIR_GRAPH = {
46
52
  { id: "mix_shader_001", type: "mix_shader", inputs: { fac: 0.2 } },
47
53
  ],
48
54
  links: [
49
- { from: { node: "tex", socket: "color" }, to: { node: "hs_shadow", socket: "color" } },
55
+ { from: { node: "tex", socket: "color" }, to: { node: "tex_base", socket: "a" } },
56
+ { from: { node: "mat_diffuse", socket: "color" }, to: { node: "tex_base", socket: "b" } },
57
+ { from: { node: "tex_base", socket: "color" }, to: { node: "hs_shadow", socket: "color" } },
50
58
  { from: { node: "hs_shadow", socket: "color" }, to: { node: "hs_002", socket: "color" } },
51
- { from: { node: "tex", socket: "color" }, to: { node: "hs_001", socket: "color" } },
59
+ { from: { node: "tex_base", socket: "color" }, to: { node: "hs_001", socket: "color" } },
52
60
  { from: { node: "str", socket: "value" }, to: { node: "ramp_008", socket: "fac" } },
53
61
  { from: { node: "ramp_008", socket: "fac_out" }, to: { node: "mix_004", socket: "fac" } },
54
62
  { from: { node: "hs_002", socket: "color" }, to: { node: "mix_004", socket: "a" } },
@@ -1 +1 @@
1
- {"version":3,"file":"metal.d.ts","sourceRoot":"","sources":["../../../src/graph/presets/metal.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE5C,eAAO,MAAM,WAAW,EAAE,WAoDzB,CAAA"}
1
+ {"version":3,"file":"metal.d.ts","sourceRoot":"","sources":["../../../src/graph/presets/metal.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE5C,eAAO,MAAM,WAAW,EAAE,WA4DzB,CAAA"}
@@ -9,6 +9,12 @@ export const METAL_GRAPH = {
9
9
  tags: ["metal"],
10
10
  nodes: [
11
11
  { id: "tex", type: "texture" },
12
+ // Base colour: the texture times the PMX material's diffuse. MMD authors
13
+ // tint per MATERIAL rather than per texel — an eyebrow sharing the face
14
+ // atlas is painted once and coloured here — so the diffuse belongs in the
15
+ // base of every look.
16
+ { id: "mat_diffuse", type: "material_diffuse" },
17
+ { id: "tex_base", type: "mix/multiply", inputs: { fac: 1.0 } },
12
18
  { id: "geo", type: "geometry" },
13
19
  { id: "tex_tint", type: "hue_sat", inputs: { hue: 0.5, saturation: 1.0, value: 0.800000011920929, fac: 1.0 } },
14
20
  { id: "str", type: "shader_to_rgb_diffuse" },
@@ -32,7 +38,9 @@ export const METAL_GRAPH = {
32
38
  { id: "mix_shader_001", type: "mix_shader", inputs: { fac: 0.6967 } },
33
39
  ],
34
40
  links: [
35
- { from: { node: "tex", socket: "color" }, to: { node: "tex_tint", socket: "color" } },
41
+ { from: { node: "tex", socket: "color" }, to: { node: "tex_base", socket: "a" } },
42
+ { from: { node: "mat_diffuse", socket: "color" }, to: { node: "tex_base", socket: "b" } },
43
+ { from: { node: "tex_base", socket: "color" }, to: { node: "tex_tint", socket: "color" } },
36
44
  { from: { node: "str", socket: "value" }, to: { node: "ramp_008", socket: "fac" } },
37
45
  { from: { node: "ramp_008", socket: "fac_out" }, to: { node: "mix04_fac", socket: "a" } },
38
46
  { from: { node: "tex_tint", socket: "color" }, to: { node: "dark_tex", socket: "color" } },
@@ -1 +1 @@
1
- {"version":3,"file":"stockings.d.ts","sourceRoot":"","sources":["../../../src/graph/presets/stockings.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE5C,eAAO,MAAM,eAAe,EAAE,WA8C7B,CAAA"}
1
+ {"version":3,"file":"stockings.d.ts","sourceRoot":"","sources":["../../../src/graph/presets/stockings.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE5C,eAAO,MAAM,eAAe,EAAE,WAsD7B,CAAA"}
@@ -11,6 +11,12 @@ export const STOCKINGS_GRAPH = {
11
11
  tags: ["stockings"],
12
12
  nodes: [
13
13
  { id: "tex", type: "texture" },
14
+ // Base colour: the texture times the PMX material's diffuse. MMD authors
15
+ // tint per MATERIAL rather than per texel — an eyebrow sharing the face
16
+ // atlas is painted once and coloured here — so the diffuse belongs in the
17
+ // base of every look.
18
+ { id: "mat_diffuse", type: "material_diffuse" },
19
+ { id: "tex_base", type: "mix/multiply", inputs: { fac: 1.0 } },
14
20
  { id: "geo", type: "geometry" },
15
21
  { id: "map", type: "mapping", inputs: { loc: [1.0, 1.0, 1.0], rot: [0.0, 1.5708, 1.5708] } },
16
22
  { id: "grad", type: "tex_gradient" },
@@ -44,8 +50,10 @@ export const STOCKINGS_GRAPH = {
44
50
  { from: { node: "ramp_face", socket: "fac_out" }, to: { node: "mix_001", socket: "b" } },
45
51
  { from: { node: "mix_001", socket: "color" }, to: { node: "mask", socket: "a" } },
46
52
  { from: { node: "ramp_002", socket: "fac_out" }, to: { node: "mask", socket: "b" } },
47
- { from: { node: "tex", socket: "color" }, to: { node: "emission_hs", socket: "color" } },
48
- { from: { node: "tex", socket: "color" }, to: { node: "principled", socket: "base_color" } },
53
+ { from: { node: "tex", socket: "color" }, to: { node: "tex_base", socket: "a" } },
54
+ { from: { node: "mat_diffuse", socket: "color" }, to: { node: "tex_base", socket: "b" } },
55
+ { from: { node: "tex_base", socket: "color" }, to: { node: "emission_hs", socket: "color" } },
56
+ { from: { node: "tex_base", socket: "color" }, to: { node: "principled", socket: "base_color" } },
49
57
  { from: { node: "emission_hs", socket: "color" }, to: { node: "mix_shader_001", socket: "a" } },
50
58
  { from: { node: "principled", socket: "color" }, to: { node: "mix_shader_001", socket: "b" } },
51
59
  { from: { node: "mask", socket: "color" }, to: { node: "mix_shader_001", socket: "fac" } },
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAA6C,MAAM,QAAQ,CAAA;AAEpF,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AAG5C,OAAO,EAAa,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EAEjB,UAAU,EASX,MAAM,aAAa,CAAA;AAsBpB,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAA;IACZ,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;2EAE2E;AAC3E,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,CAAC,EAAE,MAAM,EAAE,CAAA;IACX,CAAC,EAAE,MAAM,EAAE,CAAA;CACZ;AAOD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACzC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IAGxB,UAAU,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3C,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACzC,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACpC;;uDAEmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB;AAGD,MAAM,WAAW,MAAM;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,IAAI,CAAA;IACf,QAAQ,CAAC,EAAE,IAAI,CAAA;CAChB;AAGD,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB;AAGD,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,IAAI,CAAA;IAChB,aAAa,EAAE,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,IAAI,EAAE,CAAA;IACb,mBAAmB,EAAE,YAAY,CAAA;CAClC;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,WAAW,CAAA;IACnB,OAAO,EAAE,UAAU,CAAA;CACpB;AAGD,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CACzC;AAGD,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAID,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,wCAAwC;IACxC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAC3C;AAED,8FAA8F;AAC9F,eAAO,MAAM,uBAAuB,IAAI,CAAA;AACxC,eAAO,MAAM,kBAAkB,IAAI,CAAA;AAInC,MAAM,WAAW,mBAAmB;IAClC,gEAAgE;IAChE,aAAa,EAAE,MAAM,CAAA;IACrB,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACzC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3C,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9C,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7C,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAC5C;AAKD,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,yDAAyD;IACzD,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CACzC;AAGD,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,iBAAiB,EAAE,CAAA;IAClC,eAAe,CAAC,EAAE,mBAAmB,EAAE,CAAA;IACvC,WAAW,CAAC,EAAE,eAAe,EAAE,CAAA;IAC/B,eAAe,CAAC,EAAE,mBAAmB,EAAE,CAAA;IACvC,SAAS,CAAC,EAAE,aAAa,EAAE,CAAA;CAC5B;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,KAAK,EAAE,CAAA;CAChB;AAGD,UAAU,gBAAgB;IACxB,aAAa,EAAE,YAAY,CAAA;IAC3B,QAAQ,EAAE,WAAW,CAAA;IACrB,QAAQ,EAAE,WAAW,CAAA;IACrB,SAAS,EAAE,YAAY,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;CACnB;AA2CD,qBAAa,KAAK;IAChB,OAAO,CAAC,KAAK,CAAa;IAE1B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAO5B,IAAI,QAAQ,IAAI,IAAI,CAEnB;IAED,IAAI,QAAQ,IAAI,IAAI,CAEnB;IAED,2EAA2E;IAC3E,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;6DACyD;IACzD,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI;IAKjC,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI;IAKjC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,cAAc,CAA2B;IACjD,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,SAAS,CAA0B;IAG3C,OAAO,CAAC,qBAAqB,CAAC,CAAc;IAC5C,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,eAAe,CAAO;IAG9B,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,iBAAiB,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,SAAS,CAAiB;IAElC,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,QAAQ,CAAU;IAG1B,OAAO,CAAC,QAAQ,CAAU;IAG1B,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,MAAM,CAAc;IAG5B,OAAO,CAAC,YAAY,CAAe;IAGnC,OAAO,CAAC,eAAe,CAAkB;IAGzC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAAiB;IAKpC,OAAO,CAAC,aAAa,CAAqF;IAK1G,OAAO,CAAC,cAAc,CAAe;IACrC,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,gBAAgB,CAAQ;IAChC,4EAA4E;IAC5E,OAAO,CAAC,SAAS,CAAQ;IAGzB,OAAO,CAAC,aAAa,CAAO;IAM5B,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,gBAAgB,CAAuE;IAC/F,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,cAAc,CAAgB;IAGtC,OAAO,CAAC,iBAAiB,CAAC,CAAc;IAMxC,OAAO,CAAC,WAAW,CAAa;IAChC,4FAA4F;IAC5F,OAAO,CAAC,aAAa,CAA0B;IAC/C,oFAAoF;IACpF,OAAO,CAAC,kBAAkB,CAA0B;IACpD,kFAAkF;IAClF,OAAO,CAAC,oBAAoB,CAA0B;IACtD,kFAAkF;IAClF,OAAO,CAAC,iBAAiB,CAAsB;IAC/C,OAAO,CAAC,oBAAoB,CAA0B;IAKtD,OAAO,CAAC,YAAY,CAAe;IAEnC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,WAAW,CAAY;IAG/B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuB;IACtD,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,iBAAiB,CAAiC;IAC1D,OAAO,CAAC,eAAe,CAA6B;IAKpD,OAAO,CAAC,OAAO,CASA;IACf,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmB;IAClD;iFAC6E;IAC7E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiG;IAC5H,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4D;IAK3F,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,SAAS,CAAoH;IACrI,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoD;IACrF,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoD;IAGtF,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,eAAe,CAAI;IAE3B,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,aAAa,CAAK;IAE1B,iHAAiH;IACjH,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;gBAM1D,UAAU,EAAE,YAAY,CAAC,WAAW,CAAC,EACrC,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,EACnC,QAAQ,EAAE,OAAO,EAAE,EACnB,SAAS,EAAE,QAAQ,EAAE,EACrB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,WAAW,GAAE,SAAS,EAAO,EAC7B,MAAM,GAAE,KAAK,EAAO,EACpB,YAAY,GAAE,MAAM,EAAO;IA0B7B,gEAAgE;IAChE,OAAO,CAAC,cAAc,CAA2D;IAEjF,OAAO,CAAC,yBAAyB;IAuCjC,OAAO,CAAC,mBAAmB;IA2C3B,OAAO,CAAC,gBAAgB;IA8CxB,OAAO,CAAC,sBAAsB;IAwC9B,OAAO,CAAC,sBAAsB;IA+B9B;;;;;;;;OAQG;IACH;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,eAAe;IA8BvB;;+CAE2C;IAC3C,oBAAoB,IAAI,OAAO;IAM/B;;;;;;;;;;;OAWG;IACH,wBAAwB,IAAI,MAAM,EAAE;IA8BpC,OAAO,CAAC,YAAY;IA6EpB,WAAW,IAAI,YAAY,CAAC,WAAW,CAAC;IAIxC,WAAW,IAAI,OAAO,EAAE;IAIxB,YAAY,IAAI,QAAQ,EAAE;IAI1B,UAAU,IAAI,WAAW,CAAC,WAAW,CAAC;IAItC;;;;;;;;OAQG;IACH,WAAW,IAAI;QAAE,SAAS,EAAE,YAAY,CAAC;QAAC,GAAG,EAAE,YAAY,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAE;IAgBnF,WAAW,IAAI,QAAQ;IAOvB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI7C,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAShD,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI;IAWzD,OAAO,CAAC,kBAAkB,CAAQ;IAClC,qBAAqB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI;IAG/C,oBAAoB,IAAI,OAAO;IAK/B,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAMnD;;;;;;;OAOG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IASlD,WAAW,IAAI,QAAQ;IAOvB,cAAc,IAAI,OAAO;IAKzB,eAAe,IAAI,SAAS,MAAM,EAAE;IAIpC,kFAAkF;IAClF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA0B;IAE9D;;;oDAGgD;IAChD,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,IAAI,GAAG,OAAO;IAQvE,cAAc,IAAI,SAAS,EAAE;IAI7B,SAAS,IAAI,KAAK,EAAE;IAIpB,WAAW,IAAI,QAAQ;IAIvB,eAAe,IAAI,YAAY;IAM/B,WAAW,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAmD3E,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAwD5E,OAAO,CAAC,4BAA4B;IA0CpC,gBAAgB,IAAI,IAAI,EAAE;IAI1B,oBAAoB,IAAI,YAAY;IAWpC,0BAA0B,IAAI,YAAY;IAI1C,eAAe,IAAI,YAAY;IA2C/B,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAkDvE,OAAO,CAAC,WAAW;IAoGnB,eAAe,IAAI,IAAI;IAMvB,wBAAwB,IAAI,OAAO;IAQnC,wBAAwB,IAAI,YAAY;IAQxC,qBAAqB,IAAI,gBAAgB,GAAG,IAAI;IA6DhD,wBAAwB,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAavE,OAAO,CAAC,yBAAyB;IA0DjC;;;;;;;;;OASG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoDpG;;8DAE0D;IAC1D,OAAO,CAAC,kBAAkB;IAS1B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI;IAIjD,aAAa,IAAI,IAAI;IAWrB,cAAc,IAAI,IAAI;IAStB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAI3C;;;;;;;;;;;8EAW0E;IAC1E,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,iBAAiB,GAAG,IAAI;IAgC5F,mEAAmE;IACnE,OAAO,CAAC,MAAM,CAAC,WAAW;IAU1B;;;;;;;;;OASG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,iBAAiB,CAAA;KAAE,GAAG,WAAW;IAM9E,IAAI,IAAI,IAAI;IACZ,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAC3B,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO;IAgB3D,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IASxB;;;;2DAIuD;IACvD,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI;IAMzC,cAAc,IAAI,IAAI;IAItB;;;iFAG6E;IAC7E,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,OAAO;IAWvG,+EAA+E;IAC/E,aAAa,CAAC,OAAO,SAAM,GAAG,IAAI;IAUlC,4CAA4C;IAC5C,UAAU,IAAI,MAAM,GAAG,IAAI;IAI3B;;;;mDAI+C;IAC/C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,IAAI;IAc5H,OAAO,CAAC,cAAc;IAYtB;yEACqE;IACrE,OAAO,CAAC,gBAAgB;IAWxB;;;mFAG+E;IAC/E,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO;IAoBjF,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI;IAOZ;;uEAEmE;IACnE,cAAc,IAAI,IAAI;IAQtB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM3B,oBAAoB,IAAI,iBAAiB;IAazC,OAAO,CAAC,MAAM,CAAC,UAAU;IAWzB,OAAO,CAAC,iBAAiB;IAczB;;;;;;OAMG;IACH,OAAO,CAAC,UAAU,CAAoB;IAEtC;8EAC0E;IAC1E,OAAO,CAAC,eAAe;IAevB;;;;8BAI0B;IAC1B,OAAO,CAAC,mBAAmB;IA2C3B,8FAA8F;IAC9F,OAAO,CAAC,gBAAgB;IAkBxB;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,iBAAiB;IAiCzB;;;;yEAIqE;IACrE,OAAO,CAAC,gBAAgB;IAuIxB;sFACkF;IAClF,OAAO,CAAC,YAAY;IAmDpB;;2EAEuE;IACvE,OAAO,CAAC,cAAc;IA0CtB;;;;;;;;;OASG;IACH,MAAM,IAAI,OAAO;IAiBjB,qDAAqD;IACrD,OAAO,CAAC,eAAe;IAQvB,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,UAAO,GAAG,OAAO;IAgGpD,OAAO,CAAC,aAAa;IAyCrB,OAAO,CAAC,aAAa,CAAyB;IAI9C,OAAO,CAAC,4BAA4B;IAsHpC;;;;;;;;;;;;;;;;;OAiBG;IACH,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI;IAkDlD;kFAC8E;IAC9E,oBAAoB,IAAI,MAAM,EAAE;IAIhC;;;;;;;;;;;;;;;OAeG;IACH,kBAAkB,IAAI,IAAI;IA4C1B,oBAAoB,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI;CAiGhD"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
package/dist/model.js CHANGED
@@ -1996,10 +1996,15 @@ export class Model {
1996
1996
  // tight extension limit never reach the singular zone, which is why this
1997
1997
  // read as a model-specific bug rather than an engine one.
1998
1998
  //
1999
- // Links only, and only when a pose source is about to run: a blanket reset
2000
- // would wipe bones the host posed by hand through localRotations, and a
2001
- // suspended clip means the current pose IS the authority.
2002
- if (!this.clipApplySuspended) {
1999
+ // Links only, and only when a SOLVE is about to consume the clean start:
2000
+ // the reset exists to feed solveIKChains, and with IK off engine-wide the
2001
+ // solve never runs the wipe then only destroys rotations the host wrote
2002
+ // by hand. MiKaPo poses legs through rotateBones with setIKEnabled(false),
2003
+ // and this line erased them every frame on any model that still HAS its IK
2004
+ // chains; the bundled demo model dodged it only because its IK bones are
2005
+ // stripped, which is why uploads misbehaved while the demo looked fine.
2006
+ // A suspended clip means the current pose IS the authority, same as before.
2007
+ if (ikEnabled && !this.clipApplySuspended) {
2003
2008
  const solvers = this.runtimeSkeleton.ikSolvers;
2004
2009
  if (solvers) {
2005
2010
  const rots = this.runtimeSkeleton.localRotations;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "reze-engine",
3
- "version": "0.54.5",
3
+ "version": "0.54.7",
4
4
  "description": "A lightweight WebGPU engine for real-time 3D MMD/PMX model rendering",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -11,6 +11,12 @@ export const BODY_GRAPH: ShaderGraph = {
11
11
  tags: ["body"],
12
12
  nodes: [
13
13
  { id: "tex", type: "texture" },
14
+ // Base colour: the texture times the PMX material's diffuse. MMD authors
15
+ // tint per MATERIAL rather than per texel — an eyebrow sharing the face
16
+ // atlas is painted once and coloured here — so the diffuse belongs in the
17
+ // base of every look.
18
+ { id: "mat_diffuse", type: "material_diffuse" },
19
+ { id: "tex_base", type: "mix/multiply", inputs: { fac: 1.0 } },
14
20
  { id: "geo", type: "geometry" },
15
21
  { id: "str", type: "shader_to_rgb_diffuse" },
16
22
  { id: "toon", type: "ramp_constant", inputs: { pos0: 0.0, pos1: 0.2966 } },
@@ -62,8 +68,10 @@ export const BODY_GRAPH: ShaderGraph = {
62
68
  ],
63
69
  links: [
64
70
  { from: { node: "str", socket: "value" }, to: { node: "toon", socket: "fac" } },
65
- { from: { node: "tex", socket: "color" }, to: { node: "shadow_tint", socket: "color" } },
66
- { from: { node: "tex", socket: "color" }, to: { node: "lit_tint", socket: "color" } },
71
+ { from: { node: "tex", socket: "color" }, to: { node: "tex_base", socket: "a" } },
72
+ { from: { node: "mat_diffuse", socket: "color" }, to: { node: "tex_base", socket: "b" } },
73
+ { from: { node: "tex_base", socket: "color" }, to: { node: "shadow_tint", socket: "color" } },
74
+ { from: { node: "tex_base", socket: "color" }, to: { node: "lit_tint", socket: "color" } },
67
75
  { from: { node: "toon", socket: "fac_out" }, to: { node: "toon_color", socket: "fac" } },
68
76
  { from: { node: "shadow_tint", socket: "color" }, to: { node: "toon_color", socket: "a" } },
69
77
  { from: { node: "lit_tint", socket: "color" }, to: { node: "toon_color", socket: "b" } },
@@ -11,6 +11,12 @@ export const CLOTH_ROUGH_GRAPH: ShaderGraph = {
11
11
  tags: ["cloth_rough"],
12
12
  nodes: [
13
13
  { id: "tex", type: "texture" },
14
+ // Base colour: the texture times the PMX material's diffuse. MMD authors
15
+ // tint per MATERIAL rather than per texel — an eyebrow sharing the face
16
+ // atlas is painted once and coloured here — so the diffuse belongs in the
17
+ // base of every look.
18
+ { id: "mat_diffuse", type: "material_diffuse" },
19
+ { id: "tex_base", type: "mix/multiply", inputs: { fac: 1.0 } },
14
20
  { id: "geo", type: "geometry" },
15
21
  { id: "str", type: "shader_to_rgb_diffuse" },
16
22
  { id: "ramp_008", type: "ramp_constant_aa", inputs: { edge: 0.2966 } },
@@ -37,10 +43,12 @@ export const CLOTH_ROUGH_GRAPH: ShaderGraph = {
37
43
  links: [
38
44
  { from: { node: "str", socket: "value" }, to: { node: "ramp_008", socket: "fac" } },
39
45
  { from: { node: "ramp_008", socket: "fac_out" }, to: { node: "mix04_fac", socket: "a" } },
40
- { from: { node: "tex", socket: "color" }, to: { node: "dark_tex", socket: "color" } },
46
+ { from: { node: "tex", socket: "color" }, to: { node: "tex_base", socket: "a" } },
47
+ { from: { node: "mat_diffuse", socket: "color" }, to: { node: "tex_base", socket: "b" } },
48
+ { from: { node: "tex_base", socket: "color" }, to: { node: "dark_tex", socket: "color" } },
41
49
  { from: { node: "mix04_fac", socket: "value" }, to: { node: "mix_004", socket: "fac" } },
42
50
  { from: { node: "dark_tex", socket: "color" }, to: { node: "mix_004", socket: "a" } },
43
- { from: { node: "tex", socket: "color" }, to: { node: "mix_004", socket: "b" } },
51
+ { from: { node: "tex_base", socket: "color" }, to: { node: "mix_004", socket: "b" } },
44
52
  { from: { node: "geo", socket: "normal" }, to: { node: "sep_n", socket: "vector" } },
45
53
  { from: { node: "sep_n", socket: "y" }, to: { node: "bevel_clamp", socket: "a" } },
46
54
  { from: { node: "bevel_clamp", socket: "value" }, to: { node: "mix_003", socket: "fac" } },
@@ -54,7 +62,7 @@ export const CLOTH_ROUGH_GRAPH: ShaderGraph = {
54
62
  { from: { node: "noise", socket: "value" }, to: { node: "noise_ramp", socket: "fac" } },
55
63
  { from: { node: "noise_ramp", socket: "fac_out" }, to: { node: "bump", socket: "height" } },
56
64
  { from: { node: "geo", socket: "normal" }, to: { node: "bump", socket: "normal" } },
57
- { from: { node: "tex", socket: "color" }, to: { node: "principled_base", socket: "color" } },
65
+ { from: { node: "tex_base", socket: "color" }, to: { node: "principled_base", socket: "color" } },
58
66
  { from: { node: "principled_base", socket: "color" }, to: { node: "principled", socket: "base_color" } },
59
67
  { from: { node: "bump", socket: "vector" }, to: { node: "principled", socket: "normal" } },
60
68
  { from: { node: "npr_emit", socket: "color" }, to: { node: "mix_shader_001", socket: "a" } },
@@ -11,6 +11,12 @@ export const CLOTH_SMOOTH_GRAPH: ShaderGraph = {
11
11
  tags: ["cloth_smooth"],
12
12
  nodes: [
13
13
  { id: "tex", type: "texture" },
14
+ // Base colour: the texture times the PMX material's diffuse. MMD authors
15
+ // tint per MATERIAL rather than per texel — an eyebrow sharing the face
16
+ // atlas is painted once and coloured here — so the diffuse belongs in the
17
+ // base of every look.
18
+ { id: "mat_diffuse", type: "material_diffuse" },
19
+ { id: "tex_base", type: "mix/multiply", inputs: { fac: 1.0 } },
14
20
  { id: "geo", type: "geometry" },
15
21
  { id: "str", type: "shader_to_rgb_diffuse" },
16
22
  { id: "ramp_008", type: "ramp_constant_aa", inputs: { edge: 0.2966 } },
@@ -34,10 +40,12 @@ export const CLOTH_SMOOTH_GRAPH: ShaderGraph = {
34
40
  links: [
35
41
  { from: { node: "str", socket: "value" }, to: { node: "ramp_008", socket: "fac" } },
36
42
  { from: { node: "ramp_008", socket: "fac_out" }, to: { node: "mix04_fac", socket: "a" } },
37
- { from: { node: "tex", socket: "color" }, to: { node: "dark_tex", socket: "color" } },
43
+ { from: { node: "tex", socket: "color" }, to: { node: "tex_base", socket: "a" } },
44
+ { from: { node: "mat_diffuse", socket: "color" }, to: { node: "tex_base", socket: "b" } },
45
+ { from: { node: "tex_base", socket: "color" }, to: { node: "dark_tex", socket: "color" } },
38
46
  { from: { node: "mix04_fac", socket: "value" }, to: { node: "mix_004", socket: "fac" } },
39
47
  { from: { node: "dark_tex", socket: "color" }, to: { node: "mix_004", socket: "a" } },
40
- { from: { node: "tex", socket: "color" }, to: { node: "mix_004", socket: "b" } },
48
+ { from: { node: "tex_base", socket: "color" }, to: { node: "mix_004", socket: "b" } },
41
49
  { from: { node: "geo", socket: "normal" }, to: { node: "sep_n", socket: "vector" } },
42
50
  { from: { node: "sep_n", socket: "y" }, to: { node: "bevel_clamp", socket: "a" } },
43
51
  { from: { node: "bevel_clamp", socket: "value" }, to: { node: "mix_003", socket: "fac" } },
@@ -47,7 +55,7 @@ export const CLOTH_SMOOTH_GRAPH: ShaderGraph = {
47
55
  { from: { node: "mix_003", socket: "color" }, to: { node: "npr_overlay", socket: "a" } },
48
56
  { from: { node: "hue_004", socket: "color" }, to: { node: "npr_overlay", socket: "b" } },
49
57
  { from: { node: "npr_overlay", socket: "color" }, to: { node: "npr_emit", socket: "color" } },
50
- { from: { node: "tex", socket: "color" }, to: { node: "principled_base", socket: "color" } },
58
+ { from: { node: "tex_base", socket: "color" }, to: { node: "principled_base", socket: "color" } },
51
59
  { from: { node: "principled_base", socket: "color" }, to: { node: "principled", socket: "base_color" } },
52
60
  { from: { node: "npr_emit", socket: "color" }, to: { node: "mix_shader_001", socket: "a" } },
53
61
  { from: { node: "principled", socket: "color" }, to: { node: "mix_shader_001", socket: "b" } },
@@ -15,6 +15,12 @@ export const EYE_GRAPH: ShaderGraph = {
15
15
  tags: ["eye"],
16
16
  nodes: [
17
17
  { id: "tex", type: "texture" },
18
+ // Base colour: the texture times the PMX material's diffuse. MMD authors
19
+ // tint per MATERIAL rather than per texel — an eyebrow sharing the face
20
+ // atlas is painted once and coloured here — so the diffuse belongs in the
21
+ // base of every look.
22
+ { id: "mat_diffuse", type: "material_diffuse" },
23
+ { id: "tex_base", type: "mix/multiply", inputs: { fac: 1.0 } },
18
24
  {
19
25
  id: "principled",
20
26
  type: "principled",
@@ -24,8 +30,10 @@ export const EYE_GRAPH: ShaderGraph = {
24
30
  { id: "add", type: "add_shader" },
25
31
  ],
26
32
  links: [
27
- { from: { node: "tex", socket: "color" }, to: { node: "principled", socket: "base_color" } },
28
- { from: { node: "tex", socket: "color" }, to: { node: "emission", socket: "color" } },
33
+ { from: { node: "tex", socket: "color" }, to: { node: "tex_base", socket: "a" } },
34
+ { from: { node: "mat_diffuse", socket: "color" }, to: { node: "tex_base", socket: "b" } },
35
+ { from: { node: "tex_base", socket: "color" }, to: { node: "principled", socket: "base_color" } },
36
+ { from: { node: "tex_base", socket: "color" }, to: { node: "emission", socket: "color" } },
29
37
  { from: { node: "principled", socket: "color" }, to: { node: "add", socket: "a" } },
30
38
  { from: { node: "emission", socket: "color" }, to: { node: "add", socket: "b" } },
31
39
  ],
@@ -14,6 +14,12 @@ export const FACE_GRAPH: ShaderGraph = {
14
14
  tags: ["face"],
15
15
  nodes: [
16
16
  { id: "tex", type: "texture" },
17
+ // Base colour: the texture times the PMX material's diffuse. MMD authors
18
+ // tint per MATERIAL rather than per texel — an eyebrow sharing the face
19
+ // atlas is painted once and coloured here — so the diffuse belongs in the
20
+ // base of every look.
21
+ { id: "mat_diffuse", type: "material_diffuse" },
22
+ { id: "tex_base", type: "mix/multiply", inputs: { fac: 1.0 } },
17
23
  { id: "geo", type: "geometry" },
18
24
 
19
25
  // ── toon shading ──
@@ -82,8 +88,10 @@ export const FACE_GRAPH: ShaderGraph = {
82
88
  links: [
83
89
  // toon
84
90
  { from: { node: "str", socket: "value" }, to: { node: "toon", socket: "fac" } },
85
- { from: { node: "tex", socket: "color" }, to: { node: "shadow_tint", socket: "color" } },
86
- { from: { node: "tex", socket: "color" }, to: { node: "lit_tint", socket: "color" } },
91
+ { from: { node: "tex", socket: "color" }, to: { node: "tex_base", socket: "a" } },
92
+ { from: { node: "mat_diffuse", socket: "color" }, to: { node: "tex_base", socket: "b" } },
93
+ { from: { node: "tex_base", socket: "color" }, to: { node: "shadow_tint", socket: "color" } },
94
+ { from: { node: "tex_base", socket: "color" }, to: { node: "lit_tint", socket: "color" } },
87
95
  { from: { node: "toon", socket: "fac_out" }, to: { node: "toon_color", socket: "fac" } },
88
96
  { from: { node: "shadow_tint", socket: "color" }, to: { node: "toon_color", socket: "a" } },
89
97
  { from: { node: "lit_tint", socket: "color" }, to: { node: "toon_color", socket: "b" } },
@@ -18,6 +18,12 @@ export const HAIR_GRAPH: ShaderGraph = {
18
18
  tags: ["hair"],
19
19
  nodes: [
20
20
  { id: "tex", type: "texture" },
21
+ // Base colour: the texture times the PMX material's diffuse. MMD authors
22
+ // tint per MATERIAL rather than per texel — an eyebrow sharing the face
23
+ // atlas is painted once and coloured here — so the diffuse belongs in the
24
+ // base of every look.
25
+ { id: "mat_diffuse", type: "material_diffuse" },
26
+ { id: "tex_base", type: "mix/multiply", inputs: { fac: 1.0 } },
21
27
  { id: "geo", type: "geometry" },
22
28
  { id: "hs_shadow", type: "hue_sat", inputs: { hue: 0.5, saturation: 1.2, value: 0.5, fac: 1.0 } },
23
29
  { id: "hs_002", type: "hue_sat", inputs: { hue: 0.48, saturation: 1.2, value: 0.7, fac: 1.0 } },
@@ -49,9 +55,11 @@ export const HAIR_GRAPH: ShaderGraph = {
49
55
  { id: "mix_shader_001", type: "mix_shader", inputs: { fac: 0.2 } },
50
56
  ],
51
57
  links: [
52
- { from: { node: "tex", socket: "color" }, to: { node: "hs_shadow", socket: "color" } },
58
+ { from: { node: "tex", socket: "color" }, to: { node: "tex_base", socket: "a" } },
59
+ { from: { node: "mat_diffuse", socket: "color" }, to: { node: "tex_base", socket: "b" } },
60
+ { from: { node: "tex_base", socket: "color" }, to: { node: "hs_shadow", socket: "color" } },
53
61
  { from: { node: "hs_shadow", socket: "color" }, to: { node: "hs_002", socket: "color" } },
54
- { from: { node: "tex", socket: "color" }, to: { node: "hs_001", socket: "color" } },
62
+ { from: { node: "tex_base", socket: "color" }, to: { node: "hs_001", socket: "color" } },
55
63
  { from: { node: "str", socket: "value" }, to: { node: "ramp_008", socket: "fac" } },
56
64
  { from: { node: "ramp_008", socket: "fac_out" }, to: { node: "mix_004", socket: "fac" } },
57
65
  { from: { node: "hs_002", socket: "color" }, to: { node: "mix_004", socket: "a" } },
@@ -12,6 +12,12 @@ export const METAL_GRAPH: ShaderGraph = {
12
12
  tags: ["metal"],
13
13
  nodes: [
14
14
  { id: "tex", type: "texture" },
15
+ // Base colour: the texture times the PMX material's diffuse. MMD authors
16
+ // tint per MATERIAL rather than per texel — an eyebrow sharing the face
17
+ // atlas is painted once and coloured here — so the diffuse belongs in the
18
+ // base of every look.
19
+ { id: "mat_diffuse", type: "material_diffuse" },
20
+ { id: "tex_base", type: "mix/multiply", inputs: { fac: 1.0 } },
15
21
  { id: "geo", type: "geometry" },
16
22
  { id: "tex_tint", type: "hue_sat", inputs: { hue: 0.5, saturation: 1.0, value: 0.800000011920929, fac: 1.0 } },
17
23
  { id: "str", type: "shader_to_rgb_diffuse" },
@@ -35,7 +41,9 @@ export const METAL_GRAPH: ShaderGraph = {
35
41
  { id: "mix_shader_001", type: "mix_shader", inputs: { fac: 0.6967 } },
36
42
  ],
37
43
  links: [
38
- { from: { node: "tex", socket: "color" }, to: { node: "tex_tint", socket: "color" } },
44
+ { from: { node: "tex", socket: "color" }, to: { node: "tex_base", socket: "a" } },
45
+ { from: { node: "mat_diffuse", socket: "color" }, to: { node: "tex_base", socket: "b" } },
46
+ { from: { node: "tex_base", socket: "color" }, to: { node: "tex_tint", socket: "color" } },
39
47
  { from: { node: "str", socket: "value" }, to: { node: "ramp_008", socket: "fac" } },
40
48
  { from: { node: "ramp_008", socket: "fac_out" }, to: { node: "mix04_fac", socket: "a" } },
41
49
  { from: { node: "tex_tint", socket: "color" }, to: { node: "dark_tex", socket: "color" } },
@@ -14,6 +14,12 @@ export const STOCKINGS_GRAPH: ShaderGraph = {
14
14
  tags: ["stockings"],
15
15
  nodes: [
16
16
  { id: "tex", type: "texture" },
17
+ // Base colour: the texture times the PMX material's diffuse. MMD authors
18
+ // tint per MATERIAL rather than per texel — an eyebrow sharing the face
19
+ // atlas is painted once and coloured here — so the diffuse belongs in the
20
+ // base of every look.
21
+ { id: "mat_diffuse", type: "material_diffuse" },
22
+ { id: "tex_base", type: "mix/multiply", inputs: { fac: 1.0 } },
17
23
  { id: "geo", type: "geometry" },
18
24
  { id: "map", type: "mapping", inputs: { loc: [1.0, 1.0, 1.0], rot: [0.0, 1.5708, 1.5708] } },
19
25
  { id: "grad", type: "tex_gradient" },
@@ -47,8 +53,10 @@ export const STOCKINGS_GRAPH: ShaderGraph = {
47
53
  { from: { node: "ramp_face", socket: "fac_out" }, to: { node: "mix_001", socket: "b" } },
48
54
  { from: { node: "mix_001", socket: "color" }, to: { node: "mask", socket: "a" } },
49
55
  { from: { node: "ramp_002", socket: "fac_out" }, to: { node: "mask", socket: "b" } },
50
- { from: { node: "tex", socket: "color" }, to: { node: "emission_hs", socket: "color" } },
51
- { from: { node: "tex", socket: "color" }, to: { node: "principled", socket: "base_color" } },
56
+ { from: { node: "tex", socket: "color" }, to: { node: "tex_base", socket: "a" } },
57
+ { from: { node: "mat_diffuse", socket: "color" }, to: { node: "tex_base", socket: "b" } },
58
+ { from: { node: "tex_base", socket: "color" }, to: { node: "emission_hs", socket: "color" } },
59
+ { from: { node: "tex_base", socket: "color" }, to: { node: "principled", socket: "base_color" } },
52
60
  { from: { node: "emission_hs", socket: "color" }, to: { node: "mix_shader_001", socket: "a" } },
53
61
  { from: { node: "principled", socket: "color" }, to: { node: "mix_shader_001", socket: "b" } },
54
62
  { from: { node: "mask", socket: "color" }, to: { node: "mix_shader_001", socket: "fac" } },
package/src/model.ts CHANGED
@@ -2407,10 +2407,15 @@ export class Model {
2407
2407
  // tight extension limit never reach the singular zone, which is why this
2408
2408
  // read as a model-specific bug rather than an engine one.
2409
2409
  //
2410
- // Links only, and only when a pose source is about to run: a blanket reset
2411
- // would wipe bones the host posed by hand through localRotations, and a
2412
- // suspended clip means the current pose IS the authority.
2413
- if (!this.clipApplySuspended) {
2410
+ // Links only, and only when a SOLVE is about to consume the clean start:
2411
+ // the reset exists to feed solveIKChains, and with IK off engine-wide the
2412
+ // solve never runs the wipe then only destroys rotations the host wrote
2413
+ // by hand. MiKaPo poses legs through rotateBones with setIKEnabled(false),
2414
+ // and this line erased them every frame on any model that still HAS its IK
2415
+ // chains; the bundled demo model dodged it only because its IK bones are
2416
+ // stripped, which is why uploads misbehaved while the demo looked fine.
2417
+ // A suspended clip means the current pose IS the authority, same as before.
2418
+ if (ikEnabled && !this.clipApplySuspended) {
2414
2419
  const solvers = this.runtimeSkeleton.ikSolvers
2415
2420
  if (solvers) {
2416
2421
  const rots = this.runtimeSkeleton.localRotations