Procedural Animation, ngắn gọn:
Khi phát triển các video game kết hợp 3D, mọi thứ bạn nhìn thấy trên màn hình được tạo ra từ những mặt hình học tam giác hay còn gọi là đa giác.
Có những phần trong trò chơi không di chuyển như sàn, tường và trần nhà. Nhưng có những thành phần có thể di chuyển như người, xe hơi hoặc phần của xe như cửa, và động vật. Để làm cho những phần này di chuyển mượt mà, chúng ta sử dụng cái gọi là “skeleton” hoặc “bộ xương” với những phần nhỏ gọi là “bone” hoặc “xương nhỏ”.
Mỗi bone có thể làm cho một thành phần di chuyển. Điều này giúp chúng ta tạo ra những chuyển động thú vị và linh hoạt. Đôi khi, chúng ta cũng sử dụng một loại hoạt hình đặc biệt gọi là “procedural animations” để khiến những phần di chuyển đúng cách, thậm chí khi có sự biến động nhỏ trong trò chơi.
Video trong post tạo procedural animation môi trường Unreal Engine, nhân vật leo tường, phát triển bởi: Lincoln Margison – Game Development
Lincoln Margison là nhát phát triển game trên Unreal Engine, đồng thời cũng có course hướng dẫn rigging với Control Rig, chức năng giúp tạo rigging real-time trong Unreal Engine. Ngoài ra tác giả cũng có các tài liệu hướng dẫn trên Udemy về tạo procedural animation. Link tới video Youtube của tác giả https://www.youtube.com/@LincolnMargison/videos
**********
Ưu điểm:
Cho phép làm những động tác linh hoạt vì những người làm máy tính có thể chỉnh sửa xương (bộ phận cơ bản của nhân vật) để giúp người làm hoạt hình.
Giúp nhân vật di chuyển tự nhiên hơn bằng cách “trộn lẫn” giữa nhiều tư thế khác nhau, tránh tình trạng chân hoặc tay đi qua phần khác của cơ thể.
Tạo sự đa dạng cho những hành động của nhân vật, như vấp phải đá hoặc nắm lấy đồ vật trong môi trường.
Hoạt hình dạng quy trình “procedural animation” thường hoạt động nhanh và không tốn nhiều tài nguyên máy tính hoặc bộ nhớ.
**********
Nhược điểm
(tính tới thời điểm 2024 thì procedural animation không chỉ ứng dụng cho robotic, mà còn rất nhiều cho vật và dáng người):
Nếu làm không tốt, procedural animation có thể khiến những động tác trở nên cứng nhắc hoặc máy móc.
Có thể mất thời gian cho những người phát triển như gamedev, technical art, và việc này có thể tốn tài nguyên hơn so với thời gian của animator.
Chưa kể khó để thêm cái “đặc biệt” hoặc “phong cách riêng” kiểu dấu ấn animation vào những động tác của nhân vật vì các hoạt động được tính toán bằng toán học.
Tư liệu hướng dẫn thực hiện và trình bày thủ pháp
Bài trình bày về Procedural Animation trong phát triển video games tại GDC: https://youtu.be/LNidsMesxSE
Giải thích phong cách gen Z: https://youtu.be/ZSSuXn0iJbY
Giải thích kiểu anh lập trình viên, chị coder: https://www.youtube.com/watch?v=KPoeNZZ6H4s
State machine chi tiết hướng dẫn Unreal Engine làm procedural animation: https://youtu.be/WcDj4uZygyE
Một Playlist sẽ hướng dẫn giải thích với engine là Unreal Engine: https://www.youtube.com/playlist?list=PLtJKqo7Z1pyI42M5RtFaG88CtMdmTeXH4
Sử dụng Unity để tạo animation cho nhân vật, hoàn toàn procedural: https://www.youtube.com/playlist?list=PLwCUTp6V2tsuWy3-bY0fuTpUk_UZt1oVS
GDC trình bày IK Rig cho procedural animation với các pose cùng anatomy https://www.youtube.com/watch?v=KLjTU0yKS00
Tương Lai Gần, Với Machine Learning, Với Deep Learning
Nhìn vào có thể thấy việc programming, code vẫn thủ công để tạo animation procedural. Nhưng tính lặp đi lặp lại theo kiểu pattern là nhìn thấy được.
Dĩ nhiên đã nói là procedural animation tức là ứng dụng các phương án toán học vào trong việc tạo hình animation, đã là lập trình, tự động hóa thì chắc chắn tương lai việc này Machine Learning úng dụng là quá phù hợp.
Tính ứng dụng cụ thể vào production của procedural animation có kết hợp machine learning hiện tại đã len loi khá nhiều vào trong môi trường sản xuất, tính tới thời điểm này, trong 2 3 năm nữa chắc chắn đó là các mảng không thể thiếu trong môi trường phát triển video game.
Ubisoft trình bày ở GDC về Machine Learning ứng dụng cho Assasin Creed https://www.youtube.com/watch?v=o-QLSjSSyVk
La Forge – studio phát triển game thuộc Ubisoft nghiên cứu và phát hành liên tục các thông báo về thành tựu ứng dụng Machine Learning, Neural Network vào procedural animation: https://www.ubisoft.com/en-us/studio/laforge/news/6xXL85Q3bF2vEj76xmnmIu/introducing-learned-motion-matching
Cùng xem loạt các nghiên cứu và cố gắng phát triển ứng dụng Machine Learning vào procedural animation trong môi trường tương tác: https://www.youtube.com/playlist?list=PLyaCpRAQdnj92NvddK-c7LGo-M3ZnqF0R