{"id":85,"date":"2012-04-27T17:32:19","date_gmt":"2012-04-27T15:32:19","guid":{"rendered":"http:\/\/divide-studio.co.uk\/blogs\/ionutcava\/?p=85"},"modified":"2012-05-06T19:30:53","modified_gmt":"2012-05-06T17:30:53","slug":"animations-animations-and-animations","status":"publish","type":"post","link":"https:\/\/divide-studio.co.uk\/blogs\/ionutcava\/animations-animations-and-animations\/","title":{"rendered":"Animations, animations and animations &#8230;"},"content":{"rendered":"<p>Did someone say animations were easy? Even with the very useful and well written animation loader class from Scott at No Limits Designs (i.e. <a title=\"Animation Loader\" href=\"http:\/\/nolimitsdesigns.com\/game-design\/open-asset-import-library-animation-loader\/\">this<\/a>), some things still don&#8217;t add up &#8230;<\/p>\n<p>First, his class is for D3D and that implies a lot of transposes around the code. Sorted &#8230;<\/p>\n<p>Secondly, he uses his own custom mat4 class and I use my templated mat4&lt;F32&gt; for transforms. Aligning it with aiMatrix4x4 turned out to be a simple memcpy instead of element by element copy. That simple memcpy turned this:<br \/>\n<object style=\"margin-left: auto; margin-right: auto; display: block;\" width=\"400\" height=\"300\" classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" codebase=\"http:\/\/download.macromedia.com\/pub\/shockwave\/cabs\/flash\/swflash.cab#version=6,0,40,0\"><param name=\"allowfullscreen\" value=\"true\" \/><param name=\"src\" value=\"http:\/\/www.facebook.com\/v\/405648959460127\" \/><embed style=\"margin-left: auto; margin-right: auto; display: block;\" width=\"400\" height=\"300\" type=\"application\/x-shockwave-flash\" src=\"http:\/\/www.facebook.com\/v\/405648959460127\" allowfullscreen=\"true\" \/><\/object><br \/>\n&#8230;. into this:<br \/>\n<object style=\"margin-left: auto; margin-right: auto; display: block;\" width=\"400\" height=\"300\" classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" codebase=\"http:\/\/download.macromedia.com\/pub\/shockwave\/cabs\/flash\/swflash.cab#version=6,0,40,0\"><param name=\"allowfullscreen\" value=\"true\" \/><param name=\"src\" value=\"http:\/\/www.facebook.com\/v\/405761229448900\" \/><embed style=\"margin-left: auto; margin-right: auto; display: block;\" width=\"400\" height=\"300\" type=\"application\/x-shockwave-flash\" src=\"http:\/\/www.facebook.com\/v\/405761229448900\" allowfullscreen=\"true\" \/><\/object><\/p>\n<p>And now &#8230; on to sorting bones out &#8230;<br \/>\nLater edit: Hallelujah \\:D\/<\/p>\n<p style=\"text-align: center;\"><iframe loading=\"lazy\" src=\"http:\/\/www.youtube.com\/embed\/4YTDHwacPmA\" frameborder=\"0\" width=\"420\" height=\"315\"><\/iframe><\/p>\n<p>The previous transformations were corrected fast enough, but the proper solution came after upgrading the VBO class to OpenGL 3.x standards (glVertexAttribPointers). Bone indices got lost in the process \ud83d\ude1b<br \/>\nThe only problems that remain for now:<br \/>\n-Those damn Bounding Boxes that don&#8217;t like moving very much<br \/>\n-Optimize, optimise, optimize, optimise<\/p>\n<p>The link to the code is in the video&#8217;s description on youtube.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Did someone say animations were easy? Even with the very useful and well written animation loader class from Scott at No Limits Designs (i.e. this), some things still don&#8217;t add up &#8230; First, his class is for D3D and that implies a lot of transposes around the code. Sorted &#8230; Secondly, he uses his own &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/divide-studio.co.uk\/blogs\/ionutcava\/animations-animations-and-animations\/\">Continue reading<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[11,8],"tags":[],"class_list":["post-85","post","type-post","status-publish","format-standard","hentry","category-coding","category-divide-framework","item-wrap"],"_links":{"self":[{"href":"https:\/\/divide-studio.co.uk\/blogs\/ionutcava\/wp-json\/wp\/v2\/posts\/85","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/divide-studio.co.uk\/blogs\/ionutcava\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/divide-studio.co.uk\/blogs\/ionutcava\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/divide-studio.co.uk\/blogs\/ionutcava\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/divide-studio.co.uk\/blogs\/ionutcava\/wp-json\/wp\/v2\/comments?post=85"}],"version-history":[{"count":7,"href":"https:\/\/divide-studio.co.uk\/blogs\/ionutcava\/wp-json\/wp\/v2\/posts\/85\/revisions"}],"predecessor-version":[{"id":91,"href":"https:\/\/divide-studio.co.uk\/blogs\/ionutcava\/wp-json\/wp\/v2\/posts\/85\/revisions\/91"}],"wp:attachment":[{"href":"https:\/\/divide-studio.co.uk\/blogs\/ionutcava\/wp-json\/wp\/v2\/media?parent=85"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/divide-studio.co.uk\/blogs\/ionutcava\/wp-json\/wp\/v2\/categories?post=85"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/divide-studio.co.uk\/blogs\/ionutcava\/wp-json\/wp\/v2\/tags?post=85"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}