junkerstock
 vrm-textc1 

<!DOCTYPE html>
<html>
<head>
<title>VRM All Bones Sampler</title>
<meta charset="utf-8">
<script src="https://aframe.io/releases/1.5.0/aframe.min.js"></script>
<script src="./js/aframe-vrm.js"></script>
</head>
<body>
<a-scene>
<a-entity
id="avatar"
vrm="src: ./vrm/tesA1_V0a.vrm"
vrm-anim
position="0 0 0"
rotation="0 180 0">
</a-entity>
<a-camera position="0 1.2 2.5"></a-camera>
<a-sky color="#ECECEC"></a-sky>
</a-scene>

<script>
// ========= 全ての標準ボーンを順番に動かすモーションデータ =========
const allBonesSamplerMotion = {
// --- 0-4秒: 体幹 (Hips, Spine, Chest) ---
hips: { keys: [ { rot: [0, 0, 0], time: 0 }, { rot: [0, 10, 5], time: 1 }, { rot: [0, -10, -5], time: 3 }, { rot: [0, 0, 0], time: 4 } ] },
spine: { keys: [ { rot: [0, 0, 0], time: 0 }, { rot: [0, 20, 0], time: 1 }, { rot: [0, -20, 0], time: 3 }, { rot: [0, 0, 0], time: 4 } ] },
chest: { keys: [ { rot: [0, 0, 0], time: 0 }, { rot: [10, 0, 0], time: 1 }, { rot: [-10, 0, 0], time: 3 }, { rot: [0, 0, 0], time: 4 } ] },

// --- 4-8秒: 首と頭 (Neck, Head) ---
neck: { keys: [ { rot: [0, 0, 0], time: 4 }, { rot: [20, 0, 0], time: 5 }, { rot: [0, 0, 0], time: 6 } ] },
head: { keys: [ { rot: [0, 0, 0], time: 6 }, { rot: [0, 30, 0], time: 7 }, { rot: [0, -30, 0], time: 8 }, { rot: [0, 0, 0], time: 9 } ] },

// --- 9-15秒: 右腕 (Shoulder, UpperArm, LowerArm, Hand) ---
rightShoulder: { keys: [ { rot: [0, 0, 0], time: 9 }, { rot: [-10, 0, -20], time: 10 }, { rot: [0, 0, 0], time: 15 } ] },
rightUpperArm: { keys: [ { rot: [0, 0, 0], time: 9 }, { rot: [0, 0, -90], time: 11 }, { rot: [0, 0, 0], time: 15 } ] },
rightLowerArm: { keys: [ { rot: [0, 0, 0], time: 9 }, { rot: [-90, 0, 0], time: 12 }, { rot: [0, 0, 0], time: 15 } ] },
rightHand: { keys: [ { rot: [0, 0, 0], time: 9 }, { rot: [0, 0, 30], time: 13 }, { rot: [0, 0, -30], time: 14 }, { rot: [0, 0, 0], time: 15 } ] },

// --- 15-21秒: 左腕 (Shoulder, UpperArm, LowerArm, Hand) ---
leftShoulder: { keys: [ { rot: [0, 0, 0], time: 15 }, { rot: [-10, 0, 20], time: 16 }, { rot: [0, 0, 0], time: 21 } ] },
leftUpperArm: { keys: [ { rot: [0, 0, 0], time: 15 }, { rot: [0, 0, 90], time: 17 }, { rot: [0, 0, 0], time: 21 } ] },
leftLowerArm: { keys: [ { rot: [0, 0, 0], time: 15 }, { rot: [-90, 0, 0], time: 18 }, { rot: [0, 0, 0], time: 21 } ] },
leftHand: { keys: [ { rot: [0, 0, 0], time: 15 }, { rot: [0, 0, 30], time: 19 }, { rot: [0, 0, -30], time: 20 }, { rot: [0, 0, 0], time: 21 } ] },

// --- 21-27秒: 右脚 (UpperLeg, LowerLeg, Foot) ---
rightUpperLeg: { keys: [ { rot: [0, 0, 0], time: 21 }, { rot: [-90, 0, 0], time: 22 }, { rot: [0, 0, 0], time: 27 } ] },
rightLowerLeg: { keys: [ { rot: [0, 0, 0], time: 21 }, { rot: [90, 0, 0], time: 23 }, { rot: [0, 0, 0], time: 27 } ] },
rightFoot: { keys: [ { rot: [0, 0, 0], time: 21 }, { rot: [30, 0, 0], time: 24 }, { rot: [-30, 0, 0], time: 25 }, { rot: [0, 0, 0], time: 27 } ] },

// --- 27-33秒: 左脚 (UpperLeg, LowerLeg, Foot) ---
leftUpperLeg: { keys: [ { rot: [0, 0, 0], time: 27 }, { rot: [-90, 0, 0], time: 28 }, { rot: [0, 0, 0], time: 33 } ] },
leftLowerLeg: { keys: [ { rot: [0, 0, 0], time: 27 }, { rot: [90, 0, 0], time: 29 }, { rot: [0, 0, 0], time: 33 } ] },
leftFoot: { keys: [ { rot: [0, 0, 0], time: 27 }, { rot: [30, 0, 0], time: 30 }, { rot: [-30, 0, 0], time: 31 }, { rot: [0, 0, 0], time: 33 } ] },

// --- 33-38秒: 右手の指(グー、パー) ---
rightThumbProximal: { keys: [ { rot: [0,0,0], time: 33 }, { rot: [0, 0, -60], time: 34 }, { rot: [0, 0, 0], time: 36 } ] },
rightThumbIntermediate: { keys: [ { rot: [0,0,0], time: 33 }, { rot: [0, 0, -60], time: 34 }, { rot: [0, 0, 0], time: 36 } ] },
rightThumbDistal: { keys: [ { rot: [0,0,0], time: 33 }, { rot: [0, 0, -60], time: 34 }, { rot: [0, 0, 0], time: 36 } ] },
rightIndexProximal: { keys: [ { rot: [0,0,0], time: 33 }, { rot: [0, 0, -90], time: 34 }, { rot: [0, 0, 0], time: 36 } ] },
rightIndexIntermediate: { keys: [ { rot: [0,0,0], time: 33 }, { rot: [0, 0, -90], time: 34 }, { rot: [0, 0, 0], time: 36 } ] },
rightIndexDistal: { keys: [ { rot: [0,0,0], time: 33 }, { rot: [0, 0, -90], time: 34 }, { rot: [0, 0, 0], time: 36 } ] },
rightMiddleProximal: { keys: [ { rot: [0,0,0], time: 33 }, { rot: [0, 0, -90], time: 34 }, { rot: [0, 0, 0], time: 36 } ] },
rightMiddleIntermediate: { keys: [ { rot: [0,0,0], time: 33 }, { rot: [0, 0, -90], time: 34 }, { rot: [0, 0, 0], time: 36 } ] },
rightMiddleDistal: { keys: [ { rot: [0,0,0], time: 33 }, { rot: [0, 0, -90], time: 34 }, { rot: [0, 0, 0], time: 36 } ] },
rightRingProximal: { keys: [ { rot: [0,0,0], time: 33 }, { rot: [0, 0, -90], time: 34 }, { rot: [0, 0, 0], time: 36 } ] },
rightRingIntermediate: { keys: [ { rot: [0,0,0], time: 33 }, { rot: [0, 0, -90], time: 34 }, { rot: [0, 0, 0], time: 36 } ] },
rightRingDistal: { keys: [ { rot: [0,0,0], time: 33 }, { rot: [0, 0, -90], time: 34 }, { rot: [0, 0, 0], time: 36 } ] },
rightLittleProximal: { keys: [ { rot: [0,0,0], time: 33 }, { rot: [0, 0, -90], time: 34 }, { rot: [0, 0, 0], time: 36 } ] },
rightLittleIntermediate: { keys: [ { rot: [0,0,0], time: 33 }, { rot: [0, 0, -90], time: 34 }, { rot: [0, 0, 0], time: 36 } ] },
rightLittleDistal: { keys: [ { rot: [0,0,0], time: 33 }, { rot: [0, 0, -90], time: 34 }, { rot: [0, 0, 0], time: 36 } ] },

// --- 38-43秒: 左手の指(グー、パー) ---
leftThumbProximal: { keys: [ { rot: [0,0,0], time: 38 }, { rot: [0, 0, 60], time: 39 }, { rot: [0, 0, 0], time: 41 } ] },
leftThumbIntermediate: { keys: [ { rot: [0,0,0], time: 38 }, { rot: [0, 0, 60], time: 39 }, { rot: [0, 0, 0], time: 41 } ] },
leftThumbDistal: { keys: [ { rot: [0,0,0], time: 38 }, { rot: [0, 0, 60], time: 39 }, { rot: [0, 0, 0], time: 41 } ] },
leftIndexProximal: { keys: [ { rot: [0,0,0], time: 38 }, { rot: [0, 0, 90], time: 39 }, { rot: [0, 0, 0], time: 41 } ] },
leftIndexIntermediate: { keys: [ { rot: [0,0,0], time: 38 }, { rot: [0, 0, 90], time: 39 }, { rot: [0, 0, 0], time: 41 } ] },
leftIndexDistal: { keys: [ { rot: [0,0,0], time: 38 }, { rot: [0, 0, 90], time: 39 }, { rot: [0, 0, 0], time: 41 } ] },
leftMiddleProximal: { keys: [ { rot: [0,0,0], time: 38 }, { rot: [0, 0, 90], time: 39 }, { rot: [0, 0, 0], time: 41 } ] },
leftMiddleIntermediate: { keys: [ { rot: [0,0,0], time: 38 }, { rot: [0, 0, 90], time: 39 }, { rot: [0, 0, 0], time: 41 } ] },
leftMiddleDistal: { keys: [ { rot: [0,0,0], time: 38 }, { rot: [0, 0, 90], time: 39 }, { rot: [0, 0, 0], time: 41 } ] },
leftRingProximal: { keys: [ { rot: [0,0,0], time: 38 }, { rot: [0, 0, 90], time: 39 }, { rot: [0, 0, 0], time: 41 } ] },
leftRingIntermediate: { keys: [ { rot: [0,0,0], time: 38 }, { rot: [0, 0, 90], time: 39 }, { rot: [0, 0, 0], time: 41 } ] },
leftRingDistal: { keys: [ { rot: [0,0,0], time: 38 }, { rot: [0, 0, 90], time: 39 }, { rot: [0, 0, 0], time: 41 } ] },
leftLittleProximal: { keys: [ { rot: [0,0,0], time: 38 }, { rot: [0, 0, 90], time: 39 }, { rot: [0, 0, 0], time: 41 } ] },
leftLittleIntermediate: { keys: [ { rot: [0,0,0], time: 38 }, { rot: [0, 0, 90], time: 39 }, { rot: [0, 0, 0], time: 41 } ] },
leftLittleDistal: { keys: [ { rot: [0,0,0], time: 38 }, { rot: [0, 0, 90], time: 39 }, { rot: [0, 0, 0], time: 41 } ] },
};

document.addEventListener('DOMContentLoaded', () => {
const avatarEl = document.querySelector('#avatar');
avatarEl.setAttribute('vrm-anim', 'idleMotion', allBonesSamplerMotion);
});
</script>
</body>
</html>


使用変数

avatarEl
BonesSamplerMotion
charset
color
id
position
rotation
src
vrm
ボーンを順番に動かすモーションデータ