@pixiv/three-vrm 3.4.3-alpha.0 → 3.4.3

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,5 +1,5 @@
1
1
  /*!
2
- * @pixiv/three-vrm v3.4.3-alpha.0
2
+ * @pixiv/three-vrm v3.4.3
3
3
  * VRM file loader for three.js.
4
4
  *
5
5
  * Copyright (c) 2019-2025 pixiv Inc.
@@ -522,7 +522,7 @@ var MToonNodeMaterial = class extends THREE5.NodeMaterial {
522
522
  }
523
523
  };
524
524
  /*!
525
- * @pixiv/three-vrm-materials-mtoon v3.4.3-alpha.0
525
+ * @pixiv/three-vrm-materials-mtoon v3.4.3
526
526
  * MToon (toon material) module for @pixiv/three-vrm
527
527
  *
528
528
  * Copyright (c) 2019-2025 pixiv Inc.
@@ -1,7 +1,7 @@
1
1
  /*! (c) 2019-2025 pixiv Inc. - https://github.com/pixiv/three-vrm/blob/release/LICENSE */
2
2
  "use strict";var Z=Object.create;var x=Object.defineProperty;var $=Object.getOwnPropertyDescriptor;var J=Object.getOwnPropertyNames;var Q=Object.getPrototypeOf,tt=Object.prototype.hasOwnProperty;var it=(t,i)=>{for(var o in i)x(t,o,{get:i[o],enumerable:!0})},O=(t,i,o,r)=>{if(i&&typeof i=="object"||typeof i=="function")for(let n of J(i))!tt.call(t,n)&&n!==o&&x(t,n,{get:()=>i[n],enumerable:!(r=$(i,n))||r.enumerable});return t};var c=(t,i,o)=>(o=t!=null?Z(Q(t)):{},O(i||!t||!t.__esModule?x(o,"default",{value:t,enumerable:!0}):o,t)),et=t=>O(x({},"__esModule",{value:!0}),t);var At={};it(At,{MToonAnimatedUVNode:()=>X,MToonLightingModel:()=>j,MToonNodeMaterial:()=>Pt});module.exports=et(At);var D=c(require("three"),1),Y=c(require("three/webgpu"),1),h=require("three/tsl"),a=require("three/tsl"),z=c(require("three/webgpu"),1),l=require("three/tsl"),m=c(require("three/webgpu"),1),d=require("three/tsl"),K=c(require("three/tsl"),1),R=c(require("three/webgpu"),1),s=c(require("three/webgpu"),1),e=require("three/tsl"),N=require("three/tsl");var I=parseInt(D.REVISION,10);I<167&&console.warn(`MToonNodeMaterial requires Three.js r167 or higher (You are using r${I}). This would not work correctly.`);var ot=(0,a.materialReference)("color","color"),rt=(0,a.materialReference)("map","texture"),at=(0,a.materialReference)("normalMap","texture"),nt=(0,a.materialReference)("normalScale","vec2"),lt=(0,a.materialReference)("emissive","color"),st=(0,a.materialReference)("emissiveIntensity","float"),ht=(0,a.materialReference)("emissiveMap","texture"),ut=(0,a.materialReference)("shadeColorFactor","color"),mt=(0,a.materialReference)("shadingShiftFactor","float"),k=(0,a.materialReference)("shadeMultiplyTexture","texture"),dt=(0,a.materialReference)("shadeMultiplyTextureScale","float"),ct=(0,a.materialReference)("shadingToonyFactor","float"),pt=(0,a.materialReference)("rimLightingMixFactor","float"),ft=(0,a.materialReference)("rimMultiplyTexture","texture"),Nt=(0,a.materialReference)("matcapFactor","color"),gt=(0,a.materialReference)("matcapTexture","texture"),vt=(0,a.materialReference)("parametricRimColorFactor","color"),Tt=(0,a.materialReference)("parametricRimLiftFactor","float"),Mt=(0,a.materialReference)("parametricRimFresnelPowerFactor","float"),xt=(0,a.materialReference)("outlineWidthMultiplyTexture","texture"),Rt=(0,a.materialReference)("outlineWidthFactor","float"),b=(0,a.materialReference)("outlineColorFactor","color"),St=(0,a.materialReference)("outlineLightingMixFactor","float"),Ft=(0,a.materialReference)("uvAnimationMaskTexture","texture"),Et=(0,a.materialReference)("uvAnimationScrollXOffset","float"),yt=(0,a.materialReference)("uvAnimationScrollYOffset","float"),Ct=(0,a.materialReference)("uvAnimationRotationPhase","float"),X=class extends Y.TempNode{constructor(t){super("vec2"),this.hasMaskTexture=t}setup(){let t=1;this.hasMaskTexture&&(t=(0,h.vec4)(Ft).context({getUV:()=>(0,h.uv)()}).r);let i=(0,h.uv)(),o=Ct.mul(t),r=(0,h.cos)(o),n=(0,h.sin)(o);i=i.sub((0,h.vec2)(.5,.5)),i=i.mul((0,h.mat2)(r,n,n.negate(),r)),i=i.add((0,h.vec2)(.5,.5));let u=(0,h.vec2)(Et,yt).mul(t);return i=i.add(u),i.toVar("AnimatedUV")}},B=(0,d.nodeImmutable)(m.PropertyNode,"vec3").toVar("ShadeColor"),q=(0,d.nodeImmutable)(m.PropertyNode,"float").toVar("ShadingShift"),G=(0,d.nodeImmutable)(m.PropertyNode,"float").toVar("ShadingToony"),F=(0,d.nodeImmutable)(m.PropertyNode,"float").toVar("RimLightingMix"),E=(0,d.nodeImmutable)(m.PropertyNode,"vec3").toVar("RimMultiply"),y=(0,d.nodeImmutable)(m.PropertyNode,"vec3").toVar("matcap"),C=(0,d.nodeImmutable)(m.PropertyNode,"vec3").toVar("ParametricRim"),S=t=>parseInt(R.REVISION,10)>=168?K.Fn(t):R.tslFn(t),_t=S(({a:t,b:i,t:o})=>{let r=o.sub(t),n=i.sub(t);return r.div(n).clamp()}),Vt=S(({dotNL:t})=>{let o=(0,l.float)(1).sub(G),r=t.add(q);return r=_t({a:o.negate(),b:o,t:r}),r=r.mul(1),r}),Lt=S(({shading:t,lightColor:i})=>{let o=(0,l.mix)(B,l.diffuseColor,t);return i.mul((0,l.BRDF_Lambert)({diffuseColor:o}))}),j=class extends z.LightingModel{constructor(){super()}direct({lightDirection:t,lightColor:i,reflectedLight:o}){let r=l.transformedNormalView.dot(t).clamp(-1,1),n=Vt({dotNL:r});o.directDiffuse.addAssign(Lt({shading:n,lightColor:i})),o.directSpecular.addAssign(C.add(y).mul(E).mul((0,l.mix)((0,l.vec3)(0),(0,l.BRDF_Lambert)({diffuseColor:i}),F)))}indirect(t){let i="context"in t?t.context:t;this.indirectDiffuse(i),this.indirectSpecular(i)}indirectDiffuse(t){let{irradiance:i,reflectedLight:o}=t;o.indirectDiffuse.addAssign(i.mul((0,l.BRDF_Lambert)({diffuseColor:l.diffuseColor})))}indirectSpecular(t){let{reflectedLight:i}=t;i.indirectSpecular.addAssign(C.add(y).mul(E).mul((0,l.mix)((0,l.vec3)(1),(0,l.vec3)(0),F)))}},v={None:"none",WorldCoordinates:"worldCoordinates",ScreenCoordinates:"screenCoordinates"},wt=S(({parametricRimLift:t,parametricRimFresnelPower:i,parametricRimColor:o})=>{let r=N.modelViewPosition.normalize(),n=N.transformedNormalView.dot(r.negate());return(0,N.float)(1).sub(n).add(t).clamp().pow(i).mul(o)}),Pt=class extends s.NodeMaterial{customProgramCacheKey(){let t=super.customProgramCacheKey();return t+=`isOutline:${this.isOutline},`,t}get isMToonNodeMaterial(){return!0}constructor(t={}){super(),t.transparentWithZWrite&&(t.depthWrite=!0),delete t.transparentWithZWrite,delete t.giEqualizationFactor,delete t.v0CompatShade,delete t.debugMode,this.emissiveNode=null,this.lights=!0,this.color=new s.Color(1,1,1),this.map=null,this.emissive=new s.Color(0,0,0),this.emissiveIntensity=1,this.emissiveMap=null,this.normalMap=null,this.normalScale=new s.Vector2(1,1),this.shadeColorFactor=new s.Color(0,0,0),this.shadeMultiplyTexture=null,this.shadingShiftFactor=0,this.shadingShiftTexture=null,this.shadingShiftTextureScale=1,this.shadingToonyFactor=.9,this.rimLightingMixFactor=1,this.rimMultiplyTexture=null,this.matcapFactor=new s.Color(1,1,1),this.matcapTexture=null,this.parametricRimColorFactor=new s.Color(0,0,0),this.parametricRimLiftFactor=0,this.parametricRimFresnelPowerFactor=5,this.outlineWidthMode=v.None,this.outlineWidthMultiplyTexture=null,this.outlineWidthFactor=0,this.outlineColorFactor=new s.Color(0,0,0),this.outlineLightingMixFactor=1,this.uvAnimationScrollXSpeedFactor=0,this.uvAnimationScrollYSpeedFactor=0,this.uvAnimationRotationSpeedFactor=0,this.uvAnimationMaskTexture=null,this.shadeColorNode=null,this.shadingShiftNode=null,this.shadingToonyNode=null,this.rimLightingMixNode=null,this.rimMultiplyNode=null,this.matcapNode=null,this.parametricRimColorNode=null,this.parametricRimLiftNode=null,this.parametricRimFresnelPowerNode=null,this.uvAnimationScrollXOffset=0,this.uvAnimationScrollYOffset=0,this.uvAnimationRotationPhase=0,this.isOutline=!1,this._animatedUVNode=null,this.setValues(t)}setupLightingModel(){return new j}setup(t){var i;this._animatedUVNode=new X((i=this.uvAnimationMaskTexture&&this.uvAnimationMaskTexture.isTexture===!0)!=null?i:!1),super.setup(t)}setupDiffuseColor(t){let i=null;if(this.colorNode==null){if(i=ot,this.map&&this.map.isTexture===!0){let o=rt.context({getUV:()=>this._animatedUVNode});i=i.mul(o)}this.colorNode=i}this.vertexColors===!0&&t.geometry.hasAttribute("color")&&(console.warn("MToonNodeMaterial: MToon ignores vertex colors. Consider using a model without vertex colors instead."),this.vertexColors=!1),super.setupDiffuseColor(t),parseInt(s.REVISION,10)<166&&this.transparent===!1&&this.blending===s.NormalBlending&&this.alphaToCoverage===!1&&e.diffuseColor.a.assign(1),this.colorNode===i&&(this.colorNode=null)}setupVariants(){B.assign(this._setupShadeColorNode()),q.assign(this._setupShadingShiftNode()),G.assign(this._setupShadingToonyNode()),F.assign(this._setupRimLightingMixNode()),E.assign(this._setupRimMultiplyNode()),y.assign(this._setupMatcapNode()),C.assign(this._setupParametricRimNode())}setupNormal(t){let i=this.normalNode;if(this.normalNode==null){if(this.normalNode=e.materialNormal,this.normalMap&&this.normalMap.isTexture===!0){let r=at.context({getUV:()=>this._animatedUVNode});this.normalNode=(0,e.normalMap)(r,nt)}this.isOutline&&(this.normalNode=this.normalNode.negate())}if(parseInt(s.REVISION,10)>=168){let r=this.normalNode;return this.normalNode=i,r}else{super.setupNormal(t),this.normalNode=i;return}}setupLighting(t){let i=null;if(this.emissiveNode==null){if(i=lt.mul(st),this.emissiveMap&&this.emissiveMap.isTexture===!0){let r=ht.context({getUV:()=>this._animatedUVNode});i=i.mul(r)}this.emissiveNode=i}let o=super.setupLighting(t);return this.emissiveNode===i&&(this.emissiveNode=null),o}setupOutput(t,i){return this.isOutline&&this.outlineWidthMode!==v.None&&(i=(0,e.vec4)((0,e.mix)(b,i.xyz.mul(b),St),i.w)),super.setupOutput(t,i)}setupPosition(t){var i,o;let r=this.positionNode;if(this.isOutline&&this.outlineWidthMode!==v.None){(i=this.positionNode)!=null||(this.positionNode=e.positionLocal);let u=e.normalLocal.normalize(),p=Rt;if(this.outlineWidthMultiplyTexture&&this.outlineWidthMultiplyTexture.isTexture===!0){let f=xt.context({getUV:()=>this._animatedUVNode});p=p.mul(f)}let T=(0,e.length)(e.modelNormalMatrix.mul(u)),g=p.mul(T).mul(u);if(this.outlineWidthMode===v.WorldCoordinates)this.positionNode=this.positionNode.add(g);else if(this.outlineWidthMode===v.ScreenCoordinates){let f=e.cameraProjectionMatrix.element(1).element(1),M=e.modelViewMatrix.mul(e.positionLocal);this.positionNode=this.positionNode.add(g.div(f).mul(M.z.negate()))}(o=this.positionNode)!=null||(this.positionNode=e.positionLocal)}let n=super.setupPosition(t);return n.z.add(n.w.mul(1e-6)),this.positionNode=r,n}copy(t){var i,o,r,n,u,p,T,g,f,M,_,V,L,w,P,A,H,W,U;return this.color.copy(t.color),this.map=(i=t.map)!=null?i:null,this.emissive.copy(t.emissive),this.emissiveIntensity=t.emissiveIntensity,this.emissiveMap=(o=t.emissiveMap)!=null?o:null,this.normalMap=(r=t.normalMap)!=null?r:null,this.normalScale.copy(t.normalScale),this.shadeColorFactor.copy(t.shadeColorFactor),this.shadeMultiplyTexture=(n=t.shadeMultiplyTexture)!=null?n:null,this.shadingShiftFactor=t.shadingShiftFactor,this.shadingShiftTexture=(u=t.shadingShiftTexture)!=null?u:null,this.shadingShiftTextureScale=t.shadingShiftTextureScale,this.shadingToonyFactor=t.shadingToonyFactor,this.rimLightingMixFactor=t.rimLightingMixFactor,this.rimMultiplyTexture=(p=t.rimMultiplyTexture)!=null?p:null,this.matcapFactor.copy(t.matcapFactor),this.matcapTexture=(T=t.matcapTexture)!=null?T:null,this.parametricRimColorFactor.copy(t.parametricRimColorFactor),this.parametricRimLiftFactor=t.parametricRimLiftFactor,this.parametricRimFresnelPowerFactor=t.parametricRimFresnelPowerFactor,this.outlineWidthMode=t.outlineWidthMode,this.outlineWidthMultiplyTexture=(g=t.outlineWidthMultiplyTexture)!=null?g:null,this.outlineWidthFactor=t.outlineWidthFactor,this.outlineColorFactor.copy(t.outlineColorFactor),this.outlineLightingMixFactor=t.outlineLightingMixFactor,this.uvAnimationScrollXSpeedFactor=t.uvAnimationScrollXSpeedFactor,this.uvAnimationScrollYSpeedFactor=t.uvAnimationScrollYSpeedFactor,this.uvAnimationRotationSpeedFactor=t.uvAnimationRotationSpeedFactor,this.uvAnimationMaskTexture=(f=t.uvAnimationMaskTexture)!=null?f:null,this.shadeColorNode=(M=t.shadeColorNode)!=null?M:null,this.shadingShiftNode=(_=t.shadingShiftNode)!=null?_:null,this.shadingToonyNode=(V=t.shadingToonyNode)!=null?V:null,this.rimLightingMixNode=(L=t.rimLightingMixNode)!=null?L:null,this.rimMultiplyNode=(w=t.rimMultiplyNode)!=null?w:null,this.matcapNode=(P=t.matcapNode)!=null?P:null,this.parametricRimColorNode=(A=t.parametricRimColorNode)!=null?A:null,this.parametricRimLiftNode=(H=t.parametricRimLiftNode)!=null?H:null,this.parametricRimFresnelPowerNode=(W=t.parametricRimFresnelPowerNode)!=null?W:null,this.isOutline=(U=t.isOutline)!=null?U:null,super.copy(t)}update(t){this.uvAnimationScrollXOffset+=t*this.uvAnimationScrollXSpeedFactor,this.uvAnimationScrollYOffset+=t*this.uvAnimationScrollYSpeedFactor,this.uvAnimationRotationPhase+=t*this.uvAnimationRotationSpeedFactor}_setupShadeColorNode(){if(this.shadeColorNode!=null)return(0,e.vec3)(this.shadeColorNode);let t=ut;if(this.shadeMultiplyTexture&&this.shadeMultiplyTexture.isTexture===!0){let i=k.context({getUV:()=>this._animatedUVNode});t=t.mul(i)}return t}_setupShadingShiftNode(){if(this.shadingShiftNode!=null)return(0,e.float)(this.shadingShiftNode);let t=mt;if(this.shadingShiftTexture&&this.shadingShiftTexture.isTexture===!0){let i=k.context({getUV:()=>this._animatedUVNode});t=t.add(i.mul(dt))}return t}_setupShadingToonyNode(){return this.shadingToonyNode!=null?(0,e.float)(this.shadingToonyNode):ct}_setupRimLightingMixNode(){return this.rimLightingMixNode!=null?(0,e.float)(this.rimLightingMixNode):pt}_setupRimMultiplyNode(){return this.rimMultiplyNode!=null?(0,e.vec3)(this.rimMultiplyNode):this.rimMultiplyTexture&&this.rimMultiplyTexture.isTexture===!0?ft.context({getUV:()=>this._animatedUVNode}):(0,e.vec3)(1)}_setupMatcapNode(){return this.matcapNode!=null?(0,e.vec3)(this.matcapNode):this.matcapTexture&&this.matcapTexture.isTexture===!0?gt.context({getUV:()=>e.matcapUV.mul(1,-1).add(0,1)}).mul(Nt):(0,e.vec3)(0)}_setupParametricRimNode(){let t=this.parametricRimColorNode!=null?(0,e.vec3)(this.parametricRimColorNode):vt,i=this.parametricRimLiftNode!=null?(0,e.float)(this.parametricRimLiftNode):Tt,o=this.parametricRimFresnelPowerNode!=null?(0,e.float)(this.parametricRimFresnelPowerNode):Mt;return wt({parametricRimLift:i,parametricRimFresnelPower:o,parametricRimColor:t})}};
