From ee1cac81022ae1e107245e07cabc112ad68f0eb3 Mon Sep 17 00:00:00 2001 From: 0b5vr <0b5vr@0b5vr.com> Date: Wed, 14 Feb 2024 16:59:50 +0900 Subject: [PATCH 1/2] deps: install @pixiv/three-vrm-animation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The included VRMAnimation has been replaced by three-vrm-animation one 🎉 --- package.json | 3 +- src/components/VrmViewer.tsx | 3 +- src/features/vrmViewer/Model.ts | 6 +- src/lib/VRMAnimation/VRMAnimation.ts | 112 --------- .../VRMAnimation/VRMAnimationLoaderPlugin.ts | 234 ------------------ .../VRMAnimationLoaderPluginOptions.ts | 1 - src/lib/VRMAnimation/VRMCVRMAnimation.ts | 27 -- src/lib/VRMAnimation/loadVRMAnimation.ts | 3 +- src/lib/VRMAnimation/utils/arrayChunk.ts | 30 --- yarn.lock | 192 +++++++------- 10 files changed, 117 insertions(+), 494 deletions(-) delete mode 100644 src/lib/VRMAnimation/VRMAnimation.ts delete mode 100644 src/lib/VRMAnimation/VRMAnimationLoaderPlugin.ts delete mode 100644 src/lib/VRMAnimation/VRMAnimationLoaderPluginOptions.ts delete mode 100644 src/lib/VRMAnimation/VRMCVRMAnimation.ts delete mode 100644 src/lib/VRMAnimation/utils/arrayChunk.ts diff --git a/package.json b/package.json index cf0710a..2140e02 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,8 @@ "@charcoal-ui/styled": "^3.1.1", "@charcoal-ui/theme": "^3.1.1", "@gltf-transform/core": "^3.4.0", - "@pixiv/three-vrm": "^2.0.0", + "@pixiv/three-vrm": "^2.1.0-beta.3", + "@pixiv/three-vrm-animation": "^2.1.0-beta.3", "@types/node": "20.2.5", "@types/react": "18.2.9", "@types/react-dom": "18.2.4", diff --git a/src/components/VrmViewer.tsx b/src/components/VrmViewer.tsx index 688d544..d50d7c9 100644 --- a/src/components/VrmViewer.tsx +++ b/src/components/VrmViewer.tsx @@ -1,14 +1,15 @@ import { useCallback, useEffect, useRef, useState } from 'react'; import { Viewer } from '@/features/vrmViewer/viewer'; import AvatarSample_A from '../assets/AvatarSample_A.vrm'; -import { loadVRMAnimation } from '@/lib/VRMAnimation/loadVRMAnimation'; import { IconButton } from '@charcoal-ui/react'; import '@/icons'; import { useAnimationFrame } from '@/utils/useAnimationFrame'; +import { loadVRMAnimation } from '@/lib/VRMAnimation/loadVRMAnimation'; interface VRMViewerProps { blobURL: string | null; } + export default function VrmViewer(props: VRMViewerProps) { const [viewer] = useState(new Viewer()); const [loadFlag, setLoadFlag] = useState(false); diff --git a/src/features/vrmViewer/Model.ts b/src/features/vrmViewer/Model.ts index c3bf32b..4b88cdd 100644 --- a/src/features/vrmViewer/Model.ts +++ b/src/features/vrmViewer/Model.ts @@ -1,7 +1,7 @@ import * as THREE from 'three'; -import { VRM, VRMLoaderPlugin, VRMUtils } from '@pixiv/three-vrm'; import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; -import { VRMAnimation } from '../../lib/VRMAnimation/VRMAnimation'; +import { VRM, VRMLoaderPlugin, VRMUtils } from '@pixiv/three-vrm'; +import { VRMAnimation, createVRMAnimationClip } from '@pixiv/three-vrm-animation'; export class Model { public vrm?: VRM; @@ -41,7 +41,7 @@ export class Model { } this.currentAction?.stop(); - const clip = vrmAnimation.createAnimationClip(vrm); + const clip = createVRMAnimationClip(vrmAnimation, vrm); const action = mixer.clipAction(clip); this.currentAction = action; diff --git a/src/lib/VRMAnimation/VRMAnimation.ts b/src/lib/VRMAnimation/VRMAnimation.ts deleted file mode 100644 index a96a1c7..0000000 --- a/src/lib/VRMAnimation/VRMAnimation.ts +++ /dev/null @@ -1,112 +0,0 @@ -import * as THREE from 'three'; -import { VRM, VRMExpressionManager, VRMHumanBoneName } from '@pixiv/three-vrm'; - -export class VRMAnimation { - public duration: number; - public restHipsPosition: THREE.Vector3; - - public humanoidTracks: { - translation: Map; - rotation: Map; - }; - public expressionTracks: Map; - public lookAtTrack: THREE.QuaternionKeyframeTrack | null; - - public constructor() { - this.duration = 0.0; - this.restHipsPosition = new THREE.Vector3(); - - this.humanoidTracks = { - translation: new Map(), - rotation: new Map(), - }; - - this.expressionTracks = new Map(); - this.lookAtTrack = null; - } - - public createAnimationClip(vrm: VRM): THREE.AnimationClip { - const tracks: THREE.KeyframeTrack[] = []; - - tracks.push(...this.createHumanoidTracks(vrm)); - - if (vrm.expressionManager != null) { - tracks.push(...this.createExpressionTracks(vrm.expressionManager)); - } - - if (vrm.lookAt != null) { - const track = this.createLookAtTrack('lookAtTargetParent.quaternion'); - - if (track != null) { - tracks.push(track); - } - } - - return new THREE.AnimationClip('Clip', this.duration, tracks); - } - - public createHumanoidTracks(vrm: VRM): THREE.KeyframeTrack[] { - const humanoid = vrm.humanoid; - const metaVersion = vrm.meta.metaVersion; - const tracks: THREE.KeyframeTrack[] = []; - - for (const [name, origTrack] of this.humanoidTracks.rotation.entries()) { - const nodeName = humanoid.getNormalizedBoneNode(name)?.name; - - if (nodeName != null) { - const track = new THREE.QuaternionKeyframeTrack( - `${nodeName}.quaternion`, - Array.from(origTrack.times), - Array.from(origTrack.values.map((v, i) => (metaVersion === '0' && i % 2 === 0 ? -v : v))) - ); - tracks.push(track); - } - } - - for (const [name, origTrack] of this.humanoidTracks.translation.entries()) { - const nodeName = humanoid.getNormalizedBoneNode(name)?.name; - - if (nodeName != null) { - const animationY = this.restHipsPosition.y; - const humanoidY = humanoid.getNormalizedAbsolutePose().hips!.position![1]; - const scale = humanoidY / animationY; - - const track = origTrack.clone(); - track.values = track.values.map( - (v, i) => (metaVersion === '0' && i % 3 !== 1 ? -v : v) * scale - ); - - track.name = `${nodeName}.position`; - tracks.push(track); - } - } - - return tracks; - } - - public createExpressionTracks(expressionManager: VRMExpressionManager): THREE.KeyframeTrack[] { - const tracks: THREE.KeyframeTrack[] = []; - - for (const [name, origTrack] of this.expressionTracks.entries()) { - const trackName = expressionManager.getExpressionTrackName(name); - - if (trackName != null) { - const track = origTrack.clone(); - track.name = trackName; - tracks.push(track); - } - } - - return tracks; - } - - public createLookAtTrack(trackName: string): THREE.KeyframeTrack | null { - if (this.lookAtTrack == null) { - return null; - } - - const track = this.lookAtTrack.clone(); - track.name = trackName; - return track; - } -} diff --git a/src/lib/VRMAnimation/VRMAnimationLoaderPlugin.ts b/src/lib/VRMAnimation/VRMAnimationLoaderPlugin.ts deleted file mode 100644 index 43df185..0000000 --- a/src/lib/VRMAnimation/VRMAnimationLoaderPlugin.ts +++ /dev/null @@ -1,234 +0,0 @@ -import * as THREE from 'three'; -import { GLTF, GLTFLoaderPlugin, GLTFParser } from 'three/examples/jsm/loaders/GLTFLoader'; -import { VRMAnimationLoaderPluginOptions } from './VRMAnimationLoaderPluginOptions'; -import { GLTF as GLTFSchema } from '@gltf-transform/core'; -import { VRMCVRMAnimation } from './VRMCVRMAnimation'; -import { VRMHumanBoneName, VRMHumanBoneParentMap } from '@pixiv/three-vrm'; -import { VRMAnimation } from './VRMAnimation'; -import { arrayChunk } from './utils/arrayChunk'; - -const MAT4_IDENTITY = new THREE.Matrix4(); - -const _v3A = new THREE.Vector3(); -const _quatA = new THREE.Quaternion(); -const _quatB = new THREE.Quaternion(); -const _quatC = new THREE.Quaternion(); - -interface VRMAnimationLoaderPluginNodeMap { - humanoidIndexToName: Map; - expressionsIndexToName: Map; - lookAtIndex: number | null; -} - -type VRMAnimationLoaderPluginWorldMatrixMap = Map; - -export class VRMAnimationLoaderPlugin implements GLTFLoaderPlugin { - public readonly parser: GLTFParser; - - public constructor(parser: GLTFParser, _options?: VRMAnimationLoaderPluginOptions) { - this.parser = parser; - } - - public get name(): string { - return 'VRMC_vrm_animation'; - } - - public async afterRoot(gltf: GLTF): Promise { - const defGltf = gltf.parser.json as GLTFSchema.IGLTF; - const defExtensionsUsed = defGltf.extensionsUsed; - - if (defExtensionsUsed == null || defExtensionsUsed.indexOf(this.name) == -1) { - return; - } - - const defExtension = defGltf.extensions?.[this.name] as VRMCVRMAnimation | undefined; - - if (defExtension == null) { - return; - } - - const nodeMap = this._createNodeMap(defExtension); - const worldMatrixMap = await this._createBoneWorldMatrixMap(gltf, defExtension); - - const hipsNode = defExtension.humanoid.humanBones['hips']!.node; - const hips = (await gltf.parser.getDependency('node', hipsNode)) as THREE.Object3D; - const restHipsPosition = hips.getWorldPosition(new THREE.Vector3()); - - const clips = gltf.animations; - const animations: VRMAnimation[] = clips.map((clip, iAnimation) => { - const defAnimation = defGltf.animations![iAnimation]; - - const animation = this._parseAnimation(clip, defAnimation, nodeMap, worldMatrixMap); - animation.restHipsPosition = restHipsPosition; - - return animation; - }); - - gltf.userData.vrmAnimations = animations; - } - - private _createNodeMap(defExtension: VRMCVRMAnimation): VRMAnimationLoaderPluginNodeMap { - const humanoidIndexToName: Map = new Map(); - const expressionsIndexToName: Map = new Map(); - let lookAtIndex: number | null; - - // humanoid - const humanBones = defExtension.humanoid?.humanBones; - - if (humanBones) { - Object.entries(humanBones).forEach(([name, bone]) => { - const { node } = bone; - humanoidIndexToName.set(node, name as VRMHumanBoneName); - }); - } - - // expressions - const preset = defExtension.expressions?.preset; - - if (preset) { - Object.entries(preset).forEach(([name, expression]) => { - const { node } = expression; - expressionsIndexToName.set(node, name as string); - }); - } - - const custom = defExtension.expressions?.custom; - - if (custom) { - Object.entries(custom).forEach(([name, expression]) => { - const { node } = expression; - expressionsIndexToName.set(node, name as string); - }); - } - - // lookAt - lookAtIndex = defExtension.lookAt?.node ?? null; - - return { humanoidIndexToName, expressionsIndexToName, lookAtIndex }; - } - - private async _createBoneWorldMatrixMap( - gltf: GLTF, - defExtension: VRMCVRMAnimation - ): Promise { - // update the entire hierarchy first - gltf.scene.updateWorldMatrix(false, true); - - const threeNodes = (await gltf.parser.getDependencies('node')) as THREE.Object3D[]; - - const worldMatrixMap: VRMAnimationLoaderPluginWorldMatrixMap = new Map(); - - for (const [boneName, { node }] of Object.entries(defExtension.humanoid.humanBones)) { - const threeNode = threeNodes[node]; - worldMatrixMap.set(boneName as VRMHumanBoneName, threeNode.matrixWorld); - - if (boneName === 'hips') { - worldMatrixMap.set('hipsParent', threeNode.parent?.matrixWorld ?? MAT4_IDENTITY); - } - } - - return worldMatrixMap; - } - - private _parseAnimation( - animationClip: THREE.AnimationClip, - defAnimation: GLTFSchema.IAnimation, - nodeMap: VRMAnimationLoaderPluginNodeMap, - worldMatrixMap: VRMAnimationLoaderPluginWorldMatrixMap - ): VRMAnimation { - const tracks = animationClip.tracks; - const defChannels = defAnimation.channels; - - const result = new VRMAnimation(); - - result.duration = animationClip.duration; - - defChannels.forEach((channel, iChannel) => { - const { node, path } = channel.target; - const origTrack = tracks[iChannel]; - - if (node == null) { - return; - } - - // humanoid - const boneName = nodeMap.humanoidIndexToName.get(node); - if (boneName != null) { - let parentBoneName: VRMHumanBoneName | 'hipsParent' | null = - VRMHumanBoneParentMap[boneName]; - while (parentBoneName != null && worldMatrixMap.get(parentBoneName) == null) { - parentBoneName = VRMHumanBoneParentMap[parentBoneName]; - } - parentBoneName ??= 'hipsParent'; - - if (path === 'translation') { - const hipsParentWorldMatrix = worldMatrixMap.get('hipsParent')!; - - const trackValues = arrayChunk(origTrack.values, 3).flatMap((v) => - _v3A.fromArray(v).applyMatrix4(hipsParentWorldMatrix).toArray() - ); - - const track = origTrack.clone(); - track.values = new Float32Array(trackValues); - - result.humanoidTracks.translation.set(boneName, track); - } else if (path === 'rotation') { - // a = p^-1 * a' * p * c - // a' = p * p^-1 * a' * p * c * c^-1 * p^-1 - // = p * a * c^-1 * p^-1 - - const worldMatrix = worldMatrixMap.get(boneName)!; - const parentWorldMatrix = worldMatrixMap.get(parentBoneName)!; - - _quatA.setFromRotationMatrix(worldMatrix).normalize().invert(); - _quatB.setFromRotationMatrix(parentWorldMatrix).normalize(); - - const trackValues = arrayChunk(origTrack.values, 4).flatMap((q) => - _quatC.fromArray(q).premultiply(_quatB).multiply(_quatA).toArray() - ); - - const track = origTrack.clone(); - track.values = new Float32Array(trackValues); - - result.humanoidTracks.rotation.set(boneName, track); - } else { - throw new Error(`Invalid path "${path}"`); - } - return; - } - - // expressions - const expressionName = nodeMap.expressionsIndexToName.get(node); - if (expressionName != null) { - if (path === 'translation') { - const times = origTrack.times; - const values = new Float32Array(origTrack.values.length / 3); - for (let i = 0; i < values.length; i++) { - values[i] = origTrack.values[3 * i]; - } - - const newTrack = new THREE.NumberKeyframeTrack( - `${expressionName}.weight`, - times as any, - values as any - ); - result.expressionTracks.set(expressionName, newTrack); - } else { - throw new Error(`Invalid path "${path}"`); - } - return; - } - - // lookAt - if (node === nodeMap.lookAtIndex) { - if (path === 'rotation') { - result.lookAtTrack = origTrack; - } else { - throw new Error(`Invalid path "${path}"`); - } - } - }); - - return result; - } -} diff --git a/src/lib/VRMAnimation/VRMAnimationLoaderPluginOptions.ts b/src/lib/VRMAnimation/VRMAnimationLoaderPluginOptions.ts deleted file mode 100644 index 224b49f..0000000 --- a/src/lib/VRMAnimation/VRMAnimationLoaderPluginOptions.ts +++ /dev/null @@ -1 +0,0 @@ -export interface VRMAnimationLoaderPluginOptions {} diff --git a/src/lib/VRMAnimation/VRMCVRMAnimation.ts b/src/lib/VRMAnimation/VRMCVRMAnimation.ts deleted file mode 100644 index 6500460..0000000 --- a/src/lib/VRMAnimation/VRMCVRMAnimation.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { VRMExpressionPresetName, VRMHumanBoneName } from '@pixiv/three-vrm'; - -export interface VRMCVRMAnimation { - specVersion: string; - humanoid: { - humanBones: { - [name in VRMHumanBoneName]?: { - node: number; - }; - }; - }; - expressions?: { - preset?: { - [name in VRMExpressionPresetName]?: { - node: number; - }; - }; - custom?: { - [name: string]: { - node: number; - }; - }; - }; - lookAt?: { - node: number; - }; -} diff --git a/src/lib/VRMAnimation/loadVRMAnimation.ts b/src/lib/VRMAnimation/loadVRMAnimation.ts index 4fa4f12..b2983e6 100644 --- a/src/lib/VRMAnimation/loadVRMAnimation.ts +++ b/src/lib/VRMAnimation/loadVRMAnimation.ts @@ -1,6 +1,5 @@ +import { VRMAnimation, VRMAnimationLoaderPlugin } from '@pixiv/three-vrm-animation'; import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; -import { VRMAnimation } from './VRMAnimation'; -import { VRMAnimationLoaderPlugin } from './VRMAnimationLoaderPlugin'; const loader = new GLTFLoader(); loader.register((parser) => new VRMAnimationLoaderPlugin(parser)); diff --git a/src/lib/VRMAnimation/utils/arrayChunk.ts b/src/lib/VRMAnimation/utils/arrayChunk.ts deleted file mode 100644 index ab5a845..0000000 --- a/src/lib/VRMAnimation/utils/arrayChunk.ts +++ /dev/null @@ -1,30 +0,0 @@ -/** - * ```js - * arrayChunk( [ 1, 2, 3, 4, 5, 6 ], 2 ) - * // will be - * [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] - * ``` - */ -export function arrayChunk(array: ArrayLike, every: number): T[][] { - const N = array.length; - - const ret: T[][] = []; - - let current: T[] = []; - let remaining = 0; - - for (let i = 0; i < N; i++) { - const el = array[i]; - - if (remaining <= 0) { - remaining = every; - current = []; - ret.push(current); - } - - current.push(el); - remaining--; - } - - return ret; -} diff --git a/yarn.lock b/yarn.lock index acd0be7..7fa7259 100644 --- a/yarn.lock +++ b/yarn.lock @@ -488,93 +488,119 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@pixiv/three-vrm-core@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-core/-/three-vrm-core-2.0.0.tgz#50ea7639ca974881601ca962c141a96a4139398d" - integrity sha512-par/2g7Y3LlUe75GYQ7LTCJkdAbrs7diM+7Jji950XnM3MzpQU5Z1194a7KiYt+5IWzKy/YR0QF0uK4lpLYeOA== - dependencies: - "@pixiv/types-vrm-0.0" "2.0.0" - "@pixiv/types-vrmc-vrm-1.0" "2.0.0" - -"@pixiv/three-vrm-materials-hdr-emissive-multiplier@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-materials-hdr-emissive-multiplier/-/three-vrm-materials-hdr-emissive-multiplier-2.0.0.tgz#8ca2fa80877375bdffc98fd3c2214c61476e80af" - integrity sha512-pHwDSszXAd4GMc8aqSnp/Ez6YE5xXVFTqz9lHNq5VTKD3Btem3srRmN1nX4iXQ87MfjP6gK6p2CcVKnDR5xwxQ== - dependencies: - "@pixiv/types-vrmc-materials-hdr-emissive-multiplier-1.0" "2.0.0" - -"@pixiv/three-vrm-materials-mtoon@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-materials-mtoon/-/three-vrm-materials-mtoon-2.0.0.tgz#a5eaf4416d63ef4d480db5022fffc6f9fe8ef55c" - integrity sha512-POwnDVcMnS9xOSfC9o1tjQqElgDlcGN9fikiikMU+papKiD3bHYk2umyd2xm88RaW6Sk0LsdyFsuF+t7eYQnUQ== - dependencies: - "@pixiv/types-vrm-0.0" "2.0.0" - "@pixiv/types-vrmc-materials-mtoon-1.0" "2.0.0" +"@pixiv/three-vrm-animation@^2.1.0-beta.3": + version "2.1.0-beta.3" + resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-animation/-/three-vrm-animation-2.1.0-beta.3.tgz#d04e76f8f367fffca11ab2ec505604a589889728" + integrity sha512-VzcC0WpklZXVmO2JQSeOQslfV8bwLwwcz6bNDsfmSbeV6O5JSsVFEpbmdbmpTMRXYQvhsDpN/+F17VOFmRwJtg== + dependencies: + "@pixiv/three-vrm-core" "2.1.0-beta.3" + "@pixiv/types-vrmc-vrm-1.0" "2.0.8" + "@pixiv/types-vrmc-vrm-animation-1.0" "2.1.0-beta.3" + +"@pixiv/three-vrm-core@2.1.0-beta.3": + version "2.1.0-beta.3" + resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-core/-/three-vrm-core-2.1.0-beta.3.tgz#0d1d0ddefb227c6ed1314b70923f2436e7278851" + integrity sha512-2YdXYRQC+neEIG4xg+fqS2oEemq37ao7B/lKVBONNxq1DInybekJEnsmNk+a4aC0+O0j2wT5O9rTg1lUnWR9ng== + dependencies: + "@pixiv/types-vrm-0.0" "2.1.0-beta.3" + "@pixiv/types-vrmc-vrm-1.0" "2.1.0-beta.3" + +"@pixiv/three-vrm-materials-hdr-emissive-multiplier@2.1.0-beta.3": + version "2.1.0-beta.3" + resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-materials-hdr-emissive-multiplier/-/three-vrm-materials-hdr-emissive-multiplier-2.1.0-beta.3.tgz#7afc6b467101a0cfb26727c78b75b9dd8850b251" + integrity sha512-d5k4TWhlWo0zal+2R3yZSlgRjncIG0NRKB5gNb0UK6gYBt4nek7Wov6jeI/O7bu9ib5nJImmBofqHsTXtQaL4A== + dependencies: + "@pixiv/types-vrmc-materials-hdr-emissive-multiplier-1.0" "2.1.0-beta.3" + +"@pixiv/three-vrm-materials-mtoon@2.1.0-beta.3": + version "2.1.0-beta.3" + resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-materials-mtoon/-/three-vrm-materials-mtoon-2.1.0-beta.3.tgz#7fe875bb14da8a00dedc68d0ee1136df8855c5f6" + integrity sha512-KsGu0SE2Zoz32SXeF9/JyAJL0fniUMHLq74tH2G01jikRbz1ADiFa9Ivf0rfx4DfLp2jNJ3wxrVhkE6xFnPAAw== + dependencies: + "@pixiv/types-vrm-0.0" "2.1.0-beta.3" + "@pixiv/types-vrmc-materials-mtoon-1.0" "2.1.0-beta.3" + +"@pixiv/three-vrm-materials-v0compat@2.1.0-beta.3": + version "2.1.0-beta.3" + resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-materials-v0compat/-/three-vrm-materials-v0compat-2.1.0-beta.3.tgz#813f3f85d1b0246f8bd90da8b4668a29c8d4e553" + integrity sha512-w2G1Y8dBrBuBW2jezmgDVVcI2SNFP7tHkkxD9UWuMUxwxYc2luyp+UUNmhOtxUou2D7cE+Fku0ZQ/7dim/QQkg== + dependencies: + "@pixiv/types-vrm-0.0" "2.1.0-beta.3" + "@pixiv/types-vrmc-materials-mtoon-1.0" "2.1.0-beta.3" + +"@pixiv/three-vrm-node-constraint@2.1.0-beta.3": + version "2.1.0-beta.3" + resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-node-constraint/-/three-vrm-node-constraint-2.1.0-beta.3.tgz#4c67b10aee41e91676ac099a129df7a01479f0b3" + integrity sha512-7YAz86qTWGgUMtVOaGGmmlg+DO8fVEdu5QouSxmTUS8rdxVHfydNwPd6rltCG4S3VnUJbg3WXYQ3ej/7xJDvCQ== + dependencies: + "@pixiv/types-vrmc-node-constraint-1.0" "2.1.0-beta.3" + +"@pixiv/three-vrm-springbone@2.1.0-beta.3": + version "2.1.0-beta.3" + resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-springbone/-/three-vrm-springbone-2.1.0-beta.3.tgz#43fe767dde4004fbef7ca259ae4721c7c9721792" + integrity sha512-KpspWd58JDJXiD460OiQEJfcOhMgH73/vNsgbKH8q1E0xOMYnauOH3kPrEKBaCsr+8LMwZC170QmkAswXub7fw== + dependencies: + "@pixiv/types-vrm-0.0" "2.1.0-beta.3" + "@pixiv/types-vrmc-springbone-1.0" "2.1.0-beta.3" + +"@pixiv/three-vrm@^2.1.0-beta.3": + version "2.1.0-beta.3" + resolved "https://registry.yarnpkg.com/@pixiv/three-vrm/-/three-vrm-2.1.0-beta.3.tgz#42665cf7e77c12280130a7b1c73dc114611f3814" + integrity sha512-0B6/hIn8P0OPGMp16fXIFKBuOV/4SsD24kOWXxi6Uu45T9nXskeG4fzi8K3OsAMSkGkO2HHrQfDR4aPILwGaew== + dependencies: + "@pixiv/three-vrm-core" "2.1.0-beta.3" + "@pixiv/three-vrm-materials-hdr-emissive-multiplier" "2.1.0-beta.3" + "@pixiv/three-vrm-materials-mtoon" "2.1.0-beta.3" + "@pixiv/three-vrm-materials-v0compat" "2.1.0-beta.3" + "@pixiv/three-vrm-node-constraint" "2.1.0-beta.3" + "@pixiv/three-vrm-springbone" "2.1.0-beta.3" + +"@pixiv/types-vrm-0.0@2.1.0-beta.3": + version "2.1.0-beta.3" + resolved "https://registry.yarnpkg.com/@pixiv/types-vrm-0.0/-/types-vrm-0.0-2.1.0-beta.3.tgz#2a9ad346e24dfe2c7d41f0a8635ce8c9815461f1" + integrity sha512-Ccf9qsD9Ts2rYsxAfCS9fQG2C6UO7liUIpJlL5MCcEeBc85uuiQVqnOFkWHoM190zKpJ4KkELGvhpMIOmM/a7g== + +"@pixiv/types-vrmc-materials-hdr-emissive-multiplier-1.0@2.1.0-beta.3": + version "2.1.0-beta.3" + resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-materials-hdr-emissive-multiplier-1.0/-/types-vrmc-materials-hdr-emissive-multiplier-1.0-2.1.0-beta.3.tgz#27723c27cb2ffbddd64ae668718c1f2fcb857e27" + integrity sha512-S/LdXimrXtM2TwVhoKg4O5V7a/CurAOzRQAwLyS6RG0/s98149UIubEfwwj8th9KlreDfxAzh1MWqWOlGNHmyQ== + +"@pixiv/types-vrmc-materials-mtoon-1.0@2.1.0-beta.3": + version "2.1.0-beta.3" + resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-materials-mtoon-1.0/-/types-vrmc-materials-mtoon-1.0-2.1.0-beta.3.tgz#aa7b16b80b29776109375995515b771632165cd9" + integrity sha512-563+ZV/j+ZBYk4zvoTf+DxAf6xChyoBAe8f7eS9eHyDvkNYZ8DSA3JCjfJQp78X0A7957lZJqWOAonkUZP4q9w== + +"@pixiv/types-vrmc-node-constraint-1.0@2.1.0-beta.3": + version "2.1.0-beta.3" + resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-node-constraint-1.0/-/types-vrmc-node-constraint-1.0-2.1.0-beta.3.tgz#d901f418c50680cf704924310ec84deb0fe586e9" + integrity sha512-ihoB0myodWhsMEMe7lMd7HLcqWu+DSmP+I6moFATEAk3+GVTxznyf7fRH0i4SQ4P9YIkkEy8p5xjgxCn5YJsxg== + +"@pixiv/types-vrmc-springbone-1.0@2.1.0-beta.3": + version "2.1.0-beta.3" + resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-springbone-1.0/-/types-vrmc-springbone-1.0-2.1.0-beta.3.tgz#6001488b2961e89b8b635b8185dc3eed10858303" + integrity sha512-sZvM8vq8nQyioNCSk93cN8oVjr4ZQkxUzO0q77x0ouaCoPV9UYsvBryFcLSQT3HEtv8qoLo9b+vxVHOeILXubQ== + +"@pixiv/types-vrmc-vrm-1.0@2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-vrm-1.0/-/types-vrmc-vrm-1.0-2.0.3.tgz#6f3674b955d54c0c5489bc57e0e19552d0c613e1" + integrity sha512-RMP34Bk1qLFQv/CRB1Zqvn2qMFfWQfP2Hms5QrrfoBsW9XroZdEe0zPLNbGmUPYh4F7VtBb+B7+RCuymRtpehA== -"@pixiv/three-vrm-materials-v0compat@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-materials-v0compat/-/three-vrm-materials-v0compat-2.0.0.tgz#cc85ee90e14a5f790aaa800b74067ceada69c589" - integrity sha512-XcWD/W7gRrFEYB+bNsxhLa8yXmzTxQC911K6T5KEOmf8JIjb+VswrAoKrq7JoEfO6aFKIrGB35i+VPWt8oWzQQ== - dependencies: - "@pixiv/types-vrm-0.0" "2.0.0" - "@pixiv/types-vrmc-materials-mtoon-1.0" "2.0.0" +"@pixiv/types-vrmc-vrm-1.0@2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-vrm-1.0/-/types-vrmc-vrm-1.0-2.0.8.tgz#3204cd4026a5a756e503027461cf5b7315ddcdb9" + integrity sha512-0CkSaqp9pSocuvJ2ueiQQ3zkKKeyha7MlcRCjfocQNmihK5vIPEbNIBkWn11IrgyllmdPLn5pAhtwtp/a3yiVA== -"@pixiv/three-vrm-node-constraint@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-node-constraint/-/three-vrm-node-constraint-2.0.0.tgz#97cf21798c59e13259419bf8d301585de137f74e" - integrity sha512-t5po7R90VcrKlzdZ3PLYhFXSY1nXLRFuP3709sVneH+89VkSIZ2jjKqcUlDHW2DOqR6sEXjDMc8WKy1VYnLs0Q== - dependencies: - "@pixiv/types-vrmc-node-constraint-1.0" "2.0.0" +"@pixiv/types-vrmc-vrm-1.0@2.1.0-beta.3": + version "2.1.0-beta.3" + resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-vrm-1.0/-/types-vrmc-vrm-1.0-2.1.0-beta.3.tgz#62853bbfbaa23303efed74ce5adcfd333383df69" + integrity sha512-4MOeWX0j9+YPXvIozCbU0aM1a2EE8wzsILKJ5WkbLKqQ6Q0Vm7ZLBtc3OGpRnsTuYh2SkVAxPlRKuP4WBdj3rQ== -"@pixiv/three-vrm-springbone@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-springbone/-/three-vrm-springbone-2.0.0.tgz#c1e31b78ee007df67c4b8c0c067199391bdd2807" - integrity sha512-p5ajFX0a12H3rCWxTpNGcXUaKjQcJsiQ4yzQ5r9EK75eOSFwZVqHh5WvCEYgAL92h81ENyZTp1M1yz8s4OG1IQ== +"@pixiv/types-vrmc-vrm-animation-1.0@2.1.0-beta.3": + version "2.1.0-beta.3" + resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-vrm-animation-1.0/-/types-vrmc-vrm-animation-1.0-2.1.0-beta.3.tgz#297f7bbe209599751284651e081e95c1807bfc61" + integrity sha512-GUr/pWcWFrVuuBui8EQpJEpXkOxL1h908VgLQmhhjPPYXu3OqnE/crOQDdjJpDNNICY5/+JPKum85PqvOeTkkQ== dependencies: - "@pixiv/types-vrm-0.0" "2.0.0" - "@pixiv/types-vrmc-springbone-1.0" "2.0.0" - -"@pixiv/three-vrm@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@pixiv/three-vrm/-/three-vrm-2.0.0.tgz#fcf72ed9f6781cbc37db39ac1d98aea65dbc8316" - integrity sha512-CcImfWnMHz7kS/dHbfeWmwHECztL7wsU2LL18m7vBNzVIj8ncNrZMzCOB783nDae66ERqa73ik+B8juGS045rg== - dependencies: - "@pixiv/three-vrm-core" "2.0.0" - "@pixiv/three-vrm-materials-hdr-emissive-multiplier" "2.0.0" - "@pixiv/three-vrm-materials-mtoon" "2.0.0" - "@pixiv/three-vrm-materials-v0compat" "2.0.0" - "@pixiv/three-vrm-node-constraint" "2.0.0" - "@pixiv/three-vrm-springbone" "2.0.0" - -"@pixiv/types-vrm-0.0@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@pixiv/types-vrm-0.0/-/types-vrm-0.0-2.0.0.tgz#c84f66cffc8cf4fe44b0cc58dae820da02577b2e" - integrity sha512-W9dTKZW8a38ahYlDTuXuq65ze3YZu8b7n5AUWYIrjssannMYDn2OlSyOkzUmi+sILsGgo8htSy5wvfezODpYxQ== - -"@pixiv/types-vrmc-materials-hdr-emissive-multiplier-1.0@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-materials-hdr-emissive-multiplier-1.0/-/types-vrmc-materials-hdr-emissive-multiplier-1.0-2.0.0.tgz#5502c836e13891499aa89c836117626bc2077bc1" - integrity sha512-Z/n6Fri7DsD/4/mnAA2W7E7ETosDqfeyn+YwET0T9zSk9fe0470Cqzb5tUIwLgmUDwa1nh0fXRrmZ+CYN3orCg== - -"@pixiv/types-vrmc-materials-mtoon-1.0@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-materials-mtoon-1.0/-/types-vrmc-materials-mtoon-1.0-2.0.0.tgz#78fb544d1609948b08da5d448de47a8dd21ff550" - integrity sha512-aQnct/auTzSqhGtMpPe0ec1rVQLyzUlfJxS609Vfp4WSz3NGBBmcfUNq6pj/uDaXyVCekwI9i0yhbjBhAR7Blg== - -"@pixiv/types-vrmc-node-constraint-1.0@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-node-constraint-1.0/-/types-vrmc-node-constraint-1.0-2.0.0.tgz#e14c93fa99cec92518bd491ea768d3f5589563a2" - integrity sha512-IoWAKxBAmK7fb6hrVf/DAPNHomgemhwHgkKhddzsPAj1BV7YIDm4vQrFNPGYdNaY/OwMUieqlNHoFg/3K6jvCw== - -"@pixiv/types-vrmc-springbone-1.0@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-springbone-1.0/-/types-vrmc-springbone-1.0-2.0.0.tgz#8b6f6ff70e7efaebe476adf57358c8a81b7493b2" - integrity sha512-AhjngNo0yuowYVmokepIGPoX0tvMvinfIbt/lgvm5TamoVW1k0w9OeDDPkYnve3/zbZOL/XafUVC2S8l5nTTvg== - -"@pixiv/types-vrmc-vrm-1.0@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-vrm-1.0/-/types-vrmc-vrm-1.0-2.0.0.tgz#d7f4aa6007e32d6311c244ab596b9f01349e405c" - integrity sha512-WTDrt28EySemfeojqy8XkoO1LqZ7snx6FK8ZpT6DD4V1kGVk9L/OrIlIFqFJi+B0MdCG5IXvBQVZIDj/nA8xlg== + "@pixiv/types-vrmc-vrm-1.0" "2.0.3" "@pkgr/utils@^2.3.1": version "2.4.1" From 982554903dc257aa032b04b6a5b4902e5d8f4153 Mon Sep 17 00:00:00 2001 From: 0b5vr <0b5vr@0b5vr.com> Date: Thu, 15 Feb 2024 18:14:33 +0900 Subject: [PATCH 2/2] deps: Bump three-vrm and three-vrm-animation to v2.1.0 --- package.json | 4 +- yarn.lock | 194 +++++++++++++++++++++++++-------------------------- 2 files changed, 99 insertions(+), 99 deletions(-) diff --git a/package.json b/package.json index 2140e02..157fe17 100644 --- a/package.json +++ b/package.json @@ -15,8 +15,8 @@ "@charcoal-ui/styled": "^3.1.1", "@charcoal-ui/theme": "^3.1.1", "@gltf-transform/core": "^3.4.0", - "@pixiv/three-vrm": "^2.1.0-beta.3", - "@pixiv/three-vrm-animation": "^2.1.0-beta.3", + "@pixiv/three-vrm": "^2.1.0", + "@pixiv/three-vrm-animation": "^2.1.0", "@types/node": "20.2.5", "@types/react": "18.2.9", "@types/react-dom": "18.2.4", diff --git a/yarn.lock b/yarn.lock index 7fa7259..0ebcaa7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -488,97 +488,97 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@pixiv/three-vrm-animation@^2.1.0-beta.3": - version "2.1.0-beta.3" - resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-animation/-/three-vrm-animation-2.1.0-beta.3.tgz#d04e76f8f367fffca11ab2ec505604a589889728" - integrity sha512-VzcC0WpklZXVmO2JQSeOQslfV8bwLwwcz6bNDsfmSbeV6O5JSsVFEpbmdbmpTMRXYQvhsDpN/+F17VOFmRwJtg== +"@pixiv/three-vrm-animation@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-animation/-/three-vrm-animation-2.1.0.tgz#9a662ec3653422b4c8e5e8de9fa2049effd4b1b4" + integrity sha512-ApXje20t8IxkKW428iWmjvC0g5tmFRvKs1QSEBPpO4o1zr9M0dZzIP75aPll2nrfFMTm2iMtDG/aQTQzxUpRUw== dependencies: - "@pixiv/three-vrm-core" "2.1.0-beta.3" + "@pixiv/three-vrm-core" "2.1.0" "@pixiv/types-vrmc-vrm-1.0" "2.0.8" - "@pixiv/types-vrmc-vrm-animation-1.0" "2.1.0-beta.3" - -"@pixiv/three-vrm-core@2.1.0-beta.3": - version "2.1.0-beta.3" - resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-core/-/three-vrm-core-2.1.0-beta.3.tgz#0d1d0ddefb227c6ed1314b70923f2436e7278851" - integrity sha512-2YdXYRQC+neEIG4xg+fqS2oEemq37ao7B/lKVBONNxq1DInybekJEnsmNk+a4aC0+O0j2wT5O9rTg1lUnWR9ng== - dependencies: - "@pixiv/types-vrm-0.0" "2.1.0-beta.3" - "@pixiv/types-vrmc-vrm-1.0" "2.1.0-beta.3" - -"@pixiv/three-vrm-materials-hdr-emissive-multiplier@2.1.0-beta.3": - version "2.1.0-beta.3" - resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-materials-hdr-emissive-multiplier/-/three-vrm-materials-hdr-emissive-multiplier-2.1.0-beta.3.tgz#7afc6b467101a0cfb26727c78b75b9dd8850b251" - integrity sha512-d5k4TWhlWo0zal+2R3yZSlgRjncIG0NRKB5gNb0UK6gYBt4nek7Wov6jeI/O7bu9ib5nJImmBofqHsTXtQaL4A== - dependencies: - "@pixiv/types-vrmc-materials-hdr-emissive-multiplier-1.0" "2.1.0-beta.3" - -"@pixiv/three-vrm-materials-mtoon@2.1.0-beta.3": - version "2.1.0-beta.3" - resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-materials-mtoon/-/three-vrm-materials-mtoon-2.1.0-beta.3.tgz#7fe875bb14da8a00dedc68d0ee1136df8855c5f6" - integrity sha512-KsGu0SE2Zoz32SXeF9/JyAJL0fniUMHLq74tH2G01jikRbz1ADiFa9Ivf0rfx4DfLp2jNJ3wxrVhkE6xFnPAAw== - dependencies: - "@pixiv/types-vrm-0.0" "2.1.0-beta.3" - "@pixiv/types-vrmc-materials-mtoon-1.0" "2.1.0-beta.3" - -"@pixiv/three-vrm-materials-v0compat@2.1.0-beta.3": - version "2.1.0-beta.3" - resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-materials-v0compat/-/three-vrm-materials-v0compat-2.1.0-beta.3.tgz#813f3f85d1b0246f8bd90da8b4668a29c8d4e553" - integrity sha512-w2G1Y8dBrBuBW2jezmgDVVcI2SNFP7tHkkxD9UWuMUxwxYc2luyp+UUNmhOtxUou2D7cE+Fku0ZQ/7dim/QQkg== - dependencies: - "@pixiv/types-vrm-0.0" "2.1.0-beta.3" - "@pixiv/types-vrmc-materials-mtoon-1.0" "2.1.0-beta.3" - -"@pixiv/three-vrm-node-constraint@2.1.0-beta.3": - version "2.1.0-beta.3" - resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-node-constraint/-/three-vrm-node-constraint-2.1.0-beta.3.tgz#4c67b10aee41e91676ac099a129df7a01479f0b3" - integrity sha512-7YAz86qTWGgUMtVOaGGmmlg+DO8fVEdu5QouSxmTUS8rdxVHfydNwPd6rltCG4S3VnUJbg3WXYQ3ej/7xJDvCQ== - dependencies: - "@pixiv/types-vrmc-node-constraint-1.0" "2.1.0-beta.3" - -"@pixiv/three-vrm-springbone@2.1.0-beta.3": - version "2.1.0-beta.3" - resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-springbone/-/three-vrm-springbone-2.1.0-beta.3.tgz#43fe767dde4004fbef7ca259ae4721c7c9721792" - integrity sha512-KpspWd58JDJXiD460OiQEJfcOhMgH73/vNsgbKH8q1E0xOMYnauOH3kPrEKBaCsr+8LMwZC170QmkAswXub7fw== - dependencies: - "@pixiv/types-vrm-0.0" "2.1.0-beta.3" - "@pixiv/types-vrmc-springbone-1.0" "2.1.0-beta.3" - -"@pixiv/three-vrm@^2.1.0-beta.3": - version "2.1.0-beta.3" - resolved "https://registry.yarnpkg.com/@pixiv/three-vrm/-/three-vrm-2.1.0-beta.3.tgz#42665cf7e77c12280130a7b1c73dc114611f3814" - integrity sha512-0B6/hIn8P0OPGMp16fXIFKBuOV/4SsD24kOWXxi6Uu45T9nXskeG4fzi8K3OsAMSkGkO2HHrQfDR4aPILwGaew== - dependencies: - "@pixiv/three-vrm-core" "2.1.0-beta.3" - "@pixiv/three-vrm-materials-hdr-emissive-multiplier" "2.1.0-beta.3" - "@pixiv/three-vrm-materials-mtoon" "2.1.0-beta.3" - "@pixiv/three-vrm-materials-v0compat" "2.1.0-beta.3" - "@pixiv/three-vrm-node-constraint" "2.1.0-beta.3" - "@pixiv/three-vrm-springbone" "2.1.0-beta.3" - -"@pixiv/types-vrm-0.0@2.1.0-beta.3": - version "2.1.0-beta.3" - resolved "https://registry.yarnpkg.com/@pixiv/types-vrm-0.0/-/types-vrm-0.0-2.1.0-beta.3.tgz#2a9ad346e24dfe2c7d41f0a8635ce8c9815461f1" - integrity sha512-Ccf9qsD9Ts2rYsxAfCS9fQG2C6UO7liUIpJlL5MCcEeBc85uuiQVqnOFkWHoM190zKpJ4KkELGvhpMIOmM/a7g== - -"@pixiv/types-vrmc-materials-hdr-emissive-multiplier-1.0@2.1.0-beta.3": - version "2.1.0-beta.3" - resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-materials-hdr-emissive-multiplier-1.0/-/types-vrmc-materials-hdr-emissive-multiplier-1.0-2.1.0-beta.3.tgz#27723c27cb2ffbddd64ae668718c1f2fcb857e27" - integrity sha512-S/LdXimrXtM2TwVhoKg4O5V7a/CurAOzRQAwLyS6RG0/s98149UIubEfwwj8th9KlreDfxAzh1MWqWOlGNHmyQ== - -"@pixiv/types-vrmc-materials-mtoon-1.0@2.1.0-beta.3": - version "2.1.0-beta.3" - resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-materials-mtoon-1.0/-/types-vrmc-materials-mtoon-1.0-2.1.0-beta.3.tgz#aa7b16b80b29776109375995515b771632165cd9" - integrity sha512-563+ZV/j+ZBYk4zvoTf+DxAf6xChyoBAe8f7eS9eHyDvkNYZ8DSA3JCjfJQp78X0A7957lZJqWOAonkUZP4q9w== - -"@pixiv/types-vrmc-node-constraint-1.0@2.1.0-beta.3": - version "2.1.0-beta.3" - resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-node-constraint-1.0/-/types-vrmc-node-constraint-1.0-2.1.0-beta.3.tgz#d901f418c50680cf704924310ec84deb0fe586e9" - integrity sha512-ihoB0myodWhsMEMe7lMd7HLcqWu+DSmP+I6moFATEAk3+GVTxznyf7fRH0i4SQ4P9YIkkEy8p5xjgxCn5YJsxg== - -"@pixiv/types-vrmc-springbone-1.0@2.1.0-beta.3": - version "2.1.0-beta.3" - resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-springbone-1.0/-/types-vrmc-springbone-1.0-2.1.0-beta.3.tgz#6001488b2961e89b8b635b8185dc3eed10858303" - integrity sha512-sZvM8vq8nQyioNCSk93cN8oVjr4ZQkxUzO0q77x0ouaCoPV9UYsvBryFcLSQT3HEtv8qoLo9b+vxVHOeILXubQ== + "@pixiv/types-vrmc-vrm-animation-1.0" "2.1.0" + +"@pixiv/three-vrm-core@2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-core/-/three-vrm-core-2.1.0.tgz#c7f9703ba7c80c40ea2970b0d6675aca9555bbfd" + integrity sha512-k+E4ULLnetIFzsV6COs1bRi8G8WIf/Svo+89GBz0zUWVOVZqO+d18ylg5VDWs6mVqHN+xc505ApyYlCCEXcaVQ== + dependencies: + "@pixiv/types-vrm-0.0" "2.1.0" + "@pixiv/types-vrmc-vrm-1.0" "2.1.0" + +"@pixiv/three-vrm-materials-hdr-emissive-multiplier@2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-materials-hdr-emissive-multiplier/-/three-vrm-materials-hdr-emissive-multiplier-2.1.0.tgz#49f95232f1a192e05bf7b9e465960f1f6e5018c3" + integrity sha512-bdRKZd8EnCQJwwGoD9fQGnGh6olpoch6gdhlQTORgHR3/o1hoFAG4KnjiqsQw6qK5bMXUyt+nHGmG1GwNI7gUw== + dependencies: + "@pixiv/types-vrmc-materials-hdr-emissive-multiplier-1.0" "2.1.0" + +"@pixiv/three-vrm-materials-mtoon@2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-materials-mtoon/-/three-vrm-materials-mtoon-2.1.0.tgz#24a855931f9ae63a7a788e99e498348ecf576680" + integrity sha512-8jBM0Xod1h0ITFJfieozUwUU7Sj7WmlJoGO9bLd5pqmFnkVIT6OM7Vtop4VmGsc6TqMP5NiVwOUKlQidNpUZkg== + dependencies: + "@pixiv/types-vrm-0.0" "2.1.0" + "@pixiv/types-vrmc-materials-mtoon-1.0" "2.1.0" + +"@pixiv/three-vrm-materials-v0compat@2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-materials-v0compat/-/three-vrm-materials-v0compat-2.1.0.tgz#079ba85722dd6175aeb6424900115b9c9829cac6" + integrity sha512-LbFTN6P/gCzTnSEXXBYK8WEQtEGZzpi+hJGbsNUUKkamnVyr7CdogqiYxZz8EDPAn+oXh+7x8vQR9NDTuT3ILA== + dependencies: + "@pixiv/types-vrm-0.0" "2.1.0" + "@pixiv/types-vrmc-materials-mtoon-1.0" "2.1.0" + +"@pixiv/three-vrm-node-constraint@2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-node-constraint/-/three-vrm-node-constraint-2.1.0.tgz#cd5e021111ee020ec26c3c168514d3b5b16f8d09" + integrity sha512-NExbXThFRckIcJKi9was9pbA2L++8d/vjOAt3y9OtXWpT0QVnzxLv8vB1xOVGtidMtdS06bFsFPIOPz5XTb3GQ== + dependencies: + "@pixiv/types-vrmc-node-constraint-1.0" "2.1.0" + +"@pixiv/three-vrm-springbone@2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-springbone/-/three-vrm-springbone-2.1.0.tgz#bacf850cad683ad4f56cf455818158487b703c55" + integrity sha512-tYceFxWsUOB1TiRU+gZSWw2MB1UnmSP0p1d1XsS/PvT26GuYC+JfbJtmGoJo/gtqfKpltcuutUT6h/kewYAe4w== + dependencies: + "@pixiv/types-vrm-0.0" "2.1.0" + "@pixiv/types-vrmc-springbone-1.0" "2.1.0" + +"@pixiv/three-vrm@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@pixiv/three-vrm/-/three-vrm-2.1.0.tgz#930227f700edb03f939944b1326ea8b6c198853e" + integrity sha512-BxvhKAuptbKYkWXlnb89CJasbq4u0wlF2gM4ljSK9vqUvunw+3zAzkIV6FNtooJd2El5UWUlsY+5hft3ptp+2A== + dependencies: + "@pixiv/three-vrm-core" "2.1.0" + "@pixiv/three-vrm-materials-hdr-emissive-multiplier" "2.1.0" + "@pixiv/three-vrm-materials-mtoon" "2.1.0" + "@pixiv/three-vrm-materials-v0compat" "2.1.0" + "@pixiv/three-vrm-node-constraint" "2.1.0" + "@pixiv/three-vrm-springbone" "2.1.0" + +"@pixiv/types-vrm-0.0@2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@pixiv/types-vrm-0.0/-/types-vrm-0.0-2.1.0.tgz#c2ae9b0b5f31ef529b404d447018a82d97c2b8a4" + integrity sha512-ccJGuTxJPCIgWXBDKTG/9ESMx6ZFcS0s3VjZG3L1Xz53YVVJR+YCSEivWmyT9qSQ6+GNyzOHuOopQrDVxGZWCw== + +"@pixiv/types-vrmc-materials-hdr-emissive-multiplier-1.0@2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-materials-hdr-emissive-multiplier-1.0/-/types-vrmc-materials-hdr-emissive-multiplier-1.0-2.1.0.tgz#d040c08054834bc0e87cd313fbf11f7ea1c971a8" + integrity sha512-wFeoZTrf13K6t6Ah4quTCoRb74gvmnSUqumPZyQjSGLS/VJ8G3AzDUfXQyDiaK95rVqoYIP5ebY5mXTWnfq5xA== + +"@pixiv/types-vrmc-materials-mtoon-1.0@2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-materials-mtoon-1.0/-/types-vrmc-materials-mtoon-1.0-2.1.0.tgz#3b8ff4e4d692fcf09a66fb7de1b0b889c447a7f3" + integrity sha512-qz1BX1WUf1zUoEz0yHfFZzLLhgvPdOvxBxmSrO79FFYqYS5Ej4xrjhiu7MyJjWL+o3DnspQygkPZPN+XXdytyg== + +"@pixiv/types-vrmc-node-constraint-1.0@2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-node-constraint-1.0/-/types-vrmc-node-constraint-1.0-2.1.0.tgz#08d11590a6ac964874bcd23e63ee10e9f2a5eb98" + integrity sha512-pLWr0yf+tlT1Z+79IGKHvtHO6nRllY53E/Iwp0/WHKdWgLBnbymCtPfo3hqMds5VtIP/tj2CDiip08HMvMP6zA== + +"@pixiv/types-vrmc-springbone-1.0@2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-springbone-1.0/-/types-vrmc-springbone-1.0-2.1.0.tgz#04b966ace04aee499584357aef4ce986de6560e3" + integrity sha512-YwkDUIT72oBrzl+Wo09scH1ztaQY71j0bzd8ISdVVuOUtTf3v35GK3ios0SnK5ezvNObAh6SP6mNVau74KQJgg== "@pixiv/types-vrmc-vrm-1.0@2.0.3": version "2.0.3" @@ -590,15 +590,15 @@ resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-vrm-1.0/-/types-vrmc-vrm-1.0-2.0.8.tgz#3204cd4026a5a756e503027461cf5b7315ddcdb9" integrity sha512-0CkSaqp9pSocuvJ2ueiQQ3zkKKeyha7MlcRCjfocQNmihK5vIPEbNIBkWn11IrgyllmdPLn5pAhtwtp/a3yiVA== -"@pixiv/types-vrmc-vrm-1.0@2.1.0-beta.3": - version "2.1.0-beta.3" - resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-vrm-1.0/-/types-vrmc-vrm-1.0-2.1.0-beta.3.tgz#62853bbfbaa23303efed74ce5adcfd333383df69" - integrity sha512-4MOeWX0j9+YPXvIozCbU0aM1a2EE8wzsILKJ5WkbLKqQ6Q0Vm7ZLBtc3OGpRnsTuYh2SkVAxPlRKuP4WBdj3rQ== +"@pixiv/types-vrmc-vrm-1.0@2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-vrm-1.0/-/types-vrmc-vrm-1.0-2.1.0.tgz#60400a2d7a93ea159bbd1b09c8bfc9da082fff81" + integrity sha512-fanxk+/M2h9ErUhqc1dyfyhPnT5RNcpI0++y6cfTZcqb3EiZFhijG4C4QptjelLJSn3wDWr6pvzotTxLAew5ug== -"@pixiv/types-vrmc-vrm-animation-1.0@2.1.0-beta.3": - version "2.1.0-beta.3" - resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-vrm-animation-1.0/-/types-vrmc-vrm-animation-1.0-2.1.0-beta.3.tgz#297f7bbe209599751284651e081e95c1807bfc61" - integrity sha512-GUr/pWcWFrVuuBui8EQpJEpXkOxL1h908VgLQmhhjPPYXu3OqnE/crOQDdjJpDNNICY5/+JPKum85PqvOeTkkQ== +"@pixiv/types-vrmc-vrm-animation-1.0@2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-vrm-animation-1.0/-/types-vrmc-vrm-animation-1.0-2.1.0.tgz#cc0be2b4a57d7208ed79b78fafa5d9a017b6e8b4" + integrity sha512-pYc9ZQf4kX2CeOFiOvbGL0KZcSQti2XDg+c7W8dVrbjBYM/JSNnn8VgFQrD8SSsu3xlwvWeA6BUnf4BIZHU80A== dependencies: "@pixiv/types-vrmc-vrm-1.0" "2.0.3"