شبكة لديها [page:Skeleton] مع [page:Bone bones] يمكن استخدامها بعد ذلك لتحريك رؤوس الهندسة.
const geometry = new THREE.CylinderGeometry( 5, 5, 5, 5, 15, 5, 30 );
// create the skin indices and skin weights manually
// (typically a loader would read this data from a 3D model for you)
const position = geometry.attributes.position;
const vertex = new THREE.Vector3();
const skinIndices = [];
const skinWeights = [];
for ( let i = 0; i < position.count; i ++ ) {
vertex.fromBufferAttribute( position, i );
// compute skinIndex and skinWeight based on some configuration data
const y = ( vertex.y + sizing.halfHeight );
const skinIndex = Math.floor( y / sizing.segmentHeight );
const skinWeight = ( y % sizing.segmentHeight ) / sizing.segmentHeight;
skinIndices.push( skinIndex, skinIndex + 1, 0, 0 );
skinWeights.push( 1 - skinWeight, skinWeight, 0, 0 );
}
geometry.setAttribute( 'skinIndex', new THREE.Uint16BufferAttribute( skinIndices, 4 ) );
geometry.setAttribute( 'skinWeight', new THREE.Float32BufferAttribute( skinWeights, 4 ) );
// create skinned mesh and skeleton
const mesh = new THREE.SkinnedMesh( geometry, material );
const skeleton = new THREE.Skeleton( bones );
// see example from THREE.Skeleton
const rootBone = skeleton.bones[ 0 ];
mesh.add( rootBone );
// bind the skeleton to the mesh
mesh.bind( skeleton );
// move the bones and manipulate the model
skeleton.bones[ 0 ].rotation.x = -0.1;
skeleton.bones[ 1 ].rotation.x = 0.2;
[page:BufferGeometry geometry] - نسخة من [page:BufferGeometry].
[page:Material material] - (اختياري) نسخة من [page:Material].
الافتراضي هو [page:MeshBasicMaterial] جديد.
انظر إلى الفئة الأساسية [page:Mesh] للحصول على الخصائص المشتركة.
Either `AttachedBindMode` or `DetachedBindMode`. `AttachedBindMode` means the skinned mesh shares the same world space as the skeleton. This is not true when using `DetachedBindMode` which is useful when sharing a skeleton across multiple skinned meshes. Default is `AttachedBindMode`.
المصفوفة الأساسية المستخدمة لتحويلات العظام المربوطة.
المصفوفة الأساسية المستخدمة لإعادة تعيين تحويلات العظام المربوطة.
مربع التحديد لـ [name]. يمكن حسابه بـ [page:.computeBoundingBox](). الافتراضي هو `null`.
الكرة المحيطة لـ [name]. يمكن حسابها بـ [page:.computeBoundingSphere](). الافتراضي هو `null`.
علامة للقراءة فقط للتحقق مما إذا كان كائن معين هو من نوع [name].
[page:Skeleton] يمثل هيكل العظام للشبكة المشدودة.
انظر إلى الفئة الأساسية [page:Mesh] للحصول على الطرق المشتركة.
[page:Skeleton skeleton] - [page:Skeleton] تم إنشاؤه من شجرة [page:Bone Bones].
[page:Matrix4 bindMatrix] - [page:Matrix4] يمثل التحويل الأساسي
للهيكل العظمي.
ربط هيكل عظمي بالشبكة المشدودة. يتم حفظ bindMatrix في
خاصية .bindMatrix ويتم حساب .bindMatrixInverse.
لا تقوم هذه الطريقة حاليًا بنسخ نسخة من [name] بشكل صحيح. يرجى استخدام [page:SkeletonUtils.clone]() في هذه الأثناء.
حساب مربع التحديد، وتحديث خاصية [page:.boundingBox].
لا يتم حساب مربعات التحديد افتراضيًا. يجب حسابها بشكل صريح
، وإلا كانت `null`. إذا كانت نسخة من [name] متحركة،
يجب استدعاء هذه الطريقة في كل إطار لحساب مربع تحديد صحيح.
حساب الكرة المحيطة، وتحديث خاصية [page:.boundingSphere]
.
لا يتم حساب الكرات المحيطة افتراضيًا. يجب حسابها بشكل صريح
، وإلا كانت `null`. إذا كانت نسخة من [name] متحركة،
يجب استدعاء هذه الطريقة في كل إطار لحساب كرة محيطة صحيحة.
تطبيع أوزان الجلد.
هذه الطريقة تضع الشبكة المشدودة في وضعية الأساس (إعادة تعيين الوضعية).
تطبق تحويل العظام المرتبط بالفهرس المعطى على موضع المتجه المعطى. يُعاد المتجه المُحدَّث.
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]