3
3
  /*!
4
- * @pixiv/three-vrm-materials-mtoon v3.4.3-alpha.0
4
+ * @pixiv/three-vrm-materials-mtoon v3.4.3
5
5
  * MToon (toon material) module for @pixiv/three-vrm
6
6
  *
7
7
  * Copyright (c) 2019-2025 pixiv Inc.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @pixiv/three-vrm v3.4.3-alpha.0
2
+ * @pixiv/three-vrm v3.4.3
3
3
  * VRM file loader for three.js.
4
4
  *
5
5
  * Copyright (c) 2019-2025 pixiv Inc.
@@ -505,7 +505,7 @@ export {
505
505
  MToonNodeMaterial
506
506
  };
507
507
  /*!
508
- * @pixiv/three-vrm-materials-mtoon v3.4.3-alpha.0
508
+ * @pixiv/three-vrm-materials-mtoon v3.4.3
509
509
  * MToon (toon material) module for @pixiv/three-vrm
510
510
  *
511
511
  * Copyright (c) 2019-2025 pixiv Inc.
@@ -1,7 +1,7 @@
1
1
  /*! (c) 2019-2025 pixiv Inc. - https://github.com/pixiv/three-vrm/blob/release/LICENSE */
2
2
  import*as Y from"three";import*as X from"three/webgpu";import{cos as Z,mat2 as $,sin as J,uv as k,vec2 as M,vec4 as Q}from"three/tsl";import{materialReference as o}from"three/tsl";import*as z from"three/webgpu";import{BRDF_Lambert as S,diffuseColor as B,float as yt,mix as F,transformedNormalView as Ct,vec3 as x}from"three/tsl";import*as s from"three/webgpu";import{nodeImmutable as h}from"three/tsl";import*as j from"three/tsl";import*as v from"three/webgpu";import*as a from"three/webgpu";import{cameraProjectionMatrix as Pt,diffuseColor as At,float as p,length as Ht,matcapUV as Wt,materialNormal as Ut,mix as Ot,modelNormalMatrix as It,modelViewMatrix as kt,normalLocal as bt,normalMap as Dt,positionLocal as R,vec3 as d,vec4 as Yt}from"three/tsl";import{float as Xt,modelViewPosition as zt,transformedNormalView as Bt}from"three/tsl";var I=parseInt(Y.REVISION,10);I<167&&console.warn(`MToonNodeMaterial requires Three.js r167 or higher (You are using r${I}). This would not work correctly.`);var tt=o("color","color"),it=o("map","texture"),et=o("normalMap","texture"),ot=o("normalScale","vec2"),rt=o("emissive","color"),at=o("emissiveIntensity","float"),nt=o("emissiveMap","texture"),lt=o("shadeColorFactor","color"),st=o("shadingShiftFactor","float"),b=o("shadeMultiplyTexture","texture"),ht=o("shadeMultiplyTextureScale","float"),ut=o("shadingToonyFactor","float"),mt=o("rimLightingMixFactor","float"),dt=o("rimMultiplyTexture","texture"),ct=o("matcapFactor","color"),pt=o("matcapTexture","texture"),ft=o("parametricRimColorFactor","color"),Nt=o("parametricRimLiftFactor","float"),gt=o("parametricRimFresnelPowerFactor","float"),vt=o("outlineWidthMultiplyTexture","texture"),Tt=o("outlineWidthFactor","float"),D=o("outlineColorFactor","color"),Mt=o("outlineLightingMixFactor","float"),xt=o("uvAnimationMaskTexture","texture"),Rt=o("uvAnimationScrollXOffset","float"),St=o("uvAnimationScrollYOffset","float"),Ft=o("uvAnimationRotationPhase","float"),Et=class extends X.TempNode{constructor(t){super("vec2"),this.hasMaskTexture=t}setup(){let t=1;this.hasMaskTexture&&(t=Q(xt).context({getUV:()=>k()}).r);let i=k(),e=Ft.mul(t),r=Z(e),n=J(e);i=i.sub(M(.5,.5)),i=i.mul($(r,n,n.negate(),r)),i=i.add(M(.5,.5));let l=M(Rt,St).mul(t);return i=i.add(l),i.toVar("AnimatedUV")}},q=h(s.PropertyNode,"vec3").toVar("ShadeColor"),G=h(s.PropertyNode,"float").toVar("ShadingShift"),K=h(s.PropertyNode,"float").toVar("ShadingToony"),E=h(s.PropertyNode,"float").toVar("RimLightingMix"),y=h(s.PropertyNode,"vec3").toVar("RimMultiply"),C=h(s.PropertyNode,"vec3").toVar("matcap"),_=h(s.PropertyNode,"vec3").toVar("ParametricRim"),T=t=>parseInt(v.REVISION,10)>=168?j.Fn(t):v.tslFn(t),_t=T(({a:t,b:i,t:e})=>{let r=e.sub(t),n=i.sub(t);return r.div(n).clamp()}),Vt=T(({dotNL:t})=>{let e=yt(1).sub(K),r=t.add(G);return r=_t({a:e.negate(),b:e,t:r}),r=r.mul(1),r}),Lt=T(({shading:t,lightColor:i})=>{let e=F(q,B,t);return i.mul(S({diffuseColor:e}))}),wt=class extends z.LightingModel{constructor(){super()}direct({lightDirection:t,lightColor:i,reflectedLight:e}){let r=Ct.dot(t).clamp(-1,1),n=Vt({dotNL:r});e.directDiffuse.addAssign(Lt({shading:n,lightColor:i})),e.directSpecular.addAssign(_.add(C).mul(y).mul(F(x(0),S({diffuseColor:i}),E)))}indirect(t){let i="context"in t?t.context:t;this.indirectDiffuse(i),this.indirectSpecular(i)}indirectDiffuse(t){let{irradiance:i,reflectedLight:e}=t;e.indirectDiffuse.addAssign(i.mul(S({diffuseColor:B})))}indirectSpecular(t){let{reflectedLight:i}=t;i.indirectSpecular.addAssign(_.add(C).mul(y).mul(F(x(1),x(0),E)))}},f={None:"none",WorldCoordinates:"worldCoordinates",ScreenCoordinates:"screenCoordinates"},qt=T(({parametricRimLift:t,parametricRimFresnelPower:i,parametricRimColor:e})=>{let r=zt.normalize(),n=Bt.dot(r.negate());return Xt(1).sub(n).add(t).clamp().pow(i).mul(e)}),Qt=class extends a.NodeMaterial{customProgramCacheKey(){let t=super.customProgramCacheKey();return t+=`isOutline:${this.isOutline},`,t}get isMToonNodeMaterial(){return!0}constructor(t={}){super(),t.transparentWithZWrite&&(t.depthWrite=!0),delete t.transparentWithZWrite,delete t.giEqualizationFactor,delete t.v0CompatShade,delete t.debugMode,this.emissiveNode=null,this.lights=!0,this.color=new a.Color(1,1,1),this.map=null,this.emissive=new a.Color(0,0,0),this.emissiveIntensity=1,this.emissiveMap=null,this.normalMap=null,this.normalScale=new a.Vector2(1,1),this.shadeColorFactor=new a.Color(0,0,0),this.shadeMultiplyTexture=null,this.shadingShiftFactor=0,this.shadingShiftTexture=null,this.shadingShiftTextureScale=1,this.shadingToonyFactor=.9,this.rimLightingMixFactor=1,this.rimMultiplyTexture=null,this.matcapFactor=new a.Color(1,1,1),this.matcapTexture=null,this.parametricRimColorFactor=new a.Color(0,0,0),this.parametricRimLiftFactor=0,this.parametricRimFresnelPowerFactor=5,this.outlineWidthMode=f.None,this.outlineWidthMultiplyTexture=null,this.outlineWidthFactor=0,this.outlineColorFactor=new a.Color(0,0,0),this.outlineLightingMixFactor=1,this.uvAnimationScrollXSpeedFactor=0,this.uvAnimationScrollYSpeedFactor=0,this.uvAnimationRotationSpeedFactor=0,this.uvAnimationMaskTexture=null,this.shadeColorNode=null,this.shadingShiftNode=null,this.shadingToonyNode=null,this.rimLightingMixNode=null,this.rimMultiplyNode=null,this.matcapNode=null,this.parametricRimColorNode=null,this.parametricRimLiftNode=null,this.parametricRimFresnelPowerNode=null,this.uvAnimationScrollXOffset=0,this.uvAnimationScrollYOffset=0,this.uvAnimationRotationPhase=0,this.isOutline=!1,this._animatedUVNode=null,this.setValues(t)}setupLightingModel(){return new wt}setup(t){var i;this._animatedUVNode=new Et((i=this.uvAnimationMaskTexture&&this.uvAnimationMaskTexture.isTexture===!0)!=null?i:!1),super.setup(t)}setupDiffuseColor(t){let i=null;if(this.colorNode==null){if(i=tt,this.map&&this.map.isTexture===!0){let e=it.context({getUV:()=>this._animatedUVNode});i=i.mul(e)}this.colorNode=i}this.vertexColors===!0&&t.geometry.hasAttribute("color")&&(console.warn("MToonNodeMaterial: MToon ignores vertex colors. Consider using a model without vertex colors instead."),this.vertexColors=!1),super.setupDiffuseColor(t),parseInt(a.REVISION,10)<166&&this.transparent===!1&&this.blending===a.NormalBlending&&this.alphaToCoverage===!1&&At.a.assign(1),this.colorNode===i&&(this.colorNode=null)}setupVariants(){q.assign(this._setupShadeColorNode()),G.assign(this._setupShadingShiftNode()),K.assign(this._setupShadingToonyNode()),E.assign(this._setupRimLightingMixNode()),y.assign(this._setupRimMultiplyNode()),C.assign(this._setupMatcapNode()),_.assign(this._setupParametricRimNode())}setupNormal(t){let i=this.normalNode;if(this.normalNode==null){if(this.normalNode=Ut,this.normalMap&&this.normalMap.isTexture===!0){let r=et.context({getUV:()=>this._animatedUVNode});this.normalNode=Dt(r,ot)}this.isOutline&&(this.normalNode=this.normalNode.negate())}if(parseInt(a.REVISION,10)>=168){let r=this.normalNode;return this.normalNode=i,r}else{super.setupNormal(t),this.normalNode=i;return}}setupLighting(t){let i=null;if(this.emissiveNode==null){if(i=rt.mul(at),this.emissiveMap&&this.emissiveMap.isTexture===!0){let r=nt.context({getUV:()=>this._animatedUVNode});i=i.mul(r)}this.emissiveNode=i}let e=super.setupLighting(t);return this.emissiveNode===i&&(this.emissiveNode=null),e}setupOutput(t,i){return this.isOutline&&this.outlineWidthMode!==f.None&&(i=Yt(Ot(D,i.xyz.mul(D),Mt),i.w)),super.setupOutput(t,i)}setupPosition(t){var i,e;let r=this.positionNode;if(this.isOutline&&this.outlineWidthMode!==f.None){(i=this.positionNode)!=null||(this.positionNode=R);let l=bt.normalize(),u=Tt;if(this.outlineWidthMultiplyTexture&&this.outlineWidthMultiplyTexture.isTexture===!0){let m=vt.context({getUV:()=>this._animatedUVNode});u=u.mul(m)}let N=Ht(It.mul(l)),c=u.mul(N).mul(l);if(this.outlineWidthMode===f.WorldCoordinates)this.positionNode=this.positionNode.add(c);else if(this.outlineWidthMode===f.ScreenCoordinates){let m=Pt.element(1).element(1),g=kt.mul(R);this.positionNode=this.positionNode.add(c.div(m).mul(g.z.negate()))}(e=this.positionNode)!=null||(this.positionNode=R)}let n=super.setupPosition(t);return n.z.add(n.w.mul(1e-6)),this.positionNode=r,n}copy(t){var i,e,r,n,l,u,N,c,m,g,V,L,w,P,A,H,W,U,O;return this.color.copy(t.color),this.map=(i=t.map)!=null?i:null,this.emissive.copy(t.emissive),this.emissiveIntensity=t.emissiveIntensity,this.emissiveMap=(e=t.emissiveMap)!=null?e:null,this.normalMap=(r=t.normalMap)!=null?r:null,this.normalScale.copy(t.normalScale),this.shadeColorFactor.copy(t.shadeColorFactor),this.shadeMultiplyTexture=(n=t.shadeMultiplyTexture)!=null?n:null,this.shadingShiftFactor=t.shadingShiftFactor,this.shadingShiftTexture=(l=t.shadingShiftTexture)!=null?l:null,this.shadingShiftTextureScale=t.shadingShiftTextureScale,this.shadingToonyFactor=t.shadingToonyFactor,this.rimLightingMixFactor=t.rimLightingMixFactor,this.rimMultiplyTexture=(u=t.rimMultiplyTexture)!=null?u:null,this.matcapFactor.copy(t.matcapFactor),this.matcapTexture=(N=t.matcapTexture)!=null?N:null,this.parametricRimColorFactor.copy(t.parametricRimColorFactor),this.parametricRimLiftFactor=t.parametricRimLiftFactor,this.parametricRimFresnelPowerFactor=t.parametricRimFresnelPowerFactor,this.outlineWidthMode=t.outlineWidthMode,this.outlineWidthMultiplyTexture=(c=t.outlineWidthMultiplyTexture)!=null?c:null,this.outlineWidthFactor=t.outlineWidthFactor,this.outlineColorFactor.copy(t.outlineColorFactor),this.outlineLightingMixFactor=t.outlineLightingMixFactor,this.uvAnimationScrollXSpeedFactor=t.uvAnimationScrollXSpeedFactor,this.uvAnimationScrollYSpeedFactor=t.uvAnimationScrollYSpeedFactor,this.uvAnimationRotationSpeedFactor=t.uvAnimationRotationSpeedFactor,this.uvAnimationMaskTexture=(m=t.uvAnimationMaskTexture)!=null?m:null,this.shadeColorNode=(g=t.shadeColorNode)!=null?g:null,this.shadingShiftNode=(V=t.shadingShiftNode)!=null?V:null,this.shadingToonyNode=(L=t.shadingToonyNode)!=null?L:null,this.rimLightingMixNode=(w=t.rimLightingMixNode)!=null?w:null,this.rimMultiplyNode=(P=t.rimMultiplyNode)!=null?P:null,this.matcapNode=(A=t.matcapNode)!=null?A:null,this.parametricRimColorNode=(H=t.parametricRimColorNode)!=null?H:null,this.parametricRimLiftNode=(W=t.parametricRimLiftNode)!=null?W:null,this.parametricRimFresnelPowerNode=(U=t.parametricRimFresnelPowerNode)!=null?U:null,this.isOutline=(O=t.isOutline)!=null?O:null,super.copy(t)}update(t){this.uvAnimationScrollXOffset+=t*this.uvAnimationScrollXSpeedFactor,this.uvAnimationScrollYOffset+=t*this.uvAnimationScrollYSpeedFactor,this.uvAnimationRotationPhase+=t*this.uvAnimationRotationSpeedFactor}_setupShadeColorNode(){if(this.shadeColorNode!=null)return d(this.shadeColorNode);let t=lt;if(this.shadeMultiplyTexture&&this.shadeMultiplyTexture.isTexture===!0){let i=b.context({getUV:()=>this._animatedUVNode});t=t.mul(i)}return t}_setupShadingShiftNode(){if(this.shadingShiftNode!=null)return p(this.shadingShiftNode);let t=st;if(this.shadingShiftTexture&&this.shadingShiftTexture.isTexture===!0){let i=b.context({getUV:()=>this._animatedUVNode});t=t.add(i.mul(ht))}return t}_setupShadingToonyNode(){return this.shadingToonyNode!=null?p(this.shadingToonyNode):ut}_setupRimLightingMixNode(){return this.rimLightingMixNode!=null?p(this.rimLightingMixNode):mt}_setupRimMultiplyNode(){return this.rimMultiplyNode!=null?d(this.rimMultiplyNode):this.rimMultiplyTexture&&this.rimMultiplyTexture.isTexture===!0?dt.context({getUV:()=>this._animatedUVNode}):d(1)}_setupMatcapNode(){return this.matcapNode!=null?d(this.matcapNode):this.matcapTexture&&this.matcapTexture.isTexture===!0?pt.context({getUV:()=>Wt.mul(1,-1).add(0,1)}).mul(ct):d(0)}_setupParametricRimNode(){let t=this.parametricRimColorNode!=null?d(this.parametricRimColorNode):ft,i=this.parametricRimLiftNode!=null?p(this.parametricRimLiftNode):Nt,e=this.parametricRimFresnelPowerNode!=null?p(this.parametricRimFresnelPowerNode):gt;return qt({parametricRimLift:i,parametricRimFresnelPower:e,parametricRimColor:t})}};export{Et as MToonAnimatedUVNode,wt as MToonLightingModel,Qt as MToonNodeMaterial};
