Fix #137768: new FBX importer does not import some animations correctly
- FBX "root bone" should become the Armature object itself, and not an extra bone (follow same logic as Python importer did). - "World to armature matrix" was not correct for armatures that are parented under some other objects with transforms. - Parenting imported meshes under an Armature was not taking into account that the mesh bind transform might not be the same as the current mesh node transform (i.e. was not setting "matrix parent inverse" to compensate like the Python importer did). - The repro file in #137768 also exposed an issue that importing custom vertex normals was not working correctly in the new importer, when mesh is partially invalid (validation alters the mesh, custom normals have to be set afterwards). Pull Request: https://projects.blender.org/blender/blender/pulls/138736
This commit is contained in:
committed by
Aras Pranckevicius
parent
6a31554394
commit
a96ecd2834
@@ -218,7 +218,7 @@ void FbxImportContext::import_empties()
|
||||
{
|
||||
/* Create empties for fbx nodes. */
|
||||
for (const ufbx_node *node : this->fbx.nodes) {
|
||||
/* Ignore root, and bones and nodes for which we have created objects already. */
|
||||
/* Ignore root, bones and nodes for which we have created objects already. */
|
||||
if (node->is_root || node->bone || this->mapping.el_to_object.contains(&node->element)) {
|
||||
continue;
|
||||
}
|
||||
@@ -253,9 +253,9 @@ void FbxImportContext::setup_hierarchy()
|
||||
if (node == nullptr) {
|
||||
continue;
|
||||
}
|
||||
if (node->bone != nullptr) {
|
||||
/* If this node is for a bone, do not try to setup object parenting for it
|
||||
* (the object for bone bones is whole armature). */
|
||||
if (node->bone != nullptr && !node->bone->is_root) {
|
||||
/* If this node is for a non-root bone, do not try to setup object parenting
|
||||
* for it (the object for bone bones is whole armature). */
|
||||
continue;
|
||||
}
|
||||
if (node->parent) {
|
||||
|
||||
@@ -202,7 +202,7 @@ static void create_transform_curve_desc(const FbxElementMapping &mapping,
|
||||
bool is_bone = false;
|
||||
std::string group_name_str = get_fbx_name(anim.fbx_elem->name);
|
||||
const ufbx_node *fnode = ufbx_as_node(anim.fbx_elem);
|
||||
if (fnode != nullptr && fnode->bone != nullptr) {
|
||||
if (fnode != nullptr && fnode->bone != nullptr && !fnode->bone->is_root) {
|
||||
is_bone = true;
|
||||
group_name_str = mapping.node_to_name.lookup_default(fnode, "");
|
||||
rna_prefix = std::string("pose.bones[\"") + group_name_str + "\"].";
|
||||
@@ -255,7 +255,7 @@ static void create_transform_curve_data(const FbxElementMapping &mapping,
|
||||
bool is_bone = false;
|
||||
const ufbx_node *fnode = ufbx_as_node(anim.fbx_elem);
|
||||
ufbx_matrix bone_xform = ufbx_identity_matrix;
|
||||
if (fnode != nullptr && fnode->bone != nullptr) {
|
||||
if (fnode != nullptr && fnode->bone != nullptr && !fnode->bone->is_root) {
|
||||
is_bone = true;
|
||||
|
||||
/* Bone transform curves need to be transformed to the bind transform
|
||||
@@ -268,9 +268,8 @@ static void create_transform_curve_data(const FbxElementMapping &mapping,
|
||||
if (!bone_at_scene_root) {
|
||||
Object *arm_obj = mapping.bone_to_armature.lookup_default(fnode, nullptr);
|
||||
if (arm_obj != nullptr) {
|
||||
ufbx_matrix arm_to_world;
|
||||
m44_to_matrix(arm_obj->runtime->object_to_world.ptr(), arm_to_world);
|
||||
world_to_arm = ufbx_matrix_invert(&arm_to_world);
|
||||
world_to_arm = mapping.armature_world_to_arm_pose_matrix.lookup_default(
|
||||
arm_obj, ufbx_identity_matrix);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
|
||||
#include "BKE_action.hh"
|
||||
#include "BKE_armature.hh"
|
||||
#include "BKE_lib_id.hh"
|
||||
#include "BKE_object.hh"
|
||||
#include "BKE_object_types.hh"
|
||||
|
||||
#include "BLI_math_vector.hh"
|
||||
|
||||
@@ -75,11 +75,29 @@ Object *ArmatureImportContext::create_armature_for_node(const ufbx_node *node)
|
||||
read_custom_properties(node->props, obj->id, this->params.props_enum_as_string);
|
||||
}
|
||||
node_matrix_to_obj(node, obj, this->mapping);
|
||||
|
||||
/* Record world to fbx node matrix for the armature object. */
|
||||
ufbx_matrix world_to_arm = ufbx_matrix_invert(&node->node_to_world);
|
||||
this->mapping.armature_world_to_arm_node_matrix.add(obj, world_to_arm);
|
||||
|
||||
/* Record world to posed root node matrix. */
|
||||
if (node->bind_pose && node->bind_pose->is_bind_pose) {
|
||||
for (const ufbx_bone_pose &pose : node->bind_pose->bone_poses) {
|
||||
if (pose.bone_node == node) {
|
||||
world_to_arm = ufbx_matrix_invert(&pose.bone_to_world);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
this->mapping.armature_world_to_arm_pose_matrix.add(obj, world_to_arm);
|
||||
}
|
||||
else {
|
||||
/* For armatures created at root, make them have the same rotation/scale
|
||||
* as done by ufbx for all regular nodes. */
|
||||
ufbx_matrix_to_obj(this->mapping.global_conv_matrix, obj);
|
||||
ufbx_matrix world_to_arm = ufbx_matrix_invert(&this->mapping.global_conv_matrix);
|
||||
this->mapping.armature_world_to_arm_pose_matrix.add(obj, world_to_arm);
|
||||
this->mapping.armature_world_to_arm_node_matrix.add(obj, world_to_arm);
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
@@ -94,40 +112,47 @@ void ArmatureImportContext::create_armature_bones(const ufbx_node *node,
|
||||
{
|
||||
bArmature *arm = static_cast<bArmature *>(arm_obj->data);
|
||||
|
||||
EditBone *bone = ED_armature_ebone_add(arm, get_fbx_name(node->name, "Bone"));
|
||||
this->mapping.node_to_name.add(node, bone->name);
|
||||
arm_bones.add(node);
|
||||
/* For all bone nodes, record the whole armature as the owning object. */
|
||||
this->mapping.el_to_object.add(&node->element, arm_obj);
|
||||
bone->flag |= BONE_SELECTED;
|
||||
bone->parent = parent_bone;
|
||||
if (node->inherit_mode == UFBX_INHERIT_MODE_IGNORE_PARENT_SCALE) {
|
||||
bone->inherit_scale_mode = BONE_INHERIT_SCALE_NONE;
|
||||
|
||||
ufbx_matrix bone_mtx = ufbx_identity_matrix;
|
||||
EditBone *bone = nullptr;
|
||||
if (node->bone == nullptr || node->bone->is_root) {
|
||||
/* For root bone, the armature object itself is created, so it will not have the EditBone. */
|
||||
this->mapping.node_to_name.add(node, BKE_id_name(arm_obj->id));
|
||||
}
|
||||
|
||||
this->mapping.bone_to_armature.add(node, arm_obj);
|
||||
|
||||
else {
|
||||
/* For regular non-root bones, create an EditBone. */
|
||||
bone = ED_armature_ebone_add(arm, get_fbx_name(node->name, "Bone"));
|
||||
this->mapping.node_to_name.add(node, bone->name);
|
||||
bone->flag |= BONE_SELECTED;
|
||||
bone->parent = parent_bone;
|
||||
if (node->inherit_mode == UFBX_INHERIT_MODE_IGNORE_PARENT_SCALE) {
|
||||
bone->inherit_scale_mode = BONE_INHERIT_SCALE_NONE;
|
||||
}
|
||||
#ifdef FBX_DEBUG_PRINT
|
||||
fprintf(g_debug_file,
|
||||
"create BONE %s (parent %s) parent_mtx:\n",
|
||||
node->name.data,
|
||||
parent_bone ? parent_bone->name : "");
|
||||
print_matrix(parent_mtx);
|
||||
fprintf(g_debug_file,
|
||||
"create BONE %s (parent %s) parent_mtx:\n",
|
||||
node->name.data,
|
||||
parent_bone ? parent_bone->name : "");
|
||||
print_matrix(parent_mtx);
|
||||
#endif
|
||||
|
||||
const ufbx_matrix *bind_mtx = this->mapping.bone_to_bind_matrix.lookup_ptr(node);
|
||||
BLI_assert_msg(bind_mtx, "fbx: did not find bind matrix for bone");
|
||||
ufbx_matrix bone_mtx = bind_mtx ? *bind_mtx : ufbx_identity_matrix;
|
||||
|
||||
#ifdef FBX_DEBUG_PRINT
|
||||
// fprintf(g_debug_file, " local_bind_mtx:\n");
|
||||
// print_matrix(bone_mtx);
|
||||
#endif
|
||||
const ufbx_matrix *bind_mtx = this->mapping.bone_to_bind_matrix.lookup_ptr(node);
|
||||
BLI_assert_msg(bind_mtx, "fbx: did not find bind matrix for bone");
|
||||
if (bind_mtx != nullptr) {
|
||||
bone_mtx = *bind_mtx;
|
||||
}
|
||||
}
|
||||
|
||||
bone_mtx = ufbx_matrix_mul(&world_to_arm, &bone_mtx);
|
||||
bone_mtx.cols[0] = ufbx_vec3_normalize(bone_mtx.cols[0]);
|
||||
bone_mtx.cols[1] = ufbx_vec3_normalize(bone_mtx.cols[1]);
|
||||
bone_mtx.cols[2] = ufbx_vec3_normalize(bone_mtx.cols[2]);
|
||||
|
||||
this->mapping.bone_to_armature.add(node, arm_obj);
|
||||
|
||||
#ifdef FBX_DEBUG_PRINT
|
||||
fprintf(g_debug_file, " bone_mtx:\n");
|
||||
print_matrix(bone_mtx);
|
||||
@@ -177,31 +202,36 @@ void ArmatureImportContext::create_armature_bones(const ufbx_node *node,
|
||||
/* Zero length bones are automatically collapsed into their parent when you leave edit mode,
|
||||
* so enforce a minimum length. */
|
||||
bone_size = math::max(bone_size, 0.01f);
|
||||
bone->tail[0] = 0.0f;
|
||||
bone->tail[1] = bone_size;
|
||||
bone->tail[2] = 0.0f;
|
||||
this->mapping.bone_to_length.add(node, bone_size);
|
||||
|
||||
/* Set bone matrix. */
|
||||
float bone_matrix[4][4];
|
||||
matrix_to_m44(bone_mtx, bone_matrix);
|
||||
ED_armature_ebone_from_mat4(bone, bone_matrix);
|
||||
if (bone != nullptr) {
|
||||
bone->tail[0] = 0.0f;
|
||||
bone->tail[1] = bone_size;
|
||||
bone->tail[2] = 0.0f;
|
||||
/* Set bone matrix. */
|
||||
float bone_matrix[4][4];
|
||||
matrix_to_m44(bone_mtx, bone_matrix);
|
||||
ED_armature_ebone_from_mat4(bone, bone_matrix);
|
||||
}
|
||||
|
||||
#ifdef FBX_DEBUG_PRINT
|
||||
fprintf(g_debug_file,
|
||||
" length %.3f head (%.3f %.3f %.3f) tail (%.3f %.3f %.3f)\n",
|
||||
adjf(bone_size),
|
||||
adjf(bone->head[0]),
|
||||
adjf(bone->head[1]),
|
||||
adjf(bone->head[2]),
|
||||
adjf(bone->tail[0]),
|
||||
adjf(bone->tail[1]),
|
||||
adjf(bone->tail[2]));
|
||||
if (bone != nullptr) {
|
||||
fprintf(g_debug_file,
|
||||
" length %.3f head (%.3f %.3f %.3f) tail (%.3f %.3f %.3f)\n",
|
||||
adjf(bone_size),
|
||||
adjf(bone->head[0]),
|
||||
adjf(bone->head[1]),
|
||||
adjf(bone->head[2]),
|
||||
adjf(bone->tail[0]),
|
||||
adjf(bone->tail[1]),
|
||||
adjf(bone->tail[2]));
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Mark bone as connected to parent if head approximately in the same place as parent tail, in
|
||||
* both rest pose and current pose. */
|
||||
if (parent_bone != nullptr) {
|
||||
float3 self_head_rest(bone->head);
|
||||
float3 self_head_rest = bone ? float3(bone->head) : float3(0);
|
||||
float3 par_tail_rest(parent_bone->tail);
|
||||
const float connect_dist = 1.0e-4f;
|
||||
const float connect_dist_sq = connect_dist * connect_dist;
|
||||
@@ -218,7 +248,7 @@ void ArmatureImportContext::create_armature_bones(const ufbx_node *node,
|
||||
float3 par_tail_cur(par_tail_cur_u.x, par_tail_cur_u.y, par_tail_cur_u.z);
|
||||
float dist_sq_cur = math::distance_squared(self_head_cur, par_tail_cur);
|
||||
|
||||
if (dist_sq_cur < connect_dist_sq) {
|
||||
if (dist_sq_cur < connect_dist_sq && bone != nullptr) {
|
||||
/* Connected in both cases. */
|
||||
bone->flag |= BONE_CONNECTED;
|
||||
}
|
||||
@@ -251,10 +281,10 @@ void ArmatureImportContext::create_armature_bones(const ufbx_node *node,
|
||||
|
||||
void ArmatureImportContext::find_armatures(const ufbx_node *node)
|
||||
{
|
||||
/* Need to create armature if we are root bone, or any child is bone. */
|
||||
/* Need to create armature if we are root bone, or any child is a non-root bone. */
|
||||
bool needs_arm = false;
|
||||
for (const ufbx_node *fchild : node->children) {
|
||||
if (fchild->attrib_type == UFBX_ELEMENT_BONE) {
|
||||
if (fchild->bone && !fchild->bone->is_root) {
|
||||
needs_arm = true;
|
||||
break;
|
||||
}
|
||||
@@ -274,17 +304,22 @@ void ArmatureImportContext::find_armatures(const ufbx_node *node)
|
||||
}
|
||||
|
||||
/* Create bones in edit mode. */
|
||||
ufbx_matrix arm_to_world;
|
||||
m44_to_matrix(arm_obj->runtime->object_to_world.ptr(), arm_to_world);
|
||||
ufbx_matrix world_to_arm = ufbx_matrix_invert(&arm_to_world);
|
||||
ufbx_matrix world_to_arm = this->mapping.armature_world_to_arm_pose_matrix.lookup_default(
|
||||
arm_obj, ufbx_identity_matrix);
|
||||
|
||||
Set<const ufbx_node *> arm_bones;
|
||||
bArmature *arm = static_cast<bArmature *>(arm_obj->data);
|
||||
ED_armature_to_edit(arm);
|
||||
for (const ufbx_node *fchild : node->children) {
|
||||
if (fchild->attrib_type == UFBX_ELEMENT_BONE) {
|
||||
create_armature_bones(
|
||||
fchild, arm_obj, arm_bones, nullptr, ufbx_identity_matrix, world_to_arm, 1.0f);
|
||||
if (node->bone && node->bone->is_root) {
|
||||
create_armature_bones(
|
||||
node, arm_obj, arm_bones, nullptr, ufbx_identity_matrix, world_to_arm, 1.0f);
|
||||
}
|
||||
else {
|
||||
for (const ufbx_node *fchild : node->children) {
|
||||
if (fchild->bone) {
|
||||
create_armature_bones(
|
||||
fchild, arm_obj, arm_bones, nullptr, ufbx_identity_matrix, world_to_arm, 1.0f);
|
||||
}
|
||||
}
|
||||
}
|
||||
ED_armature_from_edit(&this->bmain, arm);
|
||||
@@ -327,9 +362,9 @@ void ArmatureImportContext::find_armatures(const ufbx_node *node)
|
||||
}
|
||||
}
|
||||
|
||||
/* Recurse into non-bone children. */
|
||||
/* Recurse into non-bone or root-bone children. */
|
||||
for (const ufbx_node *fchild : node->children) {
|
||||
if (fchild->attrib_type != UFBX_ELEMENT_BONE) {
|
||||
if (fchild->bone == nullptr || fchild->bone->is_root) {
|
||||
this->find_armatures(fchild);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
#include "BKE_modifier.hh"
|
||||
#include "BKE_object.hh"
|
||||
#include "BKE_object_deform.h"
|
||||
#include "BKE_object_types.hh"
|
||||
|
||||
#include "BLI_color.hh"
|
||||
#include "BLI_listbase.h"
|
||||
@@ -34,6 +33,8 @@
|
||||
|
||||
namespace blender::io::fbx {
|
||||
|
||||
static constexpr const char *temp_custom_normals_name = "fbx_temp_custom_normals";
|
||||
|
||||
static const ufbx_skin_deformer *get_skin_from_mesh(const ufbx_mesh *mesh)
|
||||
{
|
||||
if (mesh->skin_deformers.count > 0) {
|
||||
@@ -253,18 +254,23 @@ static void import_colors(const ufbx_mesh *fmesh,
|
||||
}
|
||||
}
|
||||
|
||||
static void import_normals(const ufbx_mesh *fmesh, Mesh *mesh)
|
||||
static bool import_normals_into_temp_attribute(const ufbx_mesh *fmesh,
|
||||
Mesh *mesh,
|
||||
bke::MutableAttributeAccessor &attributes)
|
||||
{
|
||||
if (fmesh->vertex_normal.exists) {
|
||||
BLI_assert(fmesh->vertex_normal.indices.count == mesh->corners_num);
|
||||
Array<float3> normals(mesh->corners_num);
|
||||
for (int i = 0; i < mesh->corners_num; i++) {
|
||||
int val_idx = fmesh->vertex_normal.indices[i];
|
||||
const ufbx_vec3 &normal = fmesh->vertex_normal.values[val_idx];
|
||||
normals[i] = float3(normal.x, normal.y, normal.z);
|
||||
}
|
||||
bke::mesh_set_custom_normals(*mesh, normals);
|
||||
if (!fmesh->vertex_normal.exists) {
|
||||
return false;
|
||||
}
|
||||
bke::SpanAttributeWriter<float3> normals = attributes.lookup_or_add_for_write_only_span<float3>(
|
||||
temp_custom_normals_name, bke::AttrDomain::Corner);
|
||||
BLI_assert(fmesh->vertex_normal.indices.count == mesh->corners_num);
|
||||
BLI_assert(fmesh->vertex_normal.indices.count == normals.span.size());
|
||||
for (int i = 0; i < mesh->corners_num; i++) {
|
||||
int val_idx = fmesh->vertex_normal.indices[i];
|
||||
const ufbx_vec3 &normal = fmesh->vertex_normal.values[val_idx];
|
||||
normals.span[i] = float3(normal.x, normal.y, normal.z);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
static void import_skin_vertex_groups(const ufbx_mesh *fmesh,
|
||||
@@ -368,8 +374,12 @@ void import_meshes(Main &bmain,
|
||||
if (params.vertex_colors != eFBXVertexColorMode::None) {
|
||||
import_colors(fmesh, mesh, attributes, attr_owner, params.vertex_colors);
|
||||
}
|
||||
bool has_custom_normals = false;
|
||||
if (params.use_custom_normals) {
|
||||
import_normals(fmesh, mesh);
|
||||
/* Mesh validation below can alter the mesh, so we first write custom normals
|
||||
* into a temporary custom corner domain attribute, and then re-apply that
|
||||
* data as custom normals after the validation. */
|
||||
has_custom_normals = import_normals_into_temp_attribute(fmesh, mesh, attributes);
|
||||
}
|
||||
const ufbx_skin_deformer *skin = get_skin_from_mesh(fmesh);
|
||||
if (skin != nullptr) {
|
||||
@@ -384,6 +394,16 @@ void import_meshes(Main &bmain,
|
||||
#endif
|
||||
BKE_mesh_validate(mesh, verbose_validate, false);
|
||||
}
|
||||
|
||||
if (has_custom_normals) {
|
||||
/* Actually set custom normals after the validation. */
|
||||
bke::SpanAttributeWriter<float3> normals =
|
||||
attributes.lookup_or_add_for_write_only_span<float3>(temp_custom_normals_name,
|
||||
bke::AttrDomain::Corner);
|
||||
bke::mesh_set_custom_normals(*mesh, normals.span);
|
||||
attributes.remove(temp_custom_normals_name);
|
||||
}
|
||||
|
||||
meshes[index] = mesh;
|
||||
});
|
||||
|
||||
@@ -449,14 +469,25 @@ void import_meshes(Main &bmain,
|
||||
obj->parent = parent_to_arm;
|
||||
|
||||
/* We are setting mesh parent to the armature, so set the matrix that is
|
||||
* armature-local. */
|
||||
ufbx_matrix arm_to_world;
|
||||
m44_to_matrix(parent_to_arm->runtime->object_to_world.ptr(), arm_to_world);
|
||||
ufbx_matrix world_to_arm = ufbx_matrix_invert(&arm_to_world);
|
||||
ufbx_matrix mtx = ufbx_matrix_mul(&node->node_to_world, &node->geometry_to_node);
|
||||
mtx = ufbx_matrix_mul(&world_to_arm, &mtx);
|
||||
* armature-local. Note that the matrix needs to be relative to the FBX
|
||||
* node matrix (not the root bone pose matrix). */
|
||||
ufbx_matrix world_to_arm = mapping.armature_world_to_arm_node_matrix.lookup_default(
|
||||
parent_to_arm, ufbx_identity_matrix);
|
||||
ufbx_matrix world_to_arm_pose = mapping.armature_world_to_arm_pose_matrix.lookup_default(
|
||||
parent_to_arm, ufbx_identity_matrix);
|
||||
|
||||
ufbx_matrix mtx = ufbx_matrix_mul(&world_to_arm, &node->geometry_to_world);
|
||||
ufbx_matrix_to_obj(mtx, obj);
|
||||
matrix_already_set = true;
|
||||
|
||||
/* Setup parent inverse matrix of the mesh, to account for the mesh possibly being in
|
||||
* different bind pose than what the node is at. */
|
||||
ufbx_matrix mtx_inv = ufbx_matrix_invert(&mtx);
|
||||
ufbx_matrix mtx_world = mapping.bone_to_bind_matrix.lookup_default(
|
||||
node, node->geometry_to_world);
|
||||
ufbx_matrix mtx_parent_inverse = ufbx_matrix_mul(&mtx_world, &mtx_inv);
|
||||
mtx_parent_inverse = ufbx_matrix_mul(&world_to_arm_pose, &mtx_parent_inverse);
|
||||
matrix_to_m44(mtx_parent_inverse, obj->parentinv);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -43,22 +43,6 @@ void matrix_to_m44(const ufbx_matrix &src, float dst[4][4])
|
||||
dst[3][3] = 1.0f;
|
||||
}
|
||||
|
||||
void m44_to_matrix(const float src[4][4], ufbx_matrix &dst)
|
||||
{
|
||||
dst.m00 = src[0][0];
|
||||
dst.m01 = src[1][0];
|
||||
dst.m02 = src[2][0];
|
||||
dst.m03 = src[3][0];
|
||||
dst.m10 = src[0][1];
|
||||
dst.m11 = src[1][1];
|
||||
dst.m12 = src[2][1];
|
||||
dst.m13 = src[3][1];
|
||||
dst.m20 = src[0][2];
|
||||
dst.m21 = src[1][2];
|
||||
dst.m22 = src[2][2];
|
||||
dst.m23 = src[3][2];
|
||||
}
|
||||
|
||||
ufbx_matrix calc_bone_pose_matrix(const ufbx_transform &local_xform,
|
||||
const ufbx_node &node,
|
||||
const ufbx_matrix &local_bind_inv_matrix)
|
||||
|
||||
@@ -28,6 +28,13 @@ struct FbxElementMapping {
|
||||
Map<const ufbx_element *, Key *> el_to_shape_key;
|
||||
Map<const ufbx_material *, Material *> mat_to_material;
|
||||
Map<const ufbx_node *, Object *> bone_to_armature;
|
||||
|
||||
/* For the armatures we create, for different use cases we need transform
|
||||
* from world space to the root bone, either in posed transform or in
|
||||
* node transform. */
|
||||
Map<const Object *, ufbx_matrix> armature_world_to_arm_pose_matrix;
|
||||
Map<const Object *, ufbx_matrix> armature_world_to_arm_node_matrix;
|
||||
|
||||
/* Mapping of ufbx node to object name used within blender. If names are too long
|
||||
* or duplicate, they might not match what was in FBX file. */
|
||||
Map<const ufbx_node *, std::string> node_to_name;
|
||||
@@ -72,7 +79,6 @@ struct FbxElementMapping {
|
||||
};
|
||||
|
||||
void matrix_to_m44(const ufbx_matrix &src, float dst[4][4]);
|
||||
void m44_to_matrix(const float src[4][4], ufbx_matrix &dst);
|
||||
void ufbx_matrix_to_obj(const ufbx_matrix &mtx, Object *obj);
|
||||
void node_matrix_to_obj(const ufbx_node *node, Object *obj, const FbxElementMapping &mapping);
|
||||
void read_custom_properties(const ufbx_props &props, ID &id, bool enums_as_strings);
|
||||
|
||||
BIN
tests/files/io_tests/fbx/issue127388_imported_bones_too_large.fbx
(Stored with Git LFS)
BIN
tests/files/io_tests/fbx/issue127388_imported_bones_too_large.fbx
(Stored with Git LFS)
Binary file not shown.
BIN
tests/files/io_tests/fbx/issue43141_skinned_rabbit.fbx
(Stored with Git LFS)
Normal file
BIN
tests/files/io_tests/fbx/issue43141_skinned_rabbit.fbx
(Stored with Git LFS)
Normal file
Binary file not shown.
@@ -445,9 +445,13 @@
|
||||
- rot 0.000, 0.000, 0.000 (XYZ)
|
||||
- scl 1.000, 1.000, 1.000
|
||||
- Obj 'Suzanne' MESH data:'Suzanne' par:'SuzanneArmWParent'
|
||||
- pos -4.220, 3.645, -2.342
|
||||
- rot -0.822, 0.009, 0.338 (XYZ)
|
||||
- scl 1.029, 1.288, 1.277
|
||||
- matrix_parent_inverse:
|
||||
1.000 0.000 0.000 0.000
|
||||
0.000 1.006 0.058 0.000
|
||||
0.000 0.068 1.006 0.000
|
||||
- pos -0.980, 0.243, 0.731
|
||||
- rot -0.365, -0.168, 0.285 (XYZ)
|
||||
- scl 0.994, 1.040, 0.965
|
||||
- 8 vertex groups
|
||||
- 'Bone' 'Bone.001' 'Bone.004' 'Bone.002' 'Bone.003' 'Bone.005' 'Bone.006' 'Bone.007'
|
||||
- 1 modifiers
|
||||
@@ -2510,58 +2514,58 @@
|
||||
0.791 -0.300 -0.534 0.571
|
||||
|
||||
- Armature 'SuzanneArmWParent' 13 bones
|
||||
- bone 'Bone' h:(-4.070, 2.798, -3.177) t:(-4.292, 3.400, -3.563) radius h:0.100 t:0.050
|
||||
0.947 -0.296 0.124 -4.070
|
||||
0.177 0.804 0.568 2.798
|
||||
-0.268 -0.516 0.814 -3.177
|
||||
- bone 'Bone.001' parent:'Bone' h:(0.000, 0.175, 0.000) t:(-0.494, -0.030, -0.478) radius h:0.100 t:0.050
|
||||
-0.567 -0.651 -0.505 -4.344
|
||||
0.651 -0.730 0.210 3.541
|
||||
-0.505 -0.210 0.837 -3.653
|
||||
- bone 'Bone.002' parent:'Bone' h:(0.000, 0.175, 0.000) t:(0.771, 0.079, -0.068) radius h:0.100 t:0.050
|
||||
0.001 0.962 0.274 -4.344
|
||||
-0.995 0.027 -0.094 3.541
|
||||
-0.098 -0.272 0.957 -3.653
|
||||
- bone 'Bone.003' parent:'Bone.002' h:(0.000, 0.014, 0.000) t:(-0.268, 0.517, -0.622) radius h:0.100 t:0.050
|
||||
0.638 0.372 0.674 -3.581
|
||||
-0.765 0.401 0.503 3.562
|
||||
-0.083 -0.837 0.541 -3.869
|
||||
- bone 'Bone' h:(-0.830, -0.042, -0.111) t:(-1.104, 0.654, -0.150) radius h:0.100 t:0.050
|
||||
0.922 -0.365 0.129 -0.830
|
||||
0.353 0.929 0.107 -0.042
|
||||
-0.159 -0.053 0.986 -0.111
|
||||
- bone 'Bone.001' parent:'Bone' h:(0.000, 0.000, 0.000) t:(-0.559, -0.131, -0.430) connect radius h:0.100 t:0.050
|
||||
-0.519 -0.729 -0.446 -1.104
|
||||
0.847 -0.510 -0.153 0.654
|
||||
-0.116 -0.457 0.882 -0.150
|
||||
- bone 'Bone.002' parent:'Bone' h:(0.000, 0.000, 0.000) t:(0.756, -0.189, -0.024) connect radius h:0.100 t:0.050
|
||||
0.002 0.978 0.206 -1.104
|
||||
-0.841 0.114 -0.529 0.654
|
||||
-0.541 -0.172 0.823 -0.150
|
||||
- bone 'Bone.003' parent:'Bone.002' h:(0.000, 0.000, 0.000) t:(-0.279, 0.531, -0.594) connect radius h:0.100 t:0.050
|
||||
0.615 0.470 0.634 -0.341
|
||||
-0.681 0.722 0.126 0.743
|
||||
-0.398 -0.509 0.763 -0.285
|
||||
- bone 'Bone.003_end' parent:'Bone.003' h:(0.000, 0.000, 0.000) t:(0.000, 0.844, 0.000) connect radius h:0.100 t:0.050
|
||||
0.638 0.372 0.674 -3.267
|
||||
-0.765 0.401 0.503 3.901
|
||||
-0.083 -0.837 0.541 -4.575
|
||||
- bone 'Bone.004' parent:'Bone.001' h:(0.000, 0.086, 0.000) t:(0.656, 0.476, 0.038) radius h:0.100 t:0.050
|
||||
0.425 -0.844 -0.327 -4.867
|
||||
0.813 0.197 0.548 2.955
|
||||
-0.398 -0.499 0.769 -3.822
|
||||
0.615 0.470 0.634 0.055
|
||||
-0.681 0.722 0.126 1.352
|
||||
-0.398 -0.509 0.763 -0.714
|
||||
- bone 'Bone.004' parent:'Bone.001' h:(0.000, 0.000, 0.000) t:(0.598, 0.469, 0.084) connect radius h:0.100 t:0.050
|
||||
0.348 -0.903 -0.253 -1.627
|
||||
0.937 0.332 0.106 0.289
|
||||
-0.012 -0.274 0.962 -0.478
|
||||
- bone 'Bone.004_end' parent:'Bone.004' h:(0.000, 0.000, 0.000) t:(0.000, 0.765, 0.000) connect radius h:0.100 t:0.050
|
||||
0.425 -0.844 -0.327 -5.512
|
||||
0.813 0.197 0.548 3.105
|
||||
-0.398 -0.499 0.769 -4.204
|
||||
- bone 'Bone.005' h:(-4.070, 2.798, -3.177) t:(-3.896, 1.896, -3.445) radius h:0.100 t:0.050
|
||||
-0.964 0.182 0.194 -4.070
|
||||
-0.227 -0.942 -0.245 2.798
|
||||
0.138 -0.281 0.950 -3.177
|
||||
0.348 -0.903 -0.253 -2.317
|
||||
0.937 0.332 0.106 0.543
|
||||
-0.012 -0.274 0.962 -0.688
|
||||
- bone 'Bone.005' h:(-0.830, -0.042, -0.111) t:(-0.616, -0.731, -0.739) radius h:0.100 t:0.050
|
||||
-0.957 0.224 0.184 -0.830
|
||||
-0.290 -0.720 -0.630 -0.042
|
||||
-0.009 -0.657 0.754 -0.111
|
||||
- bone 'Bone.005_end' parent:'Bone.005' h:(0.000, 0.000, 0.000) t:(0.000, 0.957, 0.000) connect radius h:0.100 t:0.050
|
||||
-0.964 0.182 0.194 -3.896
|
||||
-0.227 -0.942 -0.245 1.896
|
||||
0.138 -0.281 0.950 -3.445
|
||||
- bone 'Bone.006' h:(-4.070, 2.798, -3.177) t:(-4.434, 3.031, -2.638) radius h:0.100 t:0.050
|
||||
0.115 -0.527 0.842 -4.070
|
||||
0.938 0.338 0.083 2.798
|
||||
-0.328 0.780 0.533 -3.177
|
||||
-0.957 0.224 0.184 -0.616
|
||||
-0.290 -0.720 -0.630 -0.731
|
||||
-0.009 -0.657 0.754 -0.739
|
||||
- bone 'Bone.006' h:(-0.830, -0.042, -0.111) t:(-1.270, -0.059, 0.422) radius h:0.100 t:0.050
|
||||
0.109 -0.636 0.764 -0.830
|
||||
0.987 -0.024 -0.160 -0.042
|
||||
0.120 0.771 0.625 -0.111
|
||||
- bone 'Bone.006_end' parent:'Bone.006' h:(0.000, 0.000, 0.000) t:(0.000, 0.691, 0.000) connect radius h:0.100 t:0.050
|
||||
0.115 -0.527 0.842 -4.434
|
||||
0.938 0.338 0.083 3.031
|
||||
-0.328 0.780 0.533 -2.638
|
||||
- bone 'Bone.007' h:(-4.070, 2.798, -3.177) t:(-3.901, 3.205, -2.693) radius h:0.100 t:0.050
|
||||
0.941 0.259 -0.216 -4.070
|
||||
-0.334 0.622 -0.708 2.798
|
||||
-0.049 0.739 0.672 -3.177
|
||||
0.109 -0.636 0.764 -1.270
|
||||
0.987 -0.024 -0.160 -0.059
|
||||
0.120 0.771 0.625 0.422
|
||||
- bone 'Bone.007' h:(-0.830, -0.042, -0.111) t:(-0.615, 0.123, 0.485) radius h:0.100 t:0.050
|
||||
0.924 0.328 -0.196 -0.830
|
||||
-0.286 0.253 -0.924 -0.042
|
||||
-0.254 0.910 0.328 -0.111
|
||||
- bone 'Bone.007_end' parent:'Bone.007' h:(0.000, 0.000, 0.000) t:(0.000, 0.654, 0.000) connect radius h:0.100 t:0.050
|
||||
0.941 0.259 -0.216 -3.901
|
||||
-0.334 0.622 -0.708 3.205
|
||||
-0.049 0.739 0.672 -2.693
|
||||
0.924 0.328 -0.196 -0.615
|
||||
-0.286 0.253 -0.924 0.123
|
||||
-0.254 0.910 0.328 0.485
|
||||
|
||||
==== Images: 3
|
||||
- Image 'checkerboard_emissive.png' 128x128 24bpp
|
||||
|
||||
@@ -10,82 +10,8 @@
|
||||
- (1.194, 3.672, 4.042)
|
||||
- (1.253, 4.011, 4.015)
|
||||
- (1.112, 3.574, 4.089)
|
||||
- attr 'sharp_edge' BOOLEAN EDGE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'material_index' INT FACE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'custom_normal' INT16_2D CORNER
|
||||
- (5394, -12489)
|
||||
- (8210, -26096)
|
||||
- (2708, 28364)
|
||||
...
|
||||
- (8221, -18637)
|
||||
- (2966, -22155)
|
||||
- (11086, -7346)
|
||||
- attr 'UVChannel_1' FLOAT2 CORNER
|
||||
- (0.127, 0.069)
|
||||
- (0.122, 0.091)
|
||||
- (0.122, 0.069)
|
||||
...
|
||||
- (0.388, 0.827)
|
||||
- (0.412, 0.835)
|
||||
- (0.380, 0.821)
|
||||
- attr 'UVChannel_2' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_3' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_4' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_5' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_6' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_7' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_8' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- vertex groups:
|
||||
- 12=0.750 11=0.250
|
||||
- 10=0.500 12=0.500
|
||||
@@ -106,82 +32,8 @@
|
||||
- (-0.901, 4.592, 2.943)
|
||||
- (-0.938, 4.660, 2.795)
|
||||
- (-0.964, 4.586, 2.809)
|
||||
- attr 'sharp_edge' BOOLEAN EDGE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'material_index' INT FACE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'custom_normal' INT16_2D CORNER
|
||||
- (1419, 22767)
|
||||
- (28714, -7927)
|
||||
- (8085, -10066)
|
||||
...
|
||||
- (12428, -21714)
|
||||
- (-32424, -6562)
|
||||
- (30927, -23757)
|
||||
- attr 'UVChannel_1' FLOAT2 CORNER
|
||||
- (0.398, 0.117)
|
||||
- (0.405, 0.119)
|
||||
- (0.395, 0.110)
|
||||
...
|
||||
- (0.275, 0.013)
|
||||
- (0.271, 0.005)
|
||||
- (0.266, 0.007)
|
||||
- attr 'UVChannel_2' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_3' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_4' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_5' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_6' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_7' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_8' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- vertex groups:
|
||||
- 0=1.000
|
||||
- 0=1.000
|
||||
@@ -202,82 +54,8 @@
|
||||
- (-0.264, 3.197, -1.639)
|
||||
- (-0.440, 3.145, -1.522)
|
||||
- (-0.337, 3.322, -1.490)
|
||||
- attr 'sharp_edge' BOOLEAN EDGE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'material_index' INT FACE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'custom_normal' INT16_2D CORNER
|
||||
- (0, 0)
|
||||
- (0, 0)
|
||||
- (3931, 3587)
|
||||
...
|
||||
- (0, 0)
|
||||
- (3342, 29135)
|
||||
- (4893, -612)
|
||||
- attr 'UVChannel_1' FLOAT2 CORNER
|
||||
- (0.388, 0.483)
|
||||
- (0.395, 0.481)
|
||||
- (0.395, 0.474)
|
||||
...
|
||||
- (0.627, 0.714)
|
||||
- (0.627, 0.696)
|
||||
- (0.634, 0.700)
|
||||
- attr 'UVChannel_2' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_3' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_4' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_5' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_6' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_7' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_8' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- vertex groups:
|
||||
- 0=1.000
|
||||
- 0=1.000
|
||||
@@ -298,82 +76,8 @@
|
||||
- (0.546, 2.963, 5.180)
|
||||
- (0.427, 3.080, 5.200)
|
||||
- (0.717, 3.476, 5.126)
|
||||
- attr 'sharp_edge' BOOLEAN EDGE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'material_index' INT FACE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'custom_normal' INT16_2D CORNER
|
||||
- (0, 0)
|
||||
- (12383, -11833)
|
||||
- (14137, -21509)
|
||||
...
|
||||
- (10789, -21306)
|
||||
- (14803, -11545)
|
||||
- (12610, -23932)
|
||||
- attr 'UVChannel_1' FLOAT2 CORNER
|
||||
- (0.980, 0.091)
|
||||
- (0.991, 0.091)
|
||||
- (0.991, 0.054)
|
||||
...
|
||||
- (0.999, 0.054)
|
||||
- (0.991, 0.054)
|
||||
- (0.999, 0.091)
|
||||
- attr 'UVChannel_2' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_3' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_4' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_5' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_6' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_7' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_8' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- vertex groups:
|
||||
- 0=1.000
|
||||
- 0=1.000
|
||||
@@ -394,82 +98,8 @@
|
||||
- (-0.453, 2.270, 5.321)
|
||||
- (-0.428, 2.220, 5.350)
|
||||
- (-0.407, 2.184, 5.383)
|
||||
- attr 'sharp_edge' BOOLEAN EDGE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'material_index' INT FACE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'custom_normal' INT16_2D CORNER
|
||||
- (0, 0)
|
||||
- (0, 0)
|
||||
- (0, 0)
|
||||
...
|
||||
- (0, 0)
|
||||
- (0, 0)
|
||||
- (0, 0)
|
||||
- attr 'UVChannel_1' FLOAT2 CORNER
|
||||
- (0.262, 0.757)
|
||||
- (0.268, 0.760)
|
||||
- (0.261, 0.758)
|
||||
...
|
||||
- (0.253, 0.754)
|
||||
- (0.248, 0.754)
|
||||
- (0.252, 0.755)
|
||||
- attr 'UVChannel_2' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_3' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_4' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_5' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_6' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_7' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_8' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- vertex groups:
|
||||
- 0=1.000
|
||||
- 0=1.000
|
||||
@@ -490,82 +120,8 @@
|
||||
- (-0.601, 2.689, 5.561)
|
||||
- (-0.574, 2.644, 5.437)
|
||||
- (-0.538, 2.548, 5.619)
|
||||
- attr 'sharp_edge' BOOLEAN EDGE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'material_index' INT FACE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'custom_normal' INT16_2D CORNER
|
||||
- (12036, -12092)
|
||||
- (15546, -16164)
|
||||
- (0, 0)
|
||||
...
|
||||
- (0, 0)
|
||||
- (0, 0)
|
||||
- (0, 0)
|
||||
- attr 'UVChannel_1' FLOAT2 CORNER
|
||||
- (0.116, 0.750)
|
||||
- (0.141, 0.747)
|
||||
- (0.139, 0.737)
|
||||
...
|
||||
- (0.097, 0.699)
|
||||
- (0.096, 0.715)
|
||||
- (0.109, 0.703)
|
||||
- attr 'UVChannel_2' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_3' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_4' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_5' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_6' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_7' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_8' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- vertex groups:
|
||||
- 0=1.000
|
||||
- 0=1.000
|
||||
@@ -586,82 +142,8 @@
|
||||
- (0.678, 1.069, -11.106)
|
||||
- (0.700, 1.042, -11.111)
|
||||
- (0.805, 1.156, -11.530)
|
||||
- attr 'sharp_edge' BOOLEAN EDGE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'material_index' INT FACE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'custom_normal' INT16_2D CORNER
|
||||
- (0, 0)
|
||||
- (0, 0)
|
||||
- (0, 0)
|
||||
...
|
||||
- (13572, -10532)
|
||||
- (13572, -24475)
|
||||
- (0, 0)
|
||||
- attr 'UVChannel_1' FLOAT2 CORNER
|
||||
- (0.447, 0.505)
|
||||
- (0.419, 0.525)
|
||||
- (0.444, 0.501)
|
||||
...
|
||||
- (0.418, 0.523)
|
||||
- (0.392, 0.546)
|
||||
- (0.419, 0.525)
|
||||
- attr 'UVChannel_2' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_3' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_4' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_5' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_6' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_7' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_8' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- vertex groups:
|
||||
- 0=1.000
|
||||
- 0=1.000
|
||||
@@ -682,82 +164,8 @@
|
||||
- (-2.630, 0.832, 3.592)
|
||||
- (-2.567, 0.834, 3.510)
|
||||
- (-2.543, 0.994, 3.528)
|
||||
- attr 'sharp_edge' BOOLEAN EDGE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'material_index' INT FACE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'custom_normal' INT16_2D CORNER
|
||||
- (4824, -2535)
|
||||
- (0, 0)
|
||||
- (3385, 23184)
|
||||
...
|
||||
- (0, 0)
|
||||
- (0, 0)
|
||||
- (0, 0)
|
||||
- attr 'UVChannel_1' FLOAT2 CORNER
|
||||
- (0.761, 0.106)
|
||||
- (0.763, 0.099)
|
||||
- (0.773, 0.102)
|
||||
...
|
||||
- (0.587, 0.024)
|
||||
- (0.577, 0.027)
|
||||
- (0.588, 0.036)
|
||||
- attr 'UVChannel_2' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_3' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_4' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_5' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_6' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_7' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_8' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- vertex groups:
|
||||
- 1=1.000
|
||||
- 1=1.000
|
||||
@@ -778,82 +186,8 @@
|
||||
- (2.322, 0.307, 0.785)
|
||||
- (2.331, 0.262, 0.774)
|
||||
- (2.330, 0.161, 0.846)
|
||||
- attr 'sharp_edge' BOOLEAN EDGE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'material_index' INT FACE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'custom_normal' INT16_2D CORNER
|
||||
- (14185, -16208)
|
||||
- (0, 0)
|
||||
- (12622, -16355)
|
||||
...
|
||||
- (0, 0)
|
||||
- (0, 0)
|
||||
- (0, 0)
|
||||
- attr 'UVChannel_1' FLOAT2 CORNER
|
||||
- (0.257, 0.239)
|
||||
- (0.276, 0.240)
|
||||
- (0.276, 0.237)
|
||||
...
|
||||
- (0.783, 0.136)
|
||||
- (0.787, 0.134)
|
||||
- (0.795, 0.139)
|
||||
- attr 'UVChannel_2' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_3' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_4' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_5' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_6' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_7' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_8' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- vertex groups:
|
||||
- 12=1.000
|
||||
- 12=1.000
|
||||
@@ -874,82 +208,8 @@
|
||||
- (-1.194, 3.672, 4.042)
|
||||
- (-1.112, 3.574, 4.089)
|
||||
- (-1.253, 4.011, 4.015)
|
||||
- attr 'sharp_edge' BOOLEAN EDGE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'material_index' INT FACE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'custom_normal' INT16_2D CORNER
|
||||
- (0, 0)
|
||||
- (13032, -16755)
|
||||
- (9334, -21899)
|
||||
...
|
||||
- (8221, -14130)
|
||||
- (11086, -25420)
|
||||
- (2966, -10612)
|
||||
- attr 'UVChannel_1' FLOAT2 CORNER
|
||||
- (0.588, 0.113)
|
||||
- (0.588, 0.116)
|
||||
- (0.580, 0.113)
|
||||
...
|
||||
- (0.388, 0.827)
|
||||
- (0.380, 0.821)
|
||||
- (0.412, 0.835)
|
||||
- attr 'UVChannel_2' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_3' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_4' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_5' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_6' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_7' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_8' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- vertex groups:
|
||||
- 10=1.000
|
||||
- 10=1.000
|
||||
@@ -970,82 +230,8 @@
|
||||
- (-0.368, 2.967, 5.495)
|
||||
- (-0.583, 2.792, 5.304)
|
||||
- (-0.545, 2.961, 5.191)
|
||||
- attr 'sharp_edge' BOOLEAN EDGE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'material_index' INT FACE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'custom_normal' INT16_2D CORNER
|
||||
- (0, 0)
|
||||
- (18, -6512)
|
||||
- (24, 32415)
|
||||
...
|
||||
- (0, 0)
|
||||
- (0, 0)
|
||||
- (0, 0)
|
||||
- attr 'UVChannel_1' FLOAT2 CORNER
|
||||
- (0.193, 0.652)
|
||||
- (0.198, 0.674)
|
||||
- (0.179, 0.661)
|
||||
...
|
||||
- (0.190, 0.690)
|
||||
- (0.163, 0.687)
|
||||
- (0.170, 0.673)
|
||||
- attr 'UVChannel_2' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_3' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_4' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_5' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_6' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_7' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_8' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- vertex groups:
|
||||
- 4=1.000
|
||||
- 4=1.000
|
||||
@@ -1066,82 +252,8 @@
|
||||
- (-2.527, 0.035, 4.175)
|
||||
- (-2.590, -0.013, 4.209)
|
||||
- (-2.842, 0.023, 4.178)
|
||||
- attr 'sharp_edge' BOOLEAN EDGE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'material_index' INT FACE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'custom_normal' INT16_2D CORNER
|
||||
- (28926, -16383)
|
||||
- (14787, -17420)
|
||||
- (0, 0)
|
||||
...
|
||||
- (19769, -16429)
|
||||
- (19043, -22783)
|
||||
- (0, 0)
|
||||
- attr 'UVChannel_1' FLOAT2 CORNER
|
||||
- (0.582, 0.044)
|
||||
- (0.577, 0.039)
|
||||
- (0.575, 0.041)
|
||||
...
|
||||
- (0.859, 0.009)
|
||||
- (0.853, 0.010)
|
||||
- (0.855, 0.013)
|
||||
- attr 'UVChannel_2' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_3' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_4' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_5' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_6' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_7' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_8' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- vertex groups:
|
||||
- 5=1.000
|
||||
- 5=1.000
|
||||
@@ -1162,82 +274,8 @@
|
||||
- (-0.633, 3.618, 0.059)
|
||||
- (-0.540, 3.836, 0.261)
|
||||
- (-0.473, 3.977, 0.406)
|
||||
- attr 'sharp_edge' BOOLEAN EDGE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'material_index' INT FACE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'custom_normal' INT16_2D CORNER
|
||||
- (13848, -27977)
|
||||
- (10357, 16672)
|
||||
- (6713, -15883)
|
||||
...
|
||||
- (7844, -15271)
|
||||
- (0, 0)
|
||||
- (10901, -8338)
|
||||
- attr 'UVChannel_1' FLOAT2 CORNER
|
||||
- (0.174, 0.359)
|
||||
- (0.198, 0.380)
|
||||
- (0.173, 0.388)
|
||||
...
|
||||
- (0.236, 0.498)
|
||||
- (0.220, 0.496)
|
||||
- (0.227, 0.512)
|
||||
- attr 'UVChannel_2' FLOAT2 CORNER
|
||||
- (0.993, 0.584)
|
||||
- (0.963, 0.676)
|
||||
- (0.908, 0.617)
|
||||
...
|
||||
- (0.670, 0.934)
|
||||
- (0.656, 0.884)
|
||||
- (0.619, 0.925)
|
||||
- attr 'UVChannel_3' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_4' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_5' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_6' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_7' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_8' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- vertex groups:
|
||||
- 0=1.000
|
||||
- 0=1.000
|
||||
@@ -1258,82 +296,8 @@
|
||||
- (-1.299, 4.016, 1.743)
|
||||
- (-1.170, 4.293, 1.601)
|
||||
- (-1.173, 4.133, 1.553)
|
||||
- attr 'sharp_edge' BOOLEAN EDGE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'material_index' INT FACE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'custom_normal' INT16_2D CORNER
|
||||
- (0, 0)
|
||||
- (0, 0)
|
||||
- (0, 0)
|
||||
...
|
||||
- (0, 0)
|
||||
- (0, 0)
|
||||
- (0, 0)
|
||||
- attr 'UVChannel_1' FLOAT2 CORNER
|
||||
- (0.856, 0.906)
|
||||
- (0.855, 0.867)
|
||||
- (0.835, 0.906)
|
||||
...
|
||||
- (0.855, 0.867)
|
||||
- (0.848, 0.906)
|
||||
- (0.856, 0.906)
|
||||
- attr 'UVChannel_2' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_3' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_4' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_5' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_6' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_7' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_8' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- vertex groups:
|
||||
- 2=1.000
|
||||
- 2=1.000
|
||||
@@ -1354,82 +318,8 @@
|
||||
- (-0.436, 2.833, 1.461)
|
||||
- (-0.851, 2.769, 1.719)
|
||||
- (-0.919, 2.609, 1.947)
|
||||
- attr 'sharp_edge' BOOLEAN EDGE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'material_index' INT FACE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'custom_normal' INT16_2D CORNER
|
||||
- (0, 0)
|
||||
- (0, 0)
|
||||
- (0, 0)
|
||||
...
|
||||
- (6970, -21461)
|
||||
- (8646, -9948)
|
||||
- (6047, -18333)
|
||||
- attr 'UVChannel_1' FLOAT2 CORNER
|
||||
- (0.672, 0.279)
|
||||
- (0.681, 0.263)
|
||||
- (0.675, 0.258)
|
||||
...
|
||||
- (0.569, 0.191)
|
||||
- (0.560, 0.241)
|
||||
- (0.561, 0.214)
|
||||
- attr 'UVChannel_2' FLOAT2 CORNER
|
||||
- (0.157, 0.388)
|
||||
- (0.130, 0.442)
|
||||
- (0.154, 0.457)
|
||||
...
|
||||
- (0.573, 0.679)
|
||||
- (0.602, 0.512)
|
||||
- (0.563, 0.568)
|
||||
- attr 'UVChannel_3' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_4' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_5' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_6' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_7' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_8' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- vertex groups:
|
||||
- 2=0.750 1=0.250
|
||||
- 1=0.500 2=0.500
|
||||
@@ -1450,82 +340,8 @@
|
||||
- (2.630, 0.832, 3.592)
|
||||
- (2.543, 0.994, 3.528)
|
||||
- (2.567, 0.834, 3.510)
|
||||
- attr 'sharp_edge' BOOLEAN EDGE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'material_index' INT FACE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'custom_normal' INT16_2D CORNER
|
||||
- (0, 0)
|
||||
- (0, 0)
|
||||
- (0, 0)
|
||||
...
|
||||
- (0, 0)
|
||||
- (0, 0)
|
||||
- (0, 0)
|
||||
- attr 'UVChannel_1' FLOAT2 CORNER
|
||||
- (0.168, 0.513)
|
||||
- (0.178, 0.527)
|
||||
- (0.182, 0.524)
|
||||
...
|
||||
- (0.571, 0.029)
|
||||
- (0.571, 0.041)
|
||||
- (0.560, 0.032)
|
||||
- attr 'UVChannel_2' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_3' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_4' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_5' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_6' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_7' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_8' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- vertex groups:
|
||||
- 1=0.700 2=0.300
|
||||
- 1=0.800 2=0.200
|
||||
@@ -1546,82 +362,8 @@
|
||||
- (-0.649, 4.547, 0.921)
|
||||
- (-0.590, 4.308, 1.164)
|
||||
- (-0.627, 4.366, 0.913)
|
||||
- attr 'sharp_edge' BOOLEAN EDGE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'material_index' INT FACE
|
||||
- 0 0 0 0 0 ... 0 0 0 0 0
|
||||
- attr 'custom_normal' INT16_2D CORNER
|
||||
- (0, 0)
|
||||
- (0, 0)
|
||||
- (0, 0)
|
||||
...
|
||||
- (0, 0)
|
||||
- (0, 0)
|
||||
- (0, 0)
|
||||
- attr 'UVChannel_1' FLOAT2 CORNER
|
||||
- (0.026, 0.994)
|
||||
- (0.025, 0.955)
|
||||
- (0.005, 0.994)
|
||||
...
|
||||
- (0.005, 0.994)
|
||||
- (0.026, 0.994)
|
||||
- (0.025, 0.955)
|
||||
- attr 'UVChannel_2' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_3' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_4' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_5' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_6' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_7' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- attr 'UVChannel_8' FLOAT2 CORNER
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
...
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- (0.000, 0.000)
|
||||
- vertex groups:
|
||||
- 2=1.000
|
||||
- 2=1.000
|
||||
@@ -1632,10 +374,22 @@
|
||||
- '(0200p,0200){hollow}body@2@128'
|
||||
|
||||
==== Objects: 19
|
||||
- Obj 'Armature' ARMATURE data:'Armature'
|
||||
- Obj '(0)en_draber#1C6#0' ARMATURE data:'(0)en_draber#1C6#0'
|
||||
- pos 0.000, 0.000, 0.000
|
||||
- rot 1.571, 0.000, 0.000 (XYZ)
|
||||
- scl 1.000, 1.000, 1.000
|
||||
- posed bone '(10)drs-line_tail_04#1C0#0'
|
||||
0.981 0.000 0.196 -0.247
|
||||
0.000 1.000 0.000 -0.001
|
||||
-0.196 0.000 0.981 -0.031
|
||||
- posed bone '(11)drs-line_tail_end#1C0#0'
|
||||
0.980 0.000 -0.197 0.066
|
||||
0.000 1.000 0.000 0.001
|
||||
0.197 0.000 0.980 0.971
|
||||
- posed bone '(9)drs-line_tail_03#1C0#0'
|
||||
1.000 0.000 0.001 -0.041
|
||||
0.000 1.000 0.000 0.000
|
||||
-0.001 0.000 1.000 -0.013
|
||||
- posed bone 'eff01#0#0'
|
||||
-0.625 0.000 -0.781 2.060
|
||||
0.610 -0.625 -0.488 -1.994
|
||||
@@ -1656,146 +410,146 @@
|
||||
- pos 0.000, 0.000, 0.000
|
||||
- rot 1.571, 0.000, 0.000 (XYZ)
|
||||
- scl 1.000, 1.000, 1.000
|
||||
- Obj 'mesh[0]_0_0_0_0#75#0' MESH data:'mesh[0]_0_0_0_0#75#0_mesh' par:'Armature'
|
||||
- Obj 'mesh[0]_0_0_0_0#75#0' MESH data:'mesh[0]_0_0_0_0#75#0_mesh' par:'(0)en_draber#1C6#0'
|
||||
- pos 0.000, 0.000, 0.000
|
||||
- rot 0.000, 0.000, 0.000 (XYZ)
|
||||
- scl 1.000, 1.000, 1.000
|
||||
- 16 vertex groups
|
||||
- '(1)hip_efce#1C0#0' '(2)spine#1C0#0' '(3)l_thigh#1C0#0' '(4)l_thigh_tw#1C0#0' '(7)drs-line_tail_01#1C0#0' ... '(17)neck01#1C0#0' '(21)jaw0#1C0#0' '(25)l_clavicle#1C0#0' '(40)l_upperarm_tw#1C0#0' '(69)l_calf#1C0#0'
|
||||
- 1 modifiers
|
||||
- ARMATURE 'Armature'
|
||||
- Obj 'mesh[10]_1_1_1_1#78#5' MESH data:'mesh[10]_1_1_1_1#78#5_mesh' par:'Armature'
|
||||
- ARMATURE '(0)en_draber#1C6#0'
|
||||
- Obj 'mesh[10]_1_1_1_1#78#5' MESH data:'mesh[10]_1_1_1_1#78#5_mesh' par:'(0)en_draber#1C6#0'
|
||||
- pos 0.000, 0.000, 0.000
|
||||
- rot 0.000, 0.000, 0.000 (XYZ)
|
||||
- scl 1.000, 1.000, 1.000
|
||||
- 2 vertex groups
|
||||
- '(13)spine01#1C1#0' '(14)spine02#1C0#0'
|
||||
- 1 modifiers
|
||||
- ARMATURE 'Armature'
|
||||
- Obj 'mesh[11]_0_0_0_0#79#1' MESH data:'mesh[11]_0_0_0_0#79#1_mesh' par:'Armature'
|
||||
- ARMATURE '(0)en_draber#1C6#0'
|
||||
- Obj 'mesh[11]_0_0_0_0#79#1' MESH data:'mesh[11]_0_0_0_0#79#1_mesh' par:'(0)en_draber#1C6#0'
|
||||
- pos 0.000, 0.000, 0.000
|
||||
- rot 0.000, 0.000, 0.000 (XYZ)
|
||||
- scl 1.000, 1.000, 1.000
|
||||
- 6 vertex groups
|
||||
- '(1)hip_efce#1C0#0' '(2)spine#1C0#0' '(58)rwing_put#1C0#0' '(59)drs-line_rwing_01#1C0#0' '(61)lwing_put#1C0#0' '(62)drs-line_lwing_01#1C0#0'
|
||||
- 1 modifiers
|
||||
- ARMATURE 'Armature'
|
||||
- Obj 'mesh[12]_0_0_0_0#80#6' MESH data:'mesh[12]_0_0_0_0#80#6_mesh' par:'Armature'
|
||||
- ARMATURE '(0)en_draber#1C6#0'
|
||||
- Obj 'mesh[12]_0_0_0_0#80#6' MESH data:'mesh[12]_0_0_0_0#80#6_mesh' par:'(0)en_draber#1C6#0'
|
||||
- pos 0.000, 0.000, 0.000
|
||||
- rot 0.000, 0.000, 0.000 (XYZ)
|
||||
- scl 1.000, 1.000, 1.000
|
||||
- 1 vertex groups
|
||||
- '(18)head#1C0#0'
|
||||
- 1 modifiers
|
||||
- ARMATURE 'Armature'
|
||||
- Obj 'mesh[13]_0_0_0_0#81#7' MESH data:'mesh[13]_0_0_0_0#81#7_mesh' par:'Armature'
|
||||
- ARMATURE '(0)en_draber#1C6#0'
|
||||
- Obj 'mesh[13]_0_0_0_0#81#7' MESH data:'mesh[13]_0_0_0_0#81#7_mesh' par:'(0)en_draber#1C6#0'
|
||||
- pos 0.000, 0.000, 0.000
|
||||
- rot 0.000, 0.000, 0.000 (XYZ)
|
||||
- scl 1.000, 1.000, 1.000
|
||||
- 1 vertex groups
|
||||
- '(18)head#1C0#0'
|
||||
- 1 modifiers
|
||||
- ARMATURE 'Armature'
|
||||
- Obj 'mesh[14]_0_0_0_0#82#8' MESH data:'mesh[14]_0_0_0_0#82#8_mesh' par:'Armature'
|
||||
- ARMATURE '(0)en_draber#1C6#0'
|
||||
- Obj 'mesh[14]_0_0_0_0#82#8' MESH data:'mesh[14]_0_0_0_0#82#8_mesh' par:'(0)en_draber#1C6#0'
|
||||
- pos 0.000, 0.000, 0.000
|
||||
- rot 0.000, 0.000, 0.000 (XYZ)
|
||||
- scl 1.000, 1.000, 1.000
|
||||
- 1 vertex groups
|
||||
- '(18)head#1C0#0'
|
||||
- 1 modifiers
|
||||
- ARMATURE 'Armature'
|
||||
- Obj 'mesh[15]_0_0_0_0#83#9' MESH data:'mesh[15]_0_0_0_0#83#9_mesh' par:'Armature'
|
||||
- ARMATURE '(0)en_draber#1C6#0'
|
||||
- Obj 'mesh[15]_0_0_0_0#83#9' MESH data:'mesh[15]_0_0_0_0#83#9_mesh' par:'(0)en_draber#1C6#0'
|
||||
- pos 0.000, 0.000, 0.000
|
||||
- rot 0.000, 0.000, 0.000 (XYZ)
|
||||
- scl 1.000, 1.000, 1.000
|
||||
- 1 vertex groups
|
||||
- '(10)drs-line_tail_04#1C0#0'
|
||||
- 1 modifiers
|
||||
- ARMATURE 'Armature'
|
||||
- Obj 'mesh[16]_0_0_0_0#84#4' MESH data:'mesh[16]_0_0_0_0#84#4_mesh' par:'Armature'
|
||||
- ARMATURE '(0)en_draber#1C6#0'
|
||||
- Obj 'mesh[16]_0_0_0_0#84#4' MESH data:'mesh[16]_0_0_0_0#84#4_mesh' par:'(0)en_draber#1C6#0'
|
||||
- pos 0.000, 0.000, 0.000
|
||||
- rot 0.000, 0.000, 0.000 (XYZ)
|
||||
- scl 1.000, 1.000, 1.000
|
||||
- 4 vertex groups
|
||||
- '(42)r_upperarm#1C0#0' '(43)r_forearm#1C0#0' '(53)r_ko01#1C0#0' '(55)r_forearm_tw#1C0#0'
|
||||
- 1 modifiers
|
||||
- ARMATURE 'Armature'
|
||||
- Obj 'mesh[1]_0_0_0_0#75#0' MESH data:'mesh[1]_0_0_0_0#75#0_mesh' par:'Armature'
|
||||
- ARMATURE '(0)en_draber#1C6#0'
|
||||
- Obj 'mesh[1]_0_0_0_0#75#0' MESH data:'mesh[1]_0_0_0_0#75#0_mesh' par:'(0)en_draber#1C6#0'
|
||||
- pos 0.000, 0.000, 0.000
|
||||
- rot 0.000, 0.000, 0.000 (XYZ)
|
||||
- scl 1.000, 1.000, 1.000
|
||||
- 16 vertex groups
|
||||
- '(25)l_clavicle#1C0#0' '(26)l_upperarm#1C0#0' '(27)l_forearm#1C0#0' '(28)l_hand_efhl#1C0#0' '(31)l_hito01#1C0#0' ... '(65)l_foot#1C0#0' '(66)l_toe_ko01#1C0#0' '(67)l_toe_naka01#1C0#0' '(68)l_toe_hito01#1C0#0' '(69)l_calf#1C0#0'
|
||||
- 1 modifiers
|
||||
- ARMATURE 'Armature'
|
||||
- Obj 'mesh[2]_0_0_0_0#75#0' MESH data:'mesh[2]_0_0_0_0#75#0_mesh' par:'Armature'
|
||||
- ARMATURE '(0)en_draber#1C6#0'
|
||||
- Obj 'mesh[2]_0_0_0_0#75#0' MESH data:'mesh[2]_0_0_0_0#75#0_mesh' par:'(0)en_draber#1C6#0'
|
||||
- pos 0.000, 0.000, 0.000
|
||||
- rot 0.000, 0.000, 0.000 (XYZ)
|
||||
- scl 1.000, 1.000, 1.000
|
||||
- 16 vertex groups
|
||||
- '(1)hip_efce#1C0#0' '(5)r_thigh#1C0#0' '(6)r_thigh_tw#1C0#0' '(14)spine02#1C0#0' '(15)neck#1C0#0' ... '(35)l_kusuri01#1C0#0' '(37)l_ko01#1C0#0' '(38)l_ko02#1C0#0' '(41)r_clavicle#1C0#0' '(56)r_upperarm_tw#1C0#0'
|
||||
- 1 modifiers
|
||||
- ARMATURE 'Armature'
|
||||
- Obj 'mesh[3]_0_0_0_0#75#0' MESH data:'mesh[3]_0_0_0_0#75#0_mesh' par:'Armature'
|
||||
- ARMATURE '(0)en_draber#1C6#0'
|
||||
- Obj 'mesh[3]_0_0_0_0#75#0' MESH data:'mesh[3]_0_0_0_0#75#0_mesh' par:'(0)en_draber#1C6#0'
|
||||
- pos 0.000, 0.000, 0.000
|
||||
- rot 0.000, 0.000, 0.000 (XYZ)
|
||||
- scl 1.000, 1.000, 1.000
|
||||
- 16 vertex groups
|
||||
- '(5)r_thigh#1C0#0' '(6)r_thigh_tw#1C0#0' '(15)neck#1C0#0' '(17)neck01#1C0#0' '(18)head#1C0#0' ... '(70)r_foot#1C0#0' '(71)r_toe_ko01#1C0#0' '(72)r_toe_naka01#1C0#0' '(73)r_toe_hito01#1C0#0' '(74)r_calf#1C0#0'
|
||||
- 1 modifiers
|
||||
- ARMATURE 'Armature'
|
||||
- Obj 'mesh[4]_0_0_0_0#75#0' MESH data:'mesh[4]_0_0_0_0#75#0_mesh' par:'Armature'
|
||||
- ARMATURE '(0)en_draber#1C6#0'
|
||||
- Obj 'mesh[4]_0_0_0_0#75#0' MESH data:'mesh[4]_0_0_0_0#75#0_mesh' par:'(0)en_draber#1C6#0'
|
||||
- pos 0.000, 0.000, 0.000
|
||||
- rot 0.000, 0.000, 0.000 (XYZ)
|
||||
- scl 1.000, 1.000, 1.000
|
||||
- 16 vertex groups
|
||||
- '(41)r_clavicle#1C0#0' '(42)r_upperarm#1C0#0' '(43)r_forearm#1C0#0' '(44)r_hand_efhr#1C0#0' '(45)r_oya01#1C0#0' ... '(52)r_kusuri02#1C0#0' '(53)r_ko01#1C0#0' '(54)r_ko02#1C0#0' '(55)r_forearm_tw#1C0#0' '(56)r_upperarm_tw#1C0#0'
|
||||
- 1 modifiers
|
||||
- ARMATURE 'Armature'
|
||||
- Obj 'mesh[5]_1_1_1_1#75#0' MESH data:'mesh[5]_1_1_1_1#75#0_mesh' par:'Armature'
|
||||
- ARMATURE '(0)en_draber#1C6#0'
|
||||
- Obj 'mesh[5]_1_1_1_1#75#0' MESH data:'mesh[5]_1_1_1_1#75#0_mesh' par:'(0)en_draber#1C6#0'
|
||||
- pos 0.000, 0.000, 0.000
|
||||
- rot 0.000, 0.000, 0.000 (XYZ)
|
||||
- scl 1.000, 1.000, 1.000
|
||||
- 2 vertex groups
|
||||
- '(1)hip_efce#1C0#0' '(2)spine#1C0#0'
|
||||
- 1 modifiers
|
||||
- ARMATURE 'Armature'
|
||||
- Obj 'mesh[6]_0_0_0_0#76#2' MESH data:'mesh[6]_0_0_0_0#76#2_mesh' par:'Armature'
|
||||
- ARMATURE '(0)en_draber#1C6#0'
|
||||
- Obj 'mesh[6]_0_0_0_0#76#2' MESH data:'mesh[6]_0_0_0_0#76#2_mesh' par:'(0)en_draber#1C6#0'
|
||||
- pos 0.000, 0.000, 0.000
|
||||
- rot 0.000, 0.000, 0.000 (XYZ)
|
||||
- scl 1.000, 1.000, 1.000
|
||||
- 7 vertex groups
|
||||
- '(2)spine#1C0#0' '(13)spine01#1C1#0' '(14)spine02#1C0#0' '(15)neck#1C0#0' '(25)l_clavicle#1C0#0' '(40)l_upperarm_tw#1C0#0' '(56)r_upperarm_tw#1C0#0'
|
||||
- 1 modifiers
|
||||
- ARMATURE 'Armature'
|
||||
- Obj 'mesh[7]_2_1_1_1#76#2' MESH data:'mesh[7]_2_1_1_1#76#2_mesh' par:'Armature'
|
||||
- ARMATURE '(0)en_draber#1C6#0'
|
||||
- Obj 'mesh[7]_2_1_1_1#76#2' MESH data:'mesh[7]_2_1_1_1#76#2_mesh' par:'(0)en_draber#1C6#0'
|
||||
- pos 0.000, 0.000, 0.000
|
||||
- rot 0.000, 0.000, 0.000 (XYZ)
|
||||
- scl 1.000, 1.000, 1.000
|
||||
- 6 vertex groups
|
||||
- '(2)spine#1C0#0' '(13)spine01#1C1#0' '(14)spine02#1C0#0' '(40)l_upperarm_tw#1C0#0' '(56)r_upperarm_tw#1C0#0' '(57)body01#1C0#0'
|
||||
- 1 modifiers
|
||||
- ARMATURE 'Armature'
|
||||
- Obj 'mesh[8]_0_0_0_0#77#3' MESH data:'mesh[8]_0_0_0_0#77#3_mesh' par:'Armature'
|
||||
- ARMATURE '(0)en_draber#1C6#0'
|
||||
- Obj 'mesh[8]_0_0_0_0#77#3' MESH data:'mesh[8]_0_0_0_0#77#3_mesh' par:'(0)en_draber#1C6#0'
|
||||
- pos 0.000, 0.000, 0.000
|
||||
- rot 0.000, 0.000, 0.000 (XYZ)
|
||||
- scl 1.000, 1.000, 1.000
|
||||
- 4 vertex groups
|
||||
- '(26)l_upperarm#1C0#0' '(27)l_forearm#1C0#0' '(37)l_ko01#1C0#0' '(39)l_forearm_tw#1C0#0'
|
||||
- 1 modifiers
|
||||
- ARMATURE 'Armature'
|
||||
- Obj 'mesh[9]_0_0_0_0#78#5' MESH data:'mesh[9]_0_0_0_0#78#5_mesh' par:'Armature'
|
||||
- ARMATURE '(0)en_draber#1C6#0'
|
||||
- Obj 'mesh[9]_0_0_0_0#78#5' MESH data:'mesh[9]_0_0_0_0#78#5_mesh' par:'(0)en_draber#1C6#0'
|
||||
- pos 0.000, 0.000, 0.000
|
||||
- rot 0.000, 0.000, 0.000 (XYZ)
|
||||
- scl 1.000, 1.000, 1.000
|
||||
- 5 vertex groups
|
||||
- '(2)spine#1C0#0' '(13)spine01#1C1#0' '(14)spine02#1C0#0' '(40)l_upperarm_tw#1C0#0' '(56)r_upperarm_tw#1C0#0'
|
||||
- 1 modifiers
|
||||
- ARMATURE 'Armature'
|
||||
- ARMATURE '(0)en_draber#1C6#0'
|
||||
|
||||
==== Materials: 3
|
||||
- Mat '(0200p,0200){hollow}body@2@128'
|
||||
- base color (1.000, 1.000, 1.000) tex:'en_draber_a_d.dds' (en_draber_a_d.dds) a:False
|
||||
- base color (1.000, 1.000, 1.000)
|
||||
- specular ior 1.000
|
||||
- specular tint (0.200, 0.200, 0.200)
|
||||
- roughness 0.553
|
||||
@@ -1807,7 +561,7 @@
|
||||
- backface False probe True shadow False
|
||||
|
||||
- Mat '(0201p,0201){opaque}body_weak@2@0'
|
||||
- base color (1.000, 1.000, 1.000) tex:'en_draber_a_d.dds' (en_draber_a_d.dds) a:False
|
||||
- base color (1.000, 1.000, 1.000)
|
||||
- specular ior 1.000
|
||||
- specular tint (0.200, 0.200, 0.200)
|
||||
- roughness 0.553
|
||||
@@ -1819,7 +573,7 @@
|
||||
- backface False probe True shadow False
|
||||
|
||||
- Mat '(0201p,0201){opaque}weak@2@0'
|
||||
- base color (1.000, 1.000, 1.000) tex:'en_draber_a_d.dds' (en_draber_a_d.dds) a:False
|
||||
- base color (1.000, 1.000, 1.000)
|
||||
- specular ior 1.000
|
||||
- specular tint (0.200, 0.200, 0.200)
|
||||
- roughness 0.553
|
||||
@@ -1831,20 +585,16 @@
|
||||
- backface False probe True shadow False
|
||||
|
||||
==== Armatures: 1
|
||||
- Armature 'Armature' 89 bones
|
||||
- bone '(0)en_draber#1C6#0' h:(0.000, 0.000, 0.000) t:(0.000, 3.025, 0.000) radius h:0.100 t:0.050
|
||||
1.000 0.000 0.000 0.000
|
||||
0.000 1.000 0.000 0.000
|
||||
0.000 0.000 1.000 0.000
|
||||
- bone '(1)hip_efce#1C0#0' parent:'(0)en_draber#1C6#0' h:(0.000, -0.590, -0.912) t:(0.785, -0.590, -0.912) radius h:0.100 t:0.050
|
||||
- Armature '(0)en_draber#1C6#0' 88 bones
|
||||
- bone '(1)hip_efce#1C0#0' h:(0.000, 2.435, -0.912) t:(0.785, 2.435, -0.912) radius h:0.100 t:0.050
|
||||
0.000 1.000 0.000 0.000
|
||||
1.000 0.000 0.000 2.435
|
||||
0.000 0.000 -1.000 -0.912
|
||||
- bone '(10)drs-line_tail_04#1C0#0' parent:'(9)drs-line_tail_03#1C0#0' h:(2.331, -2.332, 0.002) t:(2.331, 2.285, 0.002) radius h:0.100 t:0.050
|
||||
0.000 1.000 0.000 -0.001
|
||||
0.197 0.000 -0.980 0.279
|
||||
-0.980 0.000 -0.197 -7.334
|
||||
- bone '(11)drs-line_tail_end#1C0#0' parent:'(10)drs-line_tail_04#1C0#0' h:(4.617, -4.617, 0.000) t:(4.617, 0.000, 0.000) radius h:0.100 t:0.050
|
||||
- bone '(10)drs-line_tail_04#1C0#0' parent:'(9)drs-line_tail_03#1C0#0' h:(2.497, -2.497, 0.032) t:(2.497, 1.964, 0.032) radius h:0.100 t:0.050
|
||||
0.000 1.000 0.000 0.000
|
||||
0.000 0.000 -1.000 0.250
|
||||
-1.000 0.000 0.000 -7.500
|
||||
- bone '(11)drs-line_tail_end#1C0#0' parent:'(10)drs-line_tail_04#1C0#0' h:(4.360, -4.461, -0.939) t:(4.361, -0.001, -0.938) radius h:0.100 t:0.050
|
||||
0.000 1.000 0.000 -0.001
|
||||
0.197 0.000 -0.980 1.189
|
||||
-0.980 0.000 -0.197 -11.860
|
||||
@@ -2076,11 +826,11 @@
|
||||
0.635 0.405 -0.658 5.409
|
||||
0.535 -0.845 -0.003 7.713
|
||||
-0.557 -0.350 -0.753 -5.440
|
||||
- bone '(64)attach#1C0#0' parent:'(0)en_draber#1C6#0' h:(0.000, -3.025, 9.000) t:(0.000, 0.000, 9.000) radius h:0.100 t:0.050
|
||||
- bone '(64)attach#1C0#0' h:(0.000, 0.000, 9.000) t:(0.000, 3.025, 9.000) radius h:0.100 t:0.050
|
||||
1.000 0.000 0.000 0.000
|
||||
0.000 1.000 0.000 0.000
|
||||
0.000 0.000 1.000 9.000
|
||||
- bone '(65)l_foot#1C0#0' parent:'(0)en_draber#1C6#0' h:(1.375, -2.062, -0.537) t:(0.376, -2.062, 0.117) radius h:0.100 t:0.050
|
||||
- bone '(65)l_foot#1C0#0' h:(1.375, 0.962, -0.537) t:(0.376, 0.962, 0.117) radius h:0.100 t:0.050
|
||||
-0.281 -0.837 -0.470 1.375
|
||||
-0.858 0.000 0.513 0.962
|
||||
-0.430 0.547 -0.718 -0.537
|
||||
@@ -2104,7 +854,7 @@
|
||||
0.000 1.000 0.000 0.000
|
||||
-0.671 0.000 -0.742 2.000
|
||||
-0.742 0.000 0.671 -1.723
|
||||
- bone '(70)r_foot#1C0#0' parent:'(0)en_draber#1C6#0' h:(-1.375, -2.062, -0.537) t:(-2.342, -2.062, -1.170) radius h:0.100 t:0.050
|
||||
- bone '(70)r_foot#1C0#0' h:(-1.375, 0.962, -0.537) t:(-2.342, 0.962, -1.170) radius h:0.100 t:0.050
|
||||
0.281 -0.837 0.470 -1.375
|
||||
-0.858 0.000 0.513 0.962
|
||||
-0.429 -0.548 -0.718 -0.537
|
||||
@@ -2124,7 +874,7 @@
|
||||
0.464 -0.808 0.363 -1.389
|
||||
-0.639 -0.021 0.769 1.005
|
||||
-0.614 -0.589 -0.526 -0.515
|
||||
- bone '(75)draber_mdl#1C6#1000' parent:'(0)en_draber#1C6#0' h:(0.000, -3.025, 0.000) t:(0.000, -3.015, 0.000) radius h:0.100 t:0.050
|
||||
- bone '(75)draber_mdl#1C6#1000' h:(0.000, 0.000, 0.000) t:(0.000, 0.010, 0.000) radius h:0.100 t:0.050
|
||||
1.000 0.000 0.000 0.000
|
||||
0.000 1.000 0.000 0.000
|
||||
0.000 0.000 1.000 0.000
|
||||
@@ -2168,7 +918,7 @@
|
||||
1.000 0.000 0.000 0.000
|
||||
0.000 1.000 0.000 0.000
|
||||
0.000 0.000 1.000 0.000
|
||||
- bone '(9)drs-line_tail_03#1C0#0' parent:'(8)drs-line_tail_02#1C0#0' h:(2.043, -2.043, 0.002) t:(2.043, 0.288, 0.002) radius h:0.100 t:0.050
|
||||
- bone '(9)drs-line_tail_03#1C0#0' parent:'(8)drs-line_tail_02#1C0#0' h:(2.043, -2.043, 0.002) t:(2.043, 0.454, 0.002) radius h:0.100 t:0.050
|
||||
0.000 1.000 0.000 -0.001
|
||||
0.005 0.000 -1.000 0.270
|
||||
-1.000 0.000 -0.005 -5.003
|
||||
@@ -2189,6 +939,3 @@
|
||||
-0.837 0.000 -0.548 -1.444
|
||||
0.000 -1.000 0.000 0.277
|
||||
|
||||
==== Images: 1
|
||||
- Image 'en_draber_a_d.dds' 0x0 0bpp
|
||||
|
||||
|
||||
387
tests/files/io_tests/fbx/reference/issue43141_skinned_rabbit.txt
Normal file
387
tests/files/io_tests/fbx/reference/issue43141_skinned_rabbit.txt
Normal file
@@ -0,0 +1,387 @@
|
||||
==== Meshes: 1
|
||||
- Mesh 'Mesh' vtx:517 face:1022 loop:3066 edge:1536
|
||||
- 2 3 1 1 0 ... 235 478 478 233 234
|
||||
- 0/1 0/2 8/9 8/10 16/17 ... 7/287 7/395 199/453 199/455 199/461
|
||||
- attr 'position' FLOAT_VECTOR POINT
|
||||
- (-0.540, -0.735, -0.314)
|
||||
- (-0.584, -0.373, -0.289)
|
||||
- (-0.500, -0.569, -0.051)
|
||||
...
|
||||
- (0.104, -1.180, 0.138)
|
||||
- (0.016, 1.165, -0.265)
|
||||
- (0.024, 1.181, -0.230)
|
||||
- vertex groups:
|
||||
- 0=1.000
|
||||
- 0=1.000
|
||||
- 2=1.000
|
||||
- 2=1.000
|
||||
- 2=1.000
|
||||
|
||||
==== Objects: 2
|
||||
- Obj 'Bip001' ARMATURE data:'Bip001'
|
||||
- pos 0.000, 8.048, 8.117
|
||||
- rot 0.000, 1.480, -1.571 (XYZ)
|
||||
- scl 0.025, 0.025, 0.025
|
||||
- posed bone 'Bip001 Head'
|
||||
0.996 0.070 -0.048 0.542
|
||||
-0.070 0.997 -0.012 -0.068
|
||||
0.047 0.015 0.999 0.000
|
||||
- posed bone 'Bip001 L Calf'
|
||||
0.757 0.654 0.000 0.000
|
||||
-0.654 0.757 0.000 0.000
|
||||
0.000 0.000 1.000 0.000
|
||||
- posed bone 'Bip001 L Clavicle'
|
||||
0.992 0.000 -0.127 8.624
|
||||
0.000 1.000 0.000 0.000
|
||||
0.127 0.000 0.992 1.640
|
||||
- posed bone 'Bip001 L Foot'
|
||||
0.540 -0.841 0.040 0.000
|
||||
0.837 0.531 -0.133 0.000
|
||||
0.090 0.105 0.990 0.000
|
||||
- posed bone 'Bip001 L Forearm'
|
||||
0.996 0.094 0.000 0.000
|
||||
-0.094 0.996 0.000 0.000
|
||||
0.000 0.000 1.000 0.000
|
||||
- posed bone 'Bip001 L Hand'
|
||||
0.947 0.320 0.015 0.000
|
||||
-0.319 0.947 -0.045 0.000
|
||||
-0.028 0.038 0.999 0.000
|
||||
- posed bone 'Bip001 L HorseLink'
|
||||
0.869 0.494 0.000 0.000
|
||||
-0.494 0.869 0.000 0.000
|
||||
0.000 0.000 1.000 0.000
|
||||
- posed bone 'Bip001 L Thigh'
|
||||
0.977 -0.214 0.008 17.106
|
||||
0.213 0.977 0.029 -3.535
|
||||
-0.014 -0.027 1.000 -2.016
|
||||
- posed bone 'Bip001 L UpperArm'
|
||||
0.951 -0.308 -0.030 0.000
|
||||
0.307 0.951 -0.035 0.000
|
||||
0.040 0.024 0.999 0.000
|
||||
- posed bone 'Bip001 Neck'
|
||||
0.992 -0.126 0.000 0.006
|
||||
0.126 0.992 0.000 -0.134
|
||||
0.000 0.000 1.000 0.000
|
||||
- posed bone 'Bip001 R Calf'
|
||||
0.757 0.654 0.000 0.000
|
||||
-0.654 0.757 0.000 0.000
|
||||
0.000 0.000 1.000 0.000
|
||||
- posed bone 'Bip001 R Clavicle'
|
||||
0.992 0.000 0.127 8.624
|
||||
0.000 1.000 0.000 0.000
|
||||
-0.127 0.000 0.992 -1.640
|
||||
- posed bone 'Bip001 R Foot'
|
||||
0.540 -0.841 -0.040 0.000
|
||||
0.837 0.531 0.133 0.000
|
||||
-0.090 -0.105 0.990 0.000
|
||||
- posed bone 'Bip001 R Forearm'
|
||||
0.997 0.079 0.000 0.000
|
||||
-0.079 0.997 0.000 0.000
|
||||
0.000 0.000 1.000 0.000
|
||||
- posed bone 'Bip001 R Hand'
|
||||
0.949 0.315 -0.012 0.000
|
||||
-0.315 0.948 0.049 0.000
|
||||
0.027 -0.043 0.999 0.000
|
||||
- posed bone 'Bip001 R HorseLink'
|
||||
0.869 0.494 0.000 0.000
|
||||
-0.494 0.869 0.000 0.000
|
||||
0.000 0.000 1.000 0.000
|
||||
- posed bone 'Bip001 R Thigh'
|
||||
0.977 -0.214 -0.008 17.106
|
||||
0.213 0.977 -0.029 -3.536
|
||||
0.014 0.027 1.000 2.016
|
||||
- posed bone 'Bip001 R UpperArm'
|
||||
0.951 -0.304 0.063 0.000
|
||||
0.302 0.953 0.033 0.000
|
||||
-0.070 -0.012 0.997 0.000
|
||||
- posed bone 'Bip001 Spine'
|
||||
0.990 -0.144 0.000 0.015
|
||||
0.144 0.990 0.000 0.001
|
||||
0.000 0.000 1.000 0.000
|
||||
- posed bone 'Bip001 Spine1'
|
||||
0.998 0.063 0.000 -0.008
|
||||
-0.063 0.998 0.000 0.000
|
||||
0.000 0.000 1.000 0.000
|
||||
- posed bone 'Bone001'
|
||||
0.880 0.309 -0.361 0.000
|
||||
-0.410 0.878 -0.249 0.000
|
||||
0.240 0.367 0.899 0.000
|
||||
- posed bone 'Bone006'
|
||||
0.852 0.342 -0.397 0.000
|
||||
-0.443 0.875 -0.196 0.000
|
||||
0.280 0.343 0.896 0.000
|
||||
- anim act:Take 001 slot:OBBip001 blend:REPLACE drivers:0
|
||||
- Obj 'obj4aa7ee80_obj' MESH data:'Mesh' par:'Bip001'
|
||||
- matrix_parent_inverse:
|
||||
0.116 0.000 -0.993 221.665
|
||||
0.000 1.000 0.000 0.000
|
||||
0.993 0.000 0.116 245.374
|
||||
- pos -39.850, 4.381, 246.491
|
||||
- rot 0.021, 0.000, -1.571 (XYZ)
|
||||
- scl 342.509, 342.509, 342.509
|
||||
- 33 vertex groups
|
||||
- 'Bip001 L Thigh' 'Bip001 L Toe0' 'Bip001 Pelvis' 'Bip001 R Toe0' 'Bip001 Spine' ... 'Bip001 R Hand' 'Bone001' 'Bone003' 'Bone002' 'Bone004'
|
||||
- 1 modifiers
|
||||
- ARMATURE 'Bip001'
|
||||
|
||||
==== Actions: 1
|
||||
- Action 'Take 001' curverange:(1.0 .. 87.0) layers:1
|
||||
- ActionLayer Layer strips:1
|
||||
- Keyframe strip channelbags:1
|
||||
- Channelbag slot 'OBBip001' curves:339
|
||||
- fcu 'location[0]' smooth:CONT_ACCEL extra:CONSTANT keyframes:7 grp:'Bip001'
|
||||
- (1.000, 0.000) lh:(0.667, 0.000 AUTO_CLAMPED) rh:(1.333, 0.000 AUTO_CLAMPED)
|
||||
- (2.000, 0.000) lh:(1.667, 0.000 AUTO_CLAMPED) rh:(2.333, 0.000 AUTO_CLAMPED)
|
||||
- (3.000, 0.000) lh:(2.667, 0.000 AUTO_CLAMPED) rh:(3.333, 0.000 AUTO_CLAMPED)
|
||||
...
|
||||
- (5.000, 0.000) lh:(4.667, 0.000 AUTO_CLAMPED) rh:(5.333, 0.000 AUTO_CLAMPED)
|
||||
- (6.000, 0.000) lh:(5.667, 0.000 AUTO_CLAMPED) rh:(6.333, 0.000 AUTO_CLAMPED)
|
||||
- (7.000, 0.000) lh:(6.667, 0.000 AUTO_CLAMPED) rh:(7.333, 0.000 AUTO_CLAMPED)
|
||||
- fcu 'location[1]' smooth:CONT_ACCEL extra:CONSTANT keyframes:7 grp:'Bip001'
|
||||
- (1.000, 8.048) lh:(0.667, 8.048 AUTO_CLAMPED) rh:(1.333, 8.048 AUTO_CLAMPED)
|
||||
- (2.000, 8.048) lh:(1.667, 8.048 AUTO_CLAMPED) rh:(2.333, 8.048 AUTO_CLAMPED)
|
||||
- (3.000, 8.048) lh:(2.667, 8.048 AUTO_CLAMPED) rh:(3.333, 8.048 AUTO_CLAMPED)
|
||||
...
|
||||
- (5.000, 8.048) lh:(4.667, 8.048 AUTO_CLAMPED) rh:(5.333, 8.048 AUTO_CLAMPED)
|
||||
- (6.000, 8.048) lh:(5.667, 8.048 AUTO_CLAMPED) rh:(6.333, 8.048 AUTO_CLAMPED)
|
||||
- (7.000, 8.048) lh:(6.667, 8.048 AUTO_CLAMPED) rh:(7.333, 8.048 AUTO_CLAMPED)
|
||||
- fcu 'location[2]' smooth:CONT_ACCEL extra:CONSTANT keyframes:7 grp:'Bip001'
|
||||
- (1.000, 8.117) lh:(0.667, 8.117 AUTO_CLAMPED) rh:(1.333, 8.117 AUTO_CLAMPED)
|
||||
- (2.000, 9.493) lh:(1.667, 8.900 AUTO_CLAMPED) rh:(2.333, 10.086 AUTO_CLAMPED)
|
||||
- (3.000, 10.869) lh:(2.667, 10.489 AUTO_CLAMPED) rh:(3.333, 11.249 AUTO_CLAMPED)
|
||||
...
|
||||
- (5.000, 12.409) lh:(4.667, 12.278 AUTO_CLAMPED) rh:(5.333, 12.541 AUTO_CLAMPED)
|
||||
- (6.000, 12.725) lh:(5.667, 12.646 AUTO_CLAMPED) rh:(6.333, 12.804 AUTO_CLAMPED)
|
||||
- (7.000, 12.856) lh:(6.667, 12.856 AUTO_CLAMPED) rh:(7.333, 12.856 AUTO_CLAMPED)
|
||||
- fcu 'pose.bones["Bip001 Head"].location[0]' smooth:CONT_ACCEL extra:CONSTANT keyframes:7 grp:'Bip001 Head'
|
||||
- (1.000, 0.542) lh:(0.667, 0.542 AUTO_CLAMPED) rh:(1.333, 0.542 AUTO_CLAMPED)
|
||||
- (2.000, 0.542) lh:(1.667, 0.542 AUTO_CLAMPED) rh:(2.333, 0.542 AUTO_CLAMPED)
|
||||
- (3.000, 0.542) lh:(2.667, 0.542 AUTO_CLAMPED) rh:(3.333, 0.542 AUTO_CLAMPED)
|
||||
...
|
||||
- (5.000, 0.542) lh:(4.667, 0.542 AUTO_CLAMPED) rh:(5.333, 0.542 AUTO_CLAMPED)
|
||||
- (6.000, 0.542) lh:(5.667, 0.542 AUTO_CLAMPED) rh:(6.333, 0.542 AUTO_CLAMPED)
|
||||
- (7.000, 0.542) lh:(6.667, 0.542 AUTO_CLAMPED) rh:(7.333, 0.542 AUTO_CLAMPED)
|
||||
- fcu 'pose.bones["Bip001 Head"].location[1]' smooth:CONT_ACCEL extra:CONSTANT keyframes:7 grp:'Bip001 Head'
|
||||
- (1.000, -0.068) lh:(0.667, -0.068 AUTO_CLAMPED) rh:(1.333, -0.068 AUTO_CLAMPED)
|
||||
- (2.000, -0.068) lh:(1.667, -0.068 AUTO_CLAMPED) rh:(2.333, -0.068 AUTO_CLAMPED)
|
||||
- (3.000, -0.068) lh:(2.667, -0.068 AUTO_CLAMPED) rh:(3.333, -0.068 AUTO_CLAMPED)
|
||||
...
|
||||
- (5.000, -0.068) lh:(4.667, -0.068 AUTO_CLAMPED) rh:(5.333, -0.068 AUTO_CLAMPED)
|
||||
- (6.000, -0.068) lh:(5.667, -0.068 AUTO_CLAMPED) rh:(6.333, -0.068 AUTO_CLAMPED)
|
||||
- (7.000, -0.068) lh:(6.667, -0.068 AUTO_CLAMPED) rh:(7.333, -0.068 AUTO_CLAMPED)
|
||||
- fcu 'pose.bones["Bip001 Head"].location[2]' smooth:CONT_ACCEL extra:CONSTANT keyframes:7 grp:'Bip001 Head'
|
||||
- (1.000, 0.000) lh:(0.667, 0.000 AUTO_CLAMPED) rh:(1.333, 0.000 AUTO_CLAMPED)
|
||||
- (2.000, 0.000) lh:(1.667, 0.000 AUTO_CLAMPED) rh:(2.333, 0.000 AUTO_CLAMPED)
|
||||
- (3.000, 0.000) lh:(2.667, 0.000 AUTO_CLAMPED) rh:(3.333, 0.000 AUTO_CLAMPED)
|
||||
...
|
||||
- (5.000, 0.000) lh:(4.667, 0.000 AUTO_CLAMPED) rh:(5.333, 0.000 AUTO_CLAMPED)
|
||||
- (6.000, 0.000) lh:(5.667, 0.000 AUTO_CLAMPED) rh:(6.333, 0.000 AUTO_CLAMPED)
|
||||
- (7.000, 0.000) lh:(6.667, 0.000 AUTO_CLAMPED) rh:(7.333, 0.000 AUTO_CLAMPED)
|
||||
- fcu 'pose.bones["Bip001 Head"].rotation_quaternion[0]' smooth:CONT_ACCEL extra:CONSTANT keyframes:7 grp:'Bip001 Head'
|
||||
- (1.000, 0.999) lh:(0.667, 0.999 AUTO_CLAMPED) rh:(1.333, 0.999 AUTO_CLAMPED)
|
||||
- (2.000, 1.000) lh:(1.667, 1.000 AUTO_CLAMPED) rh:(2.333, 1.000 AUTO_CLAMPED)
|
||||
- (3.000, 0.999) lh:(2.667, 0.999 AUTO_CLAMPED) rh:(3.333, 0.998 AUTO_CLAMPED)
|
||||
...
|
||||
- (5.000, 0.998) lh:(4.667, 0.997 AUTO_CLAMPED) rh:(5.333, 0.998 AUTO_CLAMPED)
|
||||
- (6.000, 0.999) lh:(5.667, 0.999 AUTO_CLAMPED) rh:(6.333, 0.999 AUTO_CLAMPED)
|
||||
- (7.000, 1.000) lh:(6.667, 1.000 AUTO_CLAMPED) rh:(7.333, 1.000 AUTO_CLAMPED)
|
||||
- fcu 'pose.bones["Bip001 Head"].rotation_quaternion[1]' smooth:CONT_ACCEL extra:CONSTANT keyframes:7 grp:'Bip001 Head'
|
||||
- (1.000, 0.007) lh:(0.667, 0.007 AUTO_CLAMPED) rh:(1.333, 0.007 AUTO_CLAMPED)
|
||||
- (2.000, 0.008) lh:(1.667, 0.007 AUTO_CLAMPED) rh:(2.333, 0.008 AUTO_CLAMPED)
|
||||
- (3.000, 0.009) lh:(2.667, 0.008 AUTO_CLAMPED) rh:(3.333, 0.009 AUTO_CLAMPED)
|
||||
...
|
||||
- (5.000, 0.009) lh:(4.667, 0.009 AUTO_CLAMPED) rh:(5.333, 0.009 AUTO_CLAMPED)
|
||||
- (6.000, 0.008) lh:(5.667, 0.009 AUTO_CLAMPED) rh:(6.333, 0.008 AUTO_CLAMPED)
|
||||
- (7.000, 0.008) lh:(6.667, 0.008 AUTO_CLAMPED) rh:(7.333, 0.008 AUTO_CLAMPED)
|
||||
- fcu 'pose.bones["Bip001 Head"].rotation_quaternion[2]' smooth:CONT_ACCEL extra:CONSTANT keyframes:7 grp:'Bip001 Head'
|
||||
- (1.000, -0.024) lh:(0.667, -0.024 AUTO_CLAMPED) rh:(1.333, -0.024 AUTO_CLAMPED)
|
||||
- (2.000, -0.024) lh:(1.667, -0.024 AUTO_CLAMPED) rh:(2.333, -0.023 AUTO_CLAMPED)
|
||||
- (3.000, -0.023) lh:(2.667, -0.023 AUTO_CLAMPED) rh:(3.333, -0.023 AUTO_CLAMPED)
|
||||
...
|
||||
- (5.000, -0.023) lh:(4.667, -0.023 AUTO_CLAMPED) rh:(5.333, -0.023 AUTO_CLAMPED)
|
||||
- (6.000, -0.023) lh:(5.667, -0.023 AUTO_CLAMPED) rh:(6.333, -0.023 AUTO_CLAMPED)
|
||||
- (7.000, -0.023) lh:(6.667, -0.023 AUTO_CLAMPED) rh:(7.333, -0.023 AUTO_CLAMPED)
|
||||
- fcu 'pose.bones["Bip001 Head"].rotation_quaternion[3]' smooth:CONT_ACCEL extra:CONSTANT keyframes:7 grp:'Bip001 Head'
|
||||
- (1.000, -0.035) lh:(0.667, -0.035 AUTO_CLAMPED) rh:(1.333, -0.035 AUTO_CLAMPED)
|
||||
- (2.000, 0.006) lh:(1.667, -0.012 AUTO_CLAMPED) rh:(2.333, 0.023 AUTO_CLAMPED)
|
||||
- (3.000, 0.047) lh:(2.667, 0.035 AUTO_CLAMPED) rh:(3.333, 0.058 AUTO_CLAMPED)
|
||||
...
|
||||
- (5.000, 0.062) lh:(4.667, 0.069 AUTO_CLAMPED) rh:(5.333, 0.056 AUTO_CLAMPED)
|
||||
- (6.000, 0.034) lh:(5.667, 0.045 AUTO_CLAMPED) rh:(6.333, 0.023 AUTO_CLAMPED)
|
||||
- (7.000, 0.011) lh:(6.667, 0.011 AUTO_CLAMPED) rh:(7.333, 0.011 AUTO_CLAMPED)
|
||||
- fcu 'pose.bones["Bip001 Head"].scale[0]' smooth:CONT_ACCEL extra:CONSTANT keyframes:7 grp:'Bip001 Head'
|
||||
- (1.000, 1.000) lh:(0.667, 1.000 AUTO_CLAMPED) rh:(1.333, 1.000 AUTO_CLAMPED)
|
||||
- (2.000, 1.000) lh:(1.667, 1.000 AUTO_CLAMPED) rh:(2.333, 1.000 AUTO_CLAMPED)
|
||||
- (3.000, 1.000) lh:(2.667, 1.000 AUTO_CLAMPED) rh:(3.333, 1.000 AUTO_CLAMPED)
|
||||
...
|
||||
- (5.000, 1.000) lh:(4.667, 1.000 AUTO_CLAMPED) rh:(5.333, 1.000 AUTO_CLAMPED)
|
||||
- (6.000, 1.000) lh:(5.667, 1.000 AUTO_CLAMPED) rh:(6.333, 1.000 AUTO_CLAMPED)
|
||||
- (7.000, 1.000) lh:(6.667, 1.000 AUTO_CLAMPED) rh:(7.333, 1.000 AUTO_CLAMPED)
|
||||
- fcu 'pose.bones["Bip001 Head"].scale[1]' smooth:CONT_ACCEL extra:CONSTANT keyframes:7 grp:'Bip001 Head'
|
||||
- (1.000, 1.000) lh:(0.667, 1.000 AUTO_CLAMPED) rh:(1.333, 1.000 AUTO_CLAMPED)
|
||||
- (2.000, 1.000) lh:(1.667, 1.000 AUTO_CLAMPED) rh:(2.333, 1.000 AUTO_CLAMPED)
|
||||
- (3.000, 1.000) lh:(2.667, 1.000 AUTO_CLAMPED) rh:(3.333, 1.000 AUTO_CLAMPED)
|
||||
...
|
||||
- (5.000, 1.000) lh:(4.667, 1.000 AUTO_CLAMPED) rh:(5.333, 1.000 AUTO_CLAMPED)
|
||||
- (6.000, 1.000) lh:(5.667, 1.000 AUTO_CLAMPED) rh:(6.333, 1.000 AUTO_CLAMPED)
|
||||
- (7.000, 1.000) lh:(6.667, 1.000 AUTO_CLAMPED) rh:(7.333, 1.000 AUTO_CLAMPED)
|
||||
- fcu 'pose.bones["Bip001 Head"].scale[2]' smooth:CONT_ACCEL extra:CONSTANT keyframes:7 grp:'Bip001 Head'
|
||||
- (1.000, 1.000) lh:(0.667, 1.000 AUTO_CLAMPED) rh:(1.333, 1.000 AUTO_CLAMPED)
|
||||
- (2.000, 1.000) lh:(1.667, 1.000 AUTO_CLAMPED) rh:(2.333, 1.000 AUTO_CLAMPED)
|
||||
- (3.000, 1.000) lh:(2.667, 1.000 AUTO_CLAMPED) rh:(3.333, 1.000 AUTO_CLAMPED)
|
||||
...
|
||||
- (5.000, 1.000) lh:(4.667, 1.000 AUTO_CLAMPED) rh:(5.333, 1.000 AUTO_CLAMPED)
|
||||
- (6.000, 1.000) lh:(5.667, 1.000 AUTO_CLAMPED) rh:(6.333, 1.000 AUTO_CLAMPED)
|
||||
- (7.000, 1.000) lh:(6.667, 1.000 AUTO_CLAMPED) rh:(7.333, 1.000 AUTO_CLAMPED)
|
||||
- fcu 'pose.bones["Bip001 L Calf"].location[0]' smooth:CONT_ACCEL extra:CONSTANT keyframes:7 grp:'Bip001 L Calf'
|
||||
- (1.000, 0.000) lh:(0.667, 0.000 AUTO_CLAMPED) rh:(1.333, 0.000 AUTO_CLAMPED)
|
||||
- (2.000, 0.000) lh:(1.667, 0.000 AUTO_CLAMPED) rh:(2.333, 0.000 AUTO_CLAMPED)
|
||||
- (3.000, 0.000) lh:(2.667, 0.000 AUTO_CLAMPED) rh:(3.333, 0.000 AUTO_CLAMPED)
|
||||
...
|
||||
- (5.000, 0.000) lh:(4.667, 0.000 AUTO_CLAMPED) rh:(5.333, 0.000 AUTO_CLAMPED)
|
||||
- (6.000, 0.000) lh:(5.667, 0.000 AUTO_CLAMPED) rh:(6.333, 0.000 AUTO_CLAMPED)
|
||||
- (7.000, 0.000) lh:(6.667, 0.000 AUTO_CLAMPED) rh:(7.333, 0.000 AUTO_CLAMPED)
|
||||
- fcu 'pose.bones["Bip001 L Calf"].location[1]' smooth:CONT_ACCEL extra:CONSTANT keyframes:7 grp:'Bip001 L Calf'
|
||||
- (1.000, 0.000) lh:(0.667, 0.000 AUTO_CLAMPED) rh:(1.333, 0.000 AUTO_CLAMPED)
|
||||
- (2.000, 0.000) lh:(1.667, 0.000 AUTO_CLAMPED) rh:(2.333, 0.000 AUTO_CLAMPED)
|
||||
- (3.000, 0.000) lh:(2.667, 0.000 AUTO_CLAMPED) rh:(3.333, 0.000 AUTO_CLAMPED)
|
||||
...
|
||||
- (5.000, 0.000) lh:(4.667, 0.000 AUTO_CLAMPED) rh:(5.333, 0.000 AUTO_CLAMPED)
|
||||
- (6.000, 0.000) lh:(5.667, 0.000 AUTO_CLAMPED) rh:(6.333, 0.000 AUTO_CLAMPED)
|
||||
- (7.000, 0.000) lh:(6.667, 0.000 AUTO_CLAMPED) rh:(7.333, 0.000 AUTO_CLAMPED)
|
||||
|
||||
==== Armatures: 1
|
||||
- Armature 'Bip001' 33 bones
|
||||
- bone 'Bip001 Head' parent:'Bip001 Neck' h:(38.602, -85.889, 0.000) t:(38.698, 34.591, 0.000) radius h:0.100 t:0.050
|
||||
-0.174 0.985 0.000 12.071
|
||||
0.000 0.000 1.000 0.000
|
||||
0.985 0.174 0.000 452.823
|
||||
- bone 'Bip001 L Calf' parent:'Bip001 L Thigh' h:(196.253, -196.253, 0.000) t:(389.660, -125.695, 0.000) radius h:0.100 t:0.050
|
||||
0.582 0.805 -0.115 187.559
|
||||
-0.065 -0.095 -0.993 135.788
|
||||
-0.810 0.586 -0.003 53.483
|
||||
- bone 'Bip001 L Clavicle' parent:'Bip001 Neck' h:(-55.090, -44.085, 84.940) t:(-55.090, -44.085, 164.797) radius h:0.100 t:0.050
|
||||
0.766 0.000 -0.643 69.442
|
||||
0.000 1.000 0.000 84.940
|
||||
0.643 0.000 0.766 367.768
|
||||
- bone 'Bip001 L Foot' parent:'Bip001 L HorseLink' h:(122.856, -122.856, 0.000) t:(124.886, -50.097, 8.242) radius h:0.100 t:0.050
|
||||
0.174 -0.985 0.000 325.381
|
||||
0.000 0.000 -1.000 119.998
|
||||
0.985 0.174 0.000 8.136
|
||||
- bone 'Bip001 L Forearm' parent:'Bip001 L UpperArm' h:(154.407, -154.407, 0.000) t:(286.684, -163.625, 0.000) radius h:0.100 t:0.050
|
||||
0.713 0.701 0.010 230.891
|
||||
-0.077 0.064 0.995 95.636
|
||||
0.697 -0.711 0.099 302.171
|
||||
- bone 'Bip001 L Hand' parent:'Bip001 L Forearm' h:(132.598, -132.598, 0.000) t:(217.830, -31.399, -8.748) radius h:0.100 t:0.050
|
||||
0.098 0.993 0.070 325.484
|
||||
-0.044 -0.066 0.997 85.486
|
||||
0.994 -0.101 0.037 394.537
|
||||
- bone 'Bip001 L HorseLink' parent:'Bip001 L Calf' h:(205.876, -205.876, 0.000) t:(120.006, -293.739, 0.000) radius h:0.100 t:0.050
|
||||
0.146 -0.983 -0.115 307.412
|
||||
-0.020 0.113 -0.993 122.425
|
||||
0.989 0.148 -0.003 -113.375
|
||||
- bone 'Bip001 L Thigh' parent:'Bip001 Spine' h:(-114.724, -135.564, 157.608) t:(44.428, -250.256, 163.207) radius h:0.100 t:0.050
|
||||
0.956 -0.271 -0.115 0.000
|
||||
-0.111 0.029 -0.993 157.608
|
||||
0.273 0.962 -0.003 0.000
|
||||
- bone 'Bip001 L Toe0' parent:'Bip001 L Foot' h:(64.923, -39.327, 0.000) t:(-8.330, -39.327, 0.000) radius h:0.100 t:0.050
|
||||
-0.985 -0.174 0.000 303.244
|
||||
0.000 0.000 -1.000 119.998
|
||||
0.174 -0.985 0.000 77.964
|
||||
- bone 'Bip001 L UpperArm' parent:'Bip001 L Clavicle' h:(79.857, -79.857, 0.000) t:(-74.148, -68.755, -0.884) radius h:0.100 t:0.050
|
||||
0.649 -0.760 0.010 130.616
|
||||
0.069 0.072 0.995 84.940
|
||||
-0.757 -0.645 0.099 419.099
|
||||
- bone 'Bip001 Neck' parent:'Bip001 Spine1' h:(166.931, -195.982, 0.000) t:(181.778, -111.386, 0.000) radius h:0.100 t:0.050
|
||||
-0.173 0.985 0.000 18.744
|
||||
0.000 0.000 1.000 0.000
|
||||
0.985 0.173 0.000 414.802
|
||||
- bone 'Bip001 Pelvis' h:(0.000, 0.000, 0.000) t:(122.159, 0.000, 0.000) radius h:0.100 t:0.050
|
||||
0.000 1.000 0.000 0.000
|
||||
0.000 0.000 1.000 0.000
|
||||
1.000 0.000 0.000 0.000
|
||||
- bone 'Bip001 R Calf' parent:'Bip001 R Thigh' h:(196.252, -196.252, 0.000) t:(389.660, -125.695, 0.000) radius h:0.100 t:0.050
|
||||
0.582 0.805 0.115 187.559
|
||||
0.065 0.095 -0.993 -135.788
|
||||
-0.810 0.586 0.003 53.483
|
||||
- bone 'Bip001 R Clavicle' parent:'Bip001 Neck' h:(-55.090, -44.084, -84.940) t:(-55.090, -44.084, -164.797) radius h:0.100 t:0.050
|
||||
0.766 0.000 0.643 69.442
|
||||
0.000 -1.000 0.000 -84.940
|
||||
0.643 0.000 -0.766 367.768
|
||||
- bone 'Bip001 R Foot' parent:'Bip001 R HorseLink' h:(122.856, -122.856, 0.000) t:(124.886, -50.097, -8.242) radius h:0.100 t:0.050
|
||||
0.174 -0.985 0.000 325.381
|
||||
0.000 0.000 -1.000 -119.998
|
||||
0.985 0.174 0.000 8.136
|
||||
- bone 'Bip001 R Forearm' parent:'Bip001 R UpperArm' h:(154.407, -154.407, 0.000) t:(286.684, -163.625, 0.000) radius h:0.100 t:0.050
|
||||
0.713 0.701 -0.010 230.891
|
||||
0.077 -0.064 0.995 -95.636
|
||||
0.697 -0.711 -0.099 302.171
|
||||
- bone 'Bip001 R Hand' parent:'Bip001 R Forearm' h:(132.598, -132.598, 0.000) t:(217.830, -31.399, 8.748) radius h:0.100 t:0.050
|
||||
0.098 0.993 -0.070 325.484
|
||||
0.044 0.066 0.997 -85.486
|
||||
0.994 -0.101 -0.037 394.537
|
||||
- bone 'Bip001 R HorseLink' parent:'Bip001 R Calf' h:(205.876, -205.876, 0.000) t:(120.006, -293.739, 0.000) radius h:0.100 t:0.050
|
||||
0.146 -0.983 0.115 307.412
|
||||
0.020 -0.113 -0.993 -122.425
|
||||
0.989 0.148 0.003 -113.375
|
||||
- bone 'Bip001 R Thigh' parent:'Bip001 Spine' h:(-114.724, -135.563, -157.608) t:(44.428, -250.256, -163.207) radius h:0.100 t:0.050
|
||||
0.956 -0.271 0.115 0.000
|
||||
0.111 -0.029 -0.993 -157.608
|
||||
0.273 0.962 0.003 0.000
|
||||
- bone 'Bip001 R Toe0' parent:'Bip001 R Foot' h:(64.923, -39.327, 0.000) t:(-8.330, -39.327, 0.000) radius h:0.100 t:0.050
|
||||
-0.985 -0.174 0.000 303.244
|
||||
0.000 0.000 -1.000 -119.998
|
||||
0.174 -0.985 0.000 77.964
|
||||
- bone 'Bip001 R UpperArm' parent:'Bip001 R Clavicle' h:(79.857, -79.857, 0.000) t:(-74.148, -68.754, 0.884) radius h:0.100 t:0.050
|
||||
0.649 -0.760 -0.010 130.616
|
||||
-0.069 -0.072 0.995 -84.940
|
||||
-0.757 -0.645 -0.099 419.099
|
||||
- bone 'Bip001 Spine' parent:'Bip001 Pelvis' h:(122.159, -122.259, 0.000) t:(61.307, 44.516, -0.001) radius h:0.100 t:0.050
|
||||
0.343 0.939 0.000 -0.100
|
||||
0.000 0.000 1.000 0.000
|
||||
0.939 -0.343 0.000 122.159
|
||||
- bone 'Bip001 Spine1' parent:'Bip001 Spine' h:(133.776, -177.649, 0.000) t:(191.732, -18.809, 0.000) radius h:0.100 t:0.050
|
||||
0.000 1.000 0.000 45.642
|
||||
0.000 0.000 1.000 0.000
|
||||
1.000 0.000 0.000 247.871
|
||||
- bone 'Bone001' parent:'Bip001 Head' h:(69.921, -200.036, -52.691) t:(10.537, -175.195, -52.691) radius h:0.100 t:0.050
|
||||
-0.813 0.540 0.218 -78.418
|
||||
-0.259 0.000 -0.966 -52.691
|
||||
-0.522 -0.842 0.140 507.867
|
||||
- bone 'Bone002' parent:'Bone001' h:(64.370, -64.370, 0.000) t:(67.685, 31.255, 0.000) radius h:0.100 t:0.050
|
||||
-0.831 0.512 0.218 -130.740
|
||||
-0.259 -0.009 -0.966 -69.351
|
||||
-0.492 -0.859 0.140 474.277
|
||||
- bone 'Bone003' parent:'Bone002' h:(95.682, -95.682, 0.000) t:(110.770, -22.141, 0.000) radius h:0.100 t:0.050
|
||||
-0.917 0.334 0.218 -210.259
|
||||
-0.252 -0.061 -0.966 -94.100
|
||||
-0.310 -0.941 0.140 427.167
|
||||
- bone 'Bone004' parent:'Bone003' h:(75.072, -75.072, 0.000) t:(73.734, 61.235, 0.000) radius h:0.100 t:0.050
|
||||
-0.914 0.343 0.218 -279.097
|
||||
-0.252 -0.058 -0.966 -112.987
|
||||
-0.319 -0.937 0.140 403.921
|
||||
- bone 'Bone005' parent:'Bone004' h:(136.314, -136.314, 0.000) t:(136.314, 0.000, 0.000) radius h:0.100 t:0.050
|
||||
-0.914 0.343 0.218 -403.639
|
||||
-0.252 -0.058 -0.966 -147.361
|
||||
-0.319 -0.937 0.140 360.455
|
||||
- bone 'Bone006' parent:'Bip001 Head' h:(69.921, -200.036, 61.870) t:(10.537, -175.196, 61.870) radius h:0.100 t:0.050
|
||||
-0.490 0.540 0.684 -78.417
|
||||
-0.813 0.000 -0.583 61.870
|
||||
-0.315 -0.842 0.439 507.867
|
||||
- bone 'Bone007' parent:'Bone006' h:(22.687, -64.370, -60.239) t:(23.855, 31.255, -63.342) radius h:0.100 t:0.050
|
||||
-0.473 0.512 0.717 -130.740
|
||||
-0.832 0.009 -0.555 78.531
|
||||
-0.291 -0.859 0.421 474.277
|
||||
- bone 'Bone008' parent:'Bone007' h:(30.721, -95.682, -90.616) t:(35.565, -22.141, -104.905) radius h:0.100 t:0.050
|
||||
-0.156 0.334 0.929 -210.258
|
||||
-0.981 0.061 -0.186 103.280
|
||||
-0.119 -0.941 0.318 427.167
|
||||
- bone 'Bone009' parent:'Bone008' h:(-5.015, -75.072, -74.905) t:(-4.925, 61.235, -73.569) radius h:0.100 t:0.050
|
||||
-0.541 0.343 0.768 -279.097
|
||||
-0.804 0.058 -0.592 122.167
|
||||
-0.248 -0.937 0.244 403.921
|
||||
- bone 'Bone010' parent:'Bone009' h:(50.491, -136.314, -126.618) t:(50.491, 0.000, -126.618) radius h:0.100 t:0.050
|
||||
-0.889 0.343 -0.304 -403.638
|
||||
0.343 0.058 -0.937 156.541
|
||||
-0.304 -0.937 -0.170 360.455
|
||||
|
||||
@@ -242,8 +242,8 @@
|
||||
- bone 'RigLBLeg1' parent:'RigPelvis' h:(-5.414, -15.736, 11.386) t:(2.952, 3.808, 11.800) radius h:0.100 t:0.050
|
||||
-0.007 0.019 -1.000 11.386
|
||||
-0.919 0.393 0.014 59.286
|
||||
0.394 0.919 0.015 -35.486
|
||||
- bone 'RigLBLeg2' parent:'RigLBLeg1' h:(21.263, -21.263, 0.000) t:(41.340, -10.580, -0.006) radius h:0.100 t:0.050
|
||||
0.394 0.919 0.015 -35.487
|
||||
- bone 'RigLBLeg2' parent:'RigLBLeg1' h:(21.263, -21.263, 0.000) t:(41.340, -10.581, -0.006) radius h:0.100 t:0.050
|
||||
-0.021 0.004 -1.000 11.248
|
||||
-0.779 -0.627 0.014 39.739
|
||||
-0.626 0.779 0.016 -27.116
|
||||
|
||||
@@ -84,6 +84,10 @@
|
||||
- rot 0.000, 0.000, 0.000 (XYZ)
|
||||
- scl 0.010, 0.010, 0.010
|
||||
- Obj 'Skin' MESH data:'Mesh' par:'Armature'
|
||||
- matrix_parent_inverse:
|
||||
0.000 -1.000 0.000 0.000
|
||||
0.000 0.000 1.000 0.000
|
||||
-1.000 0.000 0.000 0.000
|
||||
- pos 0.000, 0.000, 0.000
|
||||
- rot 0.000, 0.000, 0.000 (XYZ)
|
||||
- scl 1.000, 1.000, 1.000
|
||||
|
||||
@@ -490,6 +490,13 @@ class Report:
|
||||
if obj.parent_type == 'BONE':
|
||||
desc.write(f" par_bone:'{obj.parent_bone}'")
|
||||
desc.write(f"\n")
|
||||
mtx = obj.matrix_parent_inverse
|
||||
if not is_approx_identity(mtx):
|
||||
desc.write(f" - matrix_parent_inverse:\n")
|
||||
desc.write(f" {fmtf(mtx[0][0])} {fmtf(mtx[0][1])} {fmtf(mtx[0][2])} {fmtf(mtx[0][3])}\n")
|
||||
desc.write(f" {fmtf(mtx[1][0])} {fmtf(mtx[1][1])} {fmtf(mtx[1][2])} {fmtf(mtx[1][3])}\n")
|
||||
desc.write(f" {fmtf(mtx[2][0])} {fmtf(mtx[2][1])} {fmtf(mtx[2][2])} {fmtf(mtx[2][3])}\n")
|
||||
|
||||
desc.write(f" - pos {fmtf(obj.location[0])}, {fmtf(obj.location[1])}, {fmtf(obj.location[2])}\n")
|
||||
desc.write(
|
||||
f" - rot {fmtrot(obj.rotation_euler[0])}, {fmtrot(obj.rotation_euler[1])}, {fmtrot(obj.rotation_euler[2])} ({obj.rotation_mode})\n")
|
||||
|
||||
Reference in New Issue
Block a user