{"action":"created","comment":{"url":"https://api.github.com/repos/godotengine/godot-blender-exporter/pulls/comments/188191749","pull_request_review_id":120116117,"id":188191749,"diff_hunk":"@@ -129,6 +133,14 @@ def export_scene(self):\n             if obj in self.valid_nodes and obj.parent is None:\n                 self.export_node(obj, root_gd_node)\n \n+        # second pass to export animation","path":"io_scene_godot/export_godot.py","position":15,"original_position":15,"commit_id":"bd328ac43fed9f7fd86fbd440c84451fef8891d9","original_commit_id":"bd328ac43fed9f7fd86fbd440c84451fef8891d9","user":{"login":"sdfgeoff","id":13490050,"avatar_url":"https://avatars0.githubusercontent.com/u/13490050?v=4","gravatar_id":"","url":"https://api.github.com/users/sdfgeoff","html_url":"https://github.com/sdfgeoff","followers_url":"https://api.github.com/users/sdfgeoff/followers","following_url":"https://api.github.com/users/sdfgeoff/following{/other_user}","gists_url":"https://api.github.com/users/sdfgeoff/gists{/gist_id}","starred_url":"https://api.github.com/users/sdfgeoff/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sdfgeoff/subscriptions","organizations_url":"https://api.github.com/users/sdfgeoff/orgs","repos_url":"https://api.github.com/users/sdfgeoff/repos","events_url":"https://api.github.com/users/sdfgeoff/events{/privacy}","received_events_url":"https://api.github.com/users/sdfgeoff/received_events","type":"User","site_admin":false},"body":"I'm very keen to do the exports in a single \"pass\" because otherwise you may have issues with (for example) an object's animations being exported without the object itself. \r\nI think I'm missing the reason why this is necessary, so next time you're on IRC, I think we should discuss this.","created_at":"2018-05-15T07:44:05Z","updated_at":"2018-05-15T07:51:57Z","html_url":"https://github.com/godotengine/godot-blender-exporter/pull/21#discussion_r188191749","pull_request_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/pulls/21","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/godotengine/godot-blender-exporter/pulls/comments/188191749"},"html":{"href":"https://github.com/godotengine/godot-blender-exporter/pull/21#discussion_r188191749"},"pull_request":{"href":"https://api.github.com/repos/godotengine/godot-blender-exporter/pulls/21"}}},"pull_request":{"url":"https://api.github.com/repos/godotengine/godot-blender-exporter/pulls/21","id":186540816,"html_url":"https://github.com/godotengine/godot-blender-exporter/pull/21","diff_url":"https://github.com/godotengine/godot-blender-exporter/pull/21.diff","patch_url":"https://github.com/godotengine/godot-blender-exporter/pull/21.patch","issue_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/issues/21","number":21,"state":"open","locked":false,"title":"animation for transform","user":{"login":"Jason0214","id":19422835,"avatar_url":"https://avatars2.githubusercontent.com/u/19422835?v=4","gravatar_id":"","url":"https://api.github.com/users/Jason0214","html_url":"https://github.com/Jason0214","followers_url":"https://api.github.com/users/Jason0214/followers","following_url":"https://api.github.com/users/Jason0214/following{/other_user}","gists_url":"https://api.github.com/users/Jason0214/gists{/gist_id}","starred_url":"https://api.github.com/users/Jason0214/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Jason0214/subscriptions","organizations_url":"https://api.github.com/users/Jason0214/orgs","repos_url":"https://api.github.com/users/Jason0214/repos","events_url":"https://api.github.com/users/Jason0214/events{/privacy}","received_events_url":"https://api.github.com/users/Jason0214/received_events","type":"User","site_admin":false},"body":"### finish animation for node and skeleton transform\r\n    functional it works, but still have several details to discuss\r\n\r\n1. **the animation export format** \r\nin my implementation, if a node has animation data while there are no animation data in all its ancestors, then it will exported an AnimationPlayer as its sibling, besides all the animation data in its descendants all goes into that AnimationPlayer. I supposed it is what user wanted in most case.\r\n2. **the code structure** \r\nwith animation, now there are two traversal pass for the scene tree, the first pass is applied to Blender scene tree, dealing with skeleton, mesh and etc, also if there is animation data found in Blender node, then assign the Blender node to the corresponding Godot scene node's ```anim_data```. Then the second pass is applied to the Godot scene tree, dealing with all the found ```anim_data```. \r\nThere are two problems, first the ```anim_data``` (works as a temporary variable) is inappropriate attribute of```NodeTemplate```, may be I should inherit ```NodeTemplate```?  besides, the ```animation.py``` is not fall into the category of converters,\r\n3. **fix_matrix function**\r\n```fix_matrix```(used to convert a Blender matrix to Godot matrix) is a local function inside ```mat_to_string()```, however it need to be used in ```animation.py```, I am thinking about extract it into a global accessible position, but not sure where to put it\r\n4. **optimization in keyframe**\r\nsince Godot doesn't support Bezier interpolation, I exported animation by treat every frame as keyframe(maybe it's called baking?), it is definitely need to do some optimization to remove some not important keyframe, it is not implemented yet. I thought the collada importer of godot engine may have some code about it, but I could not find it (anyone give me a hint?)\r\n5. pylint warning for too many local variables, too many nested blocks, too many branches. I don't know how to solve it .. :P \r\n6. can we have a interface to add a internal_resource without providing a hashable object, it is hard to  have a hash for animations","created_at":"2018-05-08T06:47:08Z","updated_at":"2018-05-15T07:51:57Z","closed_at":null,"merged_at":null,"merge_commit_sha":"14425fd5db81b75010642140ab77aa3d2fb9def5","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/pulls/21/commits","review_comments_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/pulls/21/comments","review_comment_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/pulls/comments{/number}","comments_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/issues/21/comments","statuses_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/statuses/bd328ac43fed9f7fd86fbd440c84451fef8891d9","head":{"label":"Jason0214:animation","ref":"animation","sha":"bd328ac43fed9f7fd86fbd440c84451fef8891d9","user":{"login":"Jason0214","id":19422835,"avatar_url":"https://avatars2.githubusercontent.com/u/19422835?v=4","gravatar_id":"","url":"https://api.github.com/users/Jason0214","html_url":"https://github.com/Jason0214","followers_url":"https://api.github.com/users/Jason0214/followers","following_url":"https://api.github.com/users/Jason0214/following{/other_user}","gists_url":"https://api.github.com/users/Jason0214/gists{/gist_id}","starred_url":"https://api.github.com/users/Jason0214/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Jason0214/subscriptions","organizations_url":"https://api.github.com/users/Jason0214/orgs","repos_url":"https://api.github.com/users/Jason0214/repos","events_url":"https://api.github.com/users/Jason0214/events{/privacy}","received_events_url":"https://api.github.com/users/Jason0214/received_events","type":"User","site_admin":false},"repo":{"id":126929312,"name":"godot-blender-exporter","full_name":"Jason0214/godot-blender-exporter","owner":{"login":"Jason0214","id":19422835,"avatar_url":"https://avatars2.githubusercontent.com/u/19422835?v=4","gravatar_id":"","url":"https://api.github.com/users/Jason0214","html_url":"https://github.com/Jason0214","followers_url":"https://api.github.com/users/Jason0214/followers","following_url":"https://api.github.com/users/Jason0214/following{/other_user}","gists_url":"https://api.github.com/users/Jason0214/gists{/gist_id}","starred_url":"https://api.github.com/users/Jason0214/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Jason0214/subscriptions","organizations_url":"https://api.github.com/users/Jason0214/orgs","repos_url":"https://api.github.com/users/Jason0214/repos","events_url":"https://api.github.com/users/Jason0214/events{/privacy}","received_events_url":"https://api.github.com/users/Jason0214/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Jason0214/godot-blender-exporter","description":"Addon for Blender to directly export to a Godot Scene","fork":true,"url":"https://api.github.com/repos/Jason0214/godot-blender-exporter","forks_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/forks","keys_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/teams","hooks_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/hooks","issue_events_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/issues/events{/number}","events_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/events","assignees_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/assignees{/user}","branches_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/branches{/branch}","tags_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/tags","blobs_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/git/refs{/sha}","trees_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/statuses/{sha}","languages_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/languages","stargazers_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/stargazers","contributors_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/contributors","subscribers_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/subscribers","subscription_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/subscription","commits_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/commits{/sha}","git_commits_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/git/commits{/sha}","comments_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/comments{/number}","issue_comment_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/issues/comments{/number}","contents_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/contents/{+path}","compare_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/merges","archive_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/downloads","issues_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/issues{/number}","pulls_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/pulls{/number}","milestones_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/milestones{/number}","notifications_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/labels{/name}","releases_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/releases{/id}","deployments_url":"https://api.github.com/repos/Jason0214/godot-blender-exporter/deployments","created_at":"2018-03-27T04:36:36Z","updated_at":"2018-05-08T19:44:26Z","pushed_at":"2018-05-15T06:49:49Z","git_url":"git://github.com/Jason0214/godot-blender-exporter.git","ssh_url":"git@github.com:Jason0214/godot-blender-exporter.git","clone_url":"https://github.com/Jason0214/godot-blender-exporter.git","svn_url":"https://github.com/Jason0214/godot-blender-exporter","homepage":null,"size":2348,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"gpl-2.0","name":"GNU General Public License v2.0","spdx_id":"GPL-2.0","url":"https://api.github.com/licenses/gpl-2.0"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"godotengine:master","ref":"master","sha":"7a4c12610985fa640585af87e367b147473a3400","user":{"login":"godotengine","id":6318500,"avatar_url":"https://avatars2.githubusercontent.com/u/6318500?v=4","gravatar_id":"","url":"https://api.github.com/users/godotengine","html_url":"https://github.com/godotengine","followers_url":"https://api.github.com/users/godotengine/followers","following_url":"https://api.github.com/users/godotengine/following{/other_user}","gists_url":"https://api.github.com/users/godotengine/gists{/gist_id}","starred_url":"https://api.github.com/users/godotengine/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/godotengine/subscriptions","organizations_url":"https://api.github.com/users/godotengine/orgs","repos_url":"https://api.github.com/users/godotengine/repos","events_url":"https://api.github.com/users/godotengine/events{/privacy}","received_events_url":"https://api.github.com/users/godotengine/received_events","type":"Organization","site_admin":false},"repo":{"id":119277877,"name":"godot-blender-exporter","full_name":"godotengine/godot-blender-exporter","owner":{"login":"godotengine","id":6318500,"avatar_url":"https://avatars2.githubusercontent.com/u/6318500?v=4","gravatar_id":"","url":"https://api.github.com/users/godotengine","html_url":"https://github.com/godotengine","followers_url":"https://api.github.com/users/godotengine/followers","following_url":"https://api.github.com/users/godotengine/following{/other_user}","gists_url":"https://api.github.com/users/godotengine/gists{/gist_id}","starred_url":"https://api.github.com/users/godotengine/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/godotengine/subscriptions","organizations_url":"https://api.github.com/users/godotengine/orgs","repos_url":"https://api.github.com/users/godotengine/repos","events_url":"https://api.github.com/users/godotengine/events{/privacy}","received_events_url":"https://api.github.com/users/godotengine/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/godotengine/godot-blender-exporter","description":"Addon for Blender to directly export to a Godot Scene","fork":false,"url":"https://api.github.com/repos/godotengine/godot-blender-exporter","forks_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/forks","keys_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/keys{/key_id}","collaborators_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/teams","hooks_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/hooks","issue_events_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/issues/events{/number}","events_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/events","assignees_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/assignees{/user}","branches_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/branches{/branch}","tags_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/tags","blobs_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/git/refs{/sha}","trees_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/git/trees{/sha}","statuses_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/statuses/{sha}","languages_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/languages","stargazers_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/stargazers","contributors_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/contributors","subscribers_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/subscribers","subscription_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/subscription","commits_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/commits{/sha}","git_commits_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/git/commits{/sha}","comments_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/comments{/number}","issue_comment_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/issues/comments{/number}","contents_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/contents/{+path}","compare_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/compare/{base}...{head}","merges_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/merges","archive_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/downloads","issues_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/issues{/number}","pulls_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/pulls{/number}","milestones_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/milestones{/number}","notifications_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/labels{/name}","releases_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/releases{/id}","deployments_url":"https://api.github.com/repos/godotengine/godot-blender-exporter/deployments","created_at":"2018-01-28T16:49:04Z","updated_at":"2018-05-14T07:03:45Z","pushed_at":"2018-05-15T06:49:50Z","git_url":"git://github.com/godotengine/godot-blender-exporter.git","ssh_url":"git@github.com:godotengine/godot-blender-exporter.git","clone_url":"https://github.com/godotengine/godot-blender-exporter.git","svn_url":"https://github.com/godotengine/godot-blender-exporter","homepage":null,"size":2108,"stargazers_count":85,"watchers_count":85,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":20,"mirror_url":null,"archived":false,"open_issues_count":7,"license":{"key":"gpl-2.0","name":"GNU General Public License v2.0","spdx_id":"GPL-2.0","url":"https://api.github.com/licenses/gpl-2.0"},"forks":20,"open_issues":7,"watchers":85,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/godotengine/godot-blender-exporter/pulls/21"},"html":{"href":"https://github.com/godotengine/godot-blender-exporter/pull/21"},"issue":{"href":"https://api.github.com/repos/godotengine/godot-blender-exporter/issues/21"},"comments":{"href":"https://api.github.com/repos/godotengine/godot-blender-exporter/issues/21/comments"},"review_comments":{"href":"https://api.github.com/repos/godotengine/godot-blender-exporter/pulls/21/comments"},"review_comment":{"href":"https://api.github.com/repos/godotengine/godot-blender-exporter/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/godotengine/godot-blender-exporter/pulls/21/commits"},"statuses":{"href":"https://api.github.com/repos/godotengine/godot-blender-exporter/statuses/bd328ac43fed9f7fd86fbd440c84451fef8891d9"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"sdfgeoff"}}