3
3
  /*!
4
- * @pixiv/three-vrm-materials-mtoon v3.4.3-alpha.0
4
+ * @pixiv/three-vrm-materials-mtoon v3.4.3
5
5
  * MToon (toon material) module for @pixiv/three-vrm
6
6
  *
7
7
  * Copyright (c) 2019-2025 pixiv Inc.
package/lib/three-vrm.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @pixiv/three-vrm v3.4.3-alpha.0
2
+ * @pixiv/three-vrm v3.4.3
3
3
  * VRM file loader for three.js.
4
4
  *
5
5
  * Copyright (c) 2019-2025 pixiv Inc.
@@ -6710,7 +6710,7 @@ VRMUtils.removeUnnecessaryJoints = removeUnnecessaryJoints;
6710
6710
  VRMUtils.removeUnnecessaryVertices = removeUnnecessaryVertices;
6711
6711
  VRMUtils.rotateVRM0 = rotateVRM0;
6712
6712
  /*!
6713
- * @pixiv/three-vrm-core v3.4.3-alpha.0
6713
+ * @pixiv/three-vrm-core v3.4.3
6714
6714
  * The implementation of core features of VRM, for @pixiv/three-vrm
6715
6715
  *
6716
6716
  * Copyright (c) 2019-2025 pixiv Inc.
@@ -6718,7 +6718,7 @@ VRMUtils.rotateVRM0 = rotateVRM0;
6718
6718
  * https://github.com/pixiv/three-vrm/blob/release/LICENSE
6719
6719
  */
