{"id":987,"date":"2024-12-30T12:52:00","date_gmt":"2024-12-30T04:52:00","guid":{"rendered":"https:\/\/www.admiralspee.site\/?p=987"},"modified":"2025-05-16T13:16:56","modified_gmt":"2025-05-16T05:16:56","slug":"%e5%ad%a6%e4%b8%9a%e8%a1%8c%e8%bf%b9-%e5%bb%ba%e6%a8%a1%e4%b8%8e%e5%8a%a8%e7%94%bb%ef%bc%881%ef%bc%89%e9%a1%b9%e7%9b%ae","status":"publish","type":"post","link":"https:\/\/www.admiralspee.site\/en\/archives\/987","title":{"rendered":"Academic Traces | Modeling and Animation 1 Assignment"},"content":{"rendered":"<p>This assignment is a modification and enhancement of the model project that was once there, and on top of that, bone binding and animation were added. Original project address:<\/p>\n\n\n\n<figure class=\"wp-block-embed aligncenter is-type-wp-embed is-provider-hi-admiral-spee wp-block-embed-hi-admiral-spee\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"xaqFM4RgBA\"><a href=\"https:\/\/www.admiralspee.site\/en\/archives\/634\/\">Design Works | Exercise work before the lab test<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"\u300a\u8bbe\u8ba1\u4f5c\u54c1 | \u5b9e\u9a8c\u5ba4\u8003\u6838\u524d\u7684\u7ec3\u4e60\u4f5c\u54c1\u300b\u2014Hi~ Admiral Spee!\" src=\"https:\/\/www.admiralspee.site\/archives\/634\/embed#?secret=pTVZbQ3dzq#?secret=xaqFM4RgBA\" data-secret=\"xaqFM4RgBA\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"has-text-align-left\"><span class=\"has-superb-addons-text-align-justify\">When modelling, I originally combined multiple objects to form their complex shapes. I used the Combine function to combine multiple objects by different parts to reduce the number of objects. But then I realised that this approach would make it difficult to split the UVs. So instead I used the Boolean function to combine multiple objects into one object and then fine-tuned the model manually.<\/span><\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:43%\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-0.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"830\" src=\"https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-0-1024x830.png\" alt=\"\" class=\"wp-image-999\" srcset=\"https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-0-1024x830.png 1024w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-0-300x243.png 300w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-0-150x122.png 150w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-0-768x623.png 768w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-0-15x12.png 15w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-0.png 1268w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:57%\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/image-2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"968\" height=\"591\" src=\"https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/image-2.png\" alt=\"\" class=\"wp-image-990\" srcset=\"https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/image-2.png 968w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/image-2-300x183.png 300w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/image-2-150x92.png 150w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/image-2-768x469.png 768w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/image-2-18x12.png 18w\" sizes=\"auto, (max-width: 968px) 100vw, 968px\" \/><\/a><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"714\" src=\"https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-2-1024x714.png\" alt=\"\" class=\"wp-image-992\" srcset=\"https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-2-1024x714.png 1024w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-2-300x209.png 300w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-2-150x105.png 150w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-2-768x535.png 768w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-2-18x12.png 18w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-2.png 1495w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<p><span class=\"has-superb-addons-text-align-justify\">But a new problem arose after using the Boolean function, I forgot to bevel the model. After using the Boolean function the model becomes very complex and it is difficult to manually select the edges that need to be bevelled. Although there are filters in the Bevel function that can ignore some edges by angle, there are still some unknown errors that can cause confusion in the points and edges after bevelling. Such errors are difficult to find and fix.<\/span><\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<p><span class=\"has-superb-addons-text-align-justify\">To make up for this omission, I found a special way. I made a copy of the original model and then bevelled the model as a high model. When creating the texture, this high model was baked onto the original model, thus generating a corresponding normal texture. This normal texture will then provide a visual effect of bevelled edges in subsequent renders.<\/span><\/p>\n\n\n\n<p><span class=\"has-superb-addons-text-align-justify\">There is also another way, which is to use the AiToon material, render a stroke effect on the model, and use lines to mask the edges of the model. I tried both, and in the end, based on the overall effect, I chose the latter (but actually used the normal texture baked out of the former as well).<\/span><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-3-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-3-1024x1024.jpg\" alt=\"\" class=\"wp-image-993\" srcset=\"https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-3-1024x1024.jpg 1024w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-3-300x300.jpg 300w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-3-150x150.jpg 150w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-3-768x768.jpg 768w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-3-1536x1536.jpg 1536w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-3-2048x2048.jpg 2048w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-3-12x12.jpg 12w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-4.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"664\" src=\"https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-4-1024x664.png\" alt=\"\" class=\"wp-image-994\" srcset=\"https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-4-1024x664.png 1024w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-4-300x195.png 300w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-4-150x97.png 150w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-4-768x498.png 768w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-4-1536x996.png 1536w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-4-18x12.png 18w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-4.png 1658w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<p><span class=\"has-superb-addons-text-align-justify\">Skeletal binding for mechanical models is simpler compared to skeletal binding for human models. I first created joints based on the moving joints of the model, and then connected these joints according to the levels. When skinning, it is only necessary to bind each object to the corresponding joint, without considering issues such as skinning weights.<\/span><\/p>\n<\/div>\n<\/div>\n\n\n\n<p><span class=\"has-superb-addons-text-align-justify\">After completing the skeletal binding, I created controllers for each active joint. Because each skeletal joint contains transform parameters, when animating the joints, it may be impossible for them to regain their initial position. Instead, the controllers can set the initial transform parameter to 0, and then superimpose the transform of the controllers on the joints through the Parent Constraint function. In order for child joints and their controllers to be able to follow the movement of the parent joint controllers, each controller also needs to be layered according to the level of the joint.<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-5.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"468\" src=\"https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-5-1024x468.png\" alt=\"\" class=\"wp-image-995\" srcset=\"https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-5-1024x468.png 1024w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-5-300x137.png 300w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-5-150x69.png 150w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-5-768x351.png 768w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-5-1536x702.png 1536w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-5-2048x936.png 2048w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-5-18x8.png 18w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p><span class=\"has-superb-addons-text-align-justify\">Some of the controllers in the controller layer are contained in groups, due to the fact that some of the joints have transform coordinates that are different from the world coordinates. In order to allow the controllers to transform according to the transform coordinates of the joints, I nested the controllers in groups, and then modified the transform parameters of the groups so that the transform coordinates of the controllers aligned with the transform coordinates of the joints. In this way, the controller can be transformed in the desired direction.<\/span><\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-6.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"702\" src=\"https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-6-1024x702.png\" alt=\"\" class=\"wp-image-996\" srcset=\"https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-6-1024x702.png 1024w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-6-300x206.png 300w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-6-150x103.png 150w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-6-768x527.png 768w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-6-18x12.png 18w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-6.png 1317w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<p><span class=\"has-superb-addons-text-align-justify\">For the animation part I chose a relatively simple walking animation. Compared to the movement of mannequins, the movement of machinery is more rigid and slow. In addition, unlike human's walking movement, human-like machines generally use a high leg-lift-lean-forward-landing walking style, so their pace tends to be one step at a time. But even if the movement of the machinery is rigid, it is not possible to use completely linear animation curves, or the effect will become unpredictably poor.<\/span><\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-7.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"702\" src=\"https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-7-1024x702.png\" alt=\"\" class=\"wp-image-997\" srcset=\"https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-7-1024x702.png 1024w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-7-300x206.png 300w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-7-150x103.png 150w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-7-768x527.png 768w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-7-18x12.png 18w, https:\/\/www.admiralspee.site\/wp-content\/uploads\/2025\/05\/987-7.png 1317w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<p><span class=\"has-superb-addons-text-align-justify\">To show the weightiness of the machinery, I added a small jiggle to its lower arms and wings each time its feet hit the ground. I also showed an effect of power instability by controlling the wight of the emission in the materials.<\/span><\/p>\n\n\n\n<p><span class=\"has-superb-addons-text-align-justify\">Similarly, its body moves up and down with the steps as it walks, and to enhance this motion, I added separate animations of the wings swinging up and down with the movement. As the body moves up, the wings swing down; as the body moves down, the wings swing up.<\/span><\/p>\n<\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u6700\u7ec8\u89c6\u9891<\/h2>\n\n\n\n<iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/O9H07lqUb6E\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen=\"\"><\/iframe>\n\n\n\n<hr class=\"wp-block-separator has-text-color has-vivid-cyan-blue-color has-alpha-channel-opacity has-vivid-cyan-blue-background-color has-background is-style-dots\"\/>\n\n\n\n<p>Assignment score\uff1a72\/100<\/p>\n\n\n\n<p><span class=\"has-superb-addons-text-align-justify\">Instructor feedback\uff1a<br>Good to see the completion of the model. Need to avoid ngons in meshes &amp; avoid too many cuts while UVing. However, good to see the use of toon shader in your workflow. The animation poses look decent but need to improve timing to avoid floating vibe. Need to have more impact when the feet touches the ground to demonstrate the weight. Decent lighting, report needed to have more screenshots of the process.<\/span><\/p>","protected":false},"excerpt":{"rendered":"<p>\u8fd9\u4e00\u4f5c\u4e1a\u662f\u5bf9\u66fe\u7ecf\u7684\u6a21\u578b\u9879\u76ee\u7684\u4fee\u6539\u548c\u63d0\u5347\uff0c\u5e76\u5728\u6b64\u57fa\u7840\u4e0a\uff0c\u6dfb\u52a0\u4e86\u9aa8\u9abc\u7ed1\u5b9a\u548c\u52a8\u753b\u3002\u539f\u9879\u76ee\u5730\u5740\uff1a \u5728\u5efa\u6a21\u65f6\uff0c\u6211\u6700\u521d\u662f\u5c06 [&hellip;]<\/p>","protected":false},"author":1,"featured_media":999,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17,13],"tags":[29,40,41],"class_list":["post-987","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-academic-traces","category-design-portfolio","tag-3d","tag-modelling","tag-art-design"],"_links":{"self":[{"href":"https:\/\/www.admiralspee.site\/en\/wp-json\/wp\/v2\/posts\/987","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.admiralspee.site\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.admiralspee.site\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.admiralspee.site\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.admiralspee.site\/en\/wp-json\/wp\/v2\/comments?post=987"}],"version-history":[{"count":4,"href":"https:\/\/www.admiralspee.site\/en\/wp-json\/wp\/v2\/posts\/987\/revisions"}],"predecessor-version":[{"id":1004,"href":"https:\/\/www.admiralspee.site\/en\/wp-json\/wp\/v2\/posts\/987\/revisions\/1004"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.admiralspee.site\/en\/wp-json\/wp\/v2\/media\/999"}],"wp:attachment":[{"href":"https:\/\/www.admiralspee.site\/en\/wp-json\/wp\/v2\/media?parent=987"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.admiralspee.site\/en\/wp-json\/wp\/v2\/categories?post=987"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.admiralspee.site\/en\/wp-json\/wp\/v2\/tags?post=987"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}