|
@@ -1675,11 +1675,11 @@ void ColladaImport::_fix_param_animation_tracks() {
|
|
source=skin.base;
|
|
source=skin.base;
|
|
} else if (collada.state.morph_controller_data_map.has(source)) {
|
|
} else if (collada.state.morph_controller_data_map.has(source)) {
|
|
|
|
|
|
- print_line("has morph");
|
|
|
|
|
|
+
|
|
const Collada::MorphControllerData& morph = collada.state.morph_controller_data_map[source];
|
|
const Collada::MorphControllerData& morph = collada.state.morph_controller_data_map[source];
|
|
|
|
|
|
if (morph.targets.has("MORPH_WEIGHT") && morph.targets.has("MORPH_TARGET")) {
|
|
if (morph.targets.has("MORPH_WEIGHT") && morph.targets.has("MORPH_TARGET")) {
|
|
- print_line("weight and target");
|
|
|
|
|
|
+
|
|
|
|
|
|
String weights = morph.targets["MORPH_WEIGHT"];
|
|
String weights = morph.targets["MORPH_WEIGHT"];
|
|
String targets = morph.targets["MORPH_TARGET"];
|
|
String targets = morph.targets["MORPH_TARGET"];
|
|
@@ -1688,7 +1688,7 @@ void ColladaImport::_fix_param_animation_tracks() {
|
|
if (morph.sources.has(targets) && morph.sources.has(weights)) {
|
|
if (morph.sources.has(targets) && morph.sources.has(weights)) {
|
|
const Collada::MorphControllerData::Source &weight_src=morph.sources[weights];
|
|
const Collada::MorphControllerData::Source &weight_src=morph.sources[weights];
|
|
const Collada::MorphControllerData::Source &target_src=morph.sources[targets];
|
|
const Collada::MorphControllerData::Source &target_src=morph.sources[targets];
|
|
- print_line("sources OK");
|
|
|
|
|
|
+
|
|
|
|
|
|
ERR_FAIL_COND(weight_src.array.size() != target_src.sarray.size());
|
|
ERR_FAIL_COND(weight_src.array.size() != target_src.sarray.size());
|
|
|
|
|
|
@@ -1697,7 +1697,6 @@ void ColladaImport::_fix_param_animation_tracks() {
|
|
String track_name = weights+"("+itos(i)+")";
|
|
String track_name = weights+"("+itos(i)+")";
|
|
String mesh_name = target_src.sarray[i];
|
|
String mesh_name = target_src.sarray[i];
|
|
if (collada.state.mesh_name_map.has(mesh_name) && collada.state.referenced_tracks.has(track_name)) {
|
|
if (collada.state.mesh_name_map.has(mesh_name) && collada.state.referenced_tracks.has(track_name)) {
|
|
- print_line("refe tracks");
|
|
|
|
|
|
|
|
|
|
|
|
const Vector<int>&rt = collada.state.referenced_tracks[track_name];
|
|
const Vector<int>&rt = collada.state.referenced_tracks[track_name];
|
|
@@ -1730,7 +1729,7 @@ void ColladaImport::_fix_param_animation_tracks() {
|
|
|
|
|
|
void ColladaImport::create_animations(bool p_make_tracks_in_all_bones) {
|
|
void ColladaImport::create_animations(bool p_make_tracks_in_all_bones) {
|
|
|
|
|
|
- print_line("-=-=-=-=-PRE CA");
|
|
|
|
|
|
+
|
|
_fix_param_animation_tracks();
|
|
_fix_param_animation_tracks();
|
|
for(int i=0;i<collada.state.animation_clips.size();i++) {
|
|
for(int i=0;i<collada.state.animation_clips.size();i++) {
|
|
|
|
|
|
@@ -1743,7 +1742,7 @@ void ColladaImport::create_animations(bool p_make_tracks_in_all_bones) {
|
|
for(int i=0;i<collada.state.animation_tracks.size();i++) {
|
|
for(int i=0;i<collada.state.animation_tracks.size();i++) {
|
|
|
|
|
|
Collada::AnimationTrack &at = collada.state.animation_tracks[i];
|
|
Collada::AnimationTrack &at = collada.state.animation_tracks[i];
|
|
- print_line("CHANNEL: "+at.target+" PARAM: "+at.param);
|
|
|
|
|
|
+ //print_line("CHANNEL: "+at.target+" PARAM: "+at.param);
|
|
if (!node_map.has(at.target)) {
|
|
if (!node_map.has(at.target)) {
|
|
print_line("Coudlnt find node: "+at.target);
|
|
print_line("Coudlnt find node: "+at.target);
|
|
continue;
|
|
continue;
|
|
@@ -1762,7 +1761,7 @@ void ColladaImport::create_animations(bool p_make_tracks_in_all_bones) {
|
|
}
|
|
}
|
|
|
|
|
|
create_animation(-1,p_make_tracks_in_all_bones);
|
|
create_animation(-1,p_make_tracks_in_all_bones);
|
|
- print_line("clipcount: "+itos(collada.state.animation_clips.size()));
|
|
|
|
|
|
+ //print_line("clipcount: "+itos(collada.state.animation_clips.size()));
|
|
for(int i=0;i<collada.state.animation_clips.size();i++)
|
|
for(int i=0;i<collada.state.animation_clips.size();i++)
|
|
create_animation(i,p_make_tracks_in_all_bones);
|
|
create_animation(i,p_make_tracks_in_all_bones);
|
|
|
|
|
|
@@ -1774,10 +1773,10 @@ void ColladaImport::create_animation(int p_clip, bool p_make_tracks_in_all_bones
|
|
|
|
|
|
if (p_clip==-1) {
|
|
if (p_clip==-1) {
|
|
|
|
|
|
- print_line("default");
|
|
|
|
|
|
+ //print_line("default");
|
|
animation->set_name("default");
|
|
animation->set_name("default");
|
|
} else {
|
|
} else {
|
|
- print_line("clip name: "+collada.state.animation_clips[p_clip].name);
|
|
|
|
|
|
+ //print_line("clip name: "+collada.state.animation_clips[p_clip].name);
|
|
animation->set_name(collada.state.animation_clips[p_clip].name);
|
|
animation->set_name(collada.state.animation_clips[p_clip].name);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1849,7 +1848,7 @@ void ColladaImport::create_animation(int p_clip, bool p_make_tracks_in_all_bones
|
|
base_snapshots.push_back(f);
|
|
base_snapshots.push_back(f);
|
|
f+=snapshot_interval;
|
|
f+=snapshot_interval;
|
|
}
|
|
}
|
|
- print_line("anim len: "+rtos(anim_length));
|
|
|
|
|
|
+ //print_line("anim len: "+rtos(anim_length));
|
|
animation->set_length(anim_length);
|
|
animation->set_length(anim_length);
|
|
|
|
|
|
bool tracks_found=false;
|
|
bool tracks_found=false;
|
|
@@ -1874,7 +1873,7 @@ void ColladaImport::create_animation(int p_clip, bool p_make_tracks_in_all_bones
|
|
|
|
|
|
Collada::Node *cn = collada.state.scene_map[E->get()];
|
|
Collada::Node *cn = collada.state.scene_map[E->get()];
|
|
if (cn->ignore_anim) {
|
|
if (cn->ignore_anim) {
|
|
- print_line("warning, ignoring animation on node: "+path);
|
|
|
|
|
|
+ //print_line("warning, ignoring animation on node: "+path);
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
|