Пример #1
0
        /// <summary>
        /// ボーン選択の配列を得ます。
        /// </summary>
        /// <param name="sub_mesh">サブメッシュ</param>
        /// <param name="selected_node">選択ボーン</param>
        /// <returns>ボーン選択の配列</returns>
        static int[] ClipBoneSelections(TSOSubMesh sub_mesh, TSONode selected_node)
        {
            int[] clipped_boneSelections = new int[sub_mesh.maxPalettes];

            for (int numPalettes = 0; numPalettes < sub_mesh.maxPalettes; numPalettes++)
            {
                TSONode tso_node = sub_mesh.GetBone(numPalettes);
                clipped_boneSelections[numPalettes] = (selected_node == tso_node) ? 1 : 0;
            }
            return(clipped_boneSelections);
        }
Пример #2
0
        /// <summary>
        /// スキン変形行列の配列を得ます。
        /// </summary>
        /// <param name="sub_mesh">サブメッシュ</param>
        /// <returns>スキン変形行列の配列</returns>
        public Matrix[] ClipBoneMatrices(TSOSubMesh sub_mesh)
        {
            Matrix[] clipped_boneMatrices = new Matrix[sub_mesh.maxPalettes];

            for (int numPalettes = 0; numPalettes < sub_mesh.maxPalettes; numPalettes++)
            {
                TSONode tso_node = sub_mesh.GetBone(numPalettes);
                TMONode tmo_node;
                if (nodemap.TryGetValue(tso_node, out tmo_node))
                {
                    clipped_boneMatrices[numPalettes] = tso_node.offset_matrix * tmo_node.combined_matrix;
                }
            }
            return(clipped_boneMatrices);
        }
Пример #3
0
        /// <summary>
        /// スキン変形行列の配列を得ます。
        /// </summary>
        /// <param name="sub_mesh">サブメッシュ</param>
        /// <returns>スキン変形行列の配列</returns>
        public Matrix[] ClipBoneMatrices(TSOSubMesh sub_mesh)
        {
            Matrix[] clipped_boneMatrices = new Matrix[sub_mesh.maxPalettes];

            for (int numPalettes = 0; numPalettes < sub_mesh.maxPalettes; numPalettes++)
            {
            TSONode tso_node = sub_mesh.GetBone(numPalettes);
            TMONode tmo_node;
            if (nodemap.TryGetValue(tso_node, out tmo_node))
                clipped_boneMatrices[numPalettes] = tso_node.offset_matrix * tmo_node.combined_matrix;
            }
            return clipped_boneMatrices;
        }