6720
6720
  /*!
6721
- * @pixiv/three-vrm-materials-mtoon v3.4.3-alpha.0
6721
+ * @pixiv/three-vrm-materials-mtoon v3.4.3
6722
6722
  * MToon (toon material) module for @pixiv/three-vrm
6723
6723
  *
6724
6724
  * Copyright (c) 2019-2025 pixiv Inc.
@@ -6726,7 +6726,7 @@ VRMUtils.rotateVRM0 = rotateVRM0;
6726
6726
  * https://github.com/pixiv/three-vrm/blob/release/LICENSE
6727
6727
  */
6728
6728
  /*!
6729
- * @pixiv/three-vrm-materials-hdr-emissive-multiplier v3.4.3-alpha.0
6729
+ * @pixiv/three-vrm-materials-hdr-emissive-multiplier v3.4.3
6730
6730
  * Support VRMC_hdr_emissiveMultiplier for @pixiv/three-vrm
6731
6731
  *
6732
6732
  * Copyright (c) 2019-2025 pixiv Inc.
@@ -6734,7 +6734,7 @@ VRMUtils.rotateVRM0 = rotateVRM0;
6734
6734
  * https://github.com/pixiv/three-vrm/blob/release/LICENSE
6735
6735
  */
6736
6736
  /*!
6737
- * @pixiv/three-vrm-materials-v0compat v3.4.3-alpha.0
6737
+ * @pixiv/three-vrm-materials-v0compat v3.4.3
6738
6738
  * VRM0.0 materials compatibility layer plugin for @pixiv/three-vrm
6739
6739
  *
6740
6740
  * Copyright (c) 2019-2025 pixiv Inc.
@@ -6742,7 +6742,7 @@ VRMUtils.rotateVRM0 = rotateVRM0;
6742
6742
  * https://github.com/pixiv/three-vrm/blob/release/LICENSE
6743
6743
  */
6744
6744
  /*!
6745
- * @pixiv/three-vrm-node-constraint v3.4.3-alpha.0
6745
+ * @pixiv/three-vrm-node-constraint v3.4.3
6746
6746
  * Node constraint module for @pixiv/three-vrm
6747
6747
  *
6748
6748
  * Copyright (c) 2019-2025 pixiv Inc.
@@ -6750,7 +6750,7 @@ VRMUtils.rotateVRM0 = rotateVRM0;
6750
6750
  * https://github.com/pixiv/three-vrm/blob/release/LICENSE
6751
6751
  */
6752
6752
  /*!
6753
- * @pixiv/three-vrm-springbone v3.4.3-alpha.0
6753
+ * @pixiv/three-vrm-springbone v3.4.3
6754
6754
  * Spring bone module for @pixiv/three-vrm
6755
6755
  *
6756
6756
  * Copyright (c) 2019-2025 pixiv Inc.