Phương pháp tạo hiệu ứng chuyển động nhân vật vừa nhịp nhàng vừa mang tính tự nhiên trong Game Animation

Phương pháp tạo hiệu ứng chuyển động nhân vật vừa nhịp nhàng vừa mang tính tự nhiên trong Game Animation

Video game cũng giống như phần mềm cần phải đáp ứng những yêu cầu chức năng và rõ ràng rằng các yêu cầu chức năng quan trọng nhất của một video game là mang lại sự giải trí cho người chơi. Người chơi muốn có những giây phút thư giãn khi chơi các video game và do đó tồn tại rất nhiều yếu tố có thể mang lại sự giải trí này cho người chơi.

Một trong những yếu tố quan trọng đó chính là những animation (nôm na là hiệu ứng chuyển động của các nhân vật hoặc môi trường...) trong game. Animation rất quan trọng bởi vì nó có thể ảnh hưởng đến game theo nhiều khía cạnh khác nhau. Thẩm mỹ của game, cơ chế điều khiển, logic của game.v.v..

Bài viết này sẽ xem xét các animation trong điều kiện vừa khớp với bộ điều khiển mà chuyển động cuat nhân vật vẫn trông tự nhiên. Trong bài viết này tôi sẽ chia sẻ một số bí quyết mà chúng tôi đã áp dụng các animation cho một tựa game hành động platforming side-scroller mang tên "Shadow Blade: Reload". Game này sử dụng công nghệ Unity3D. Phiên bản PC đã được phát hành vào ngày 10 tháng 8 năm 2015 thông qua Steam và phiên bản console đang trong quá trình hoàn thiện. Vì vậy, trước khi xem xét những nội dụng chính của bài viết, chúng ta hãy dành một chút thời gian ngó qua sản phẩm này:

Giờ là lúc chúng ta bắt đầu thảo luận về các vấn đề. Đầu tiên, hãy xem xét một ví dụ đơn giản trong thế giới thực. Bạn muốn đấm vào một bao cát to đùng. Bạn sẽ xoay hông, thân mình và vai theo thứ tự và dồn toàn bộ năng lượng để xoay và thực hiện động tác đấm của bạn. Bạn cảm nhận được xung lượng của nắm đấm và lực cơ bắp của cánh tay và sau đó bạn nghe thấy tiếng bịch khi đấm vào bao cát. Vì vậy, bạn cảm nhận được xung lượng từ xúc giác của bạn, lắng nghe được những âm thanh liên quan đến hành động của bạn và nhìn thấy những chuyển động mong muốn từ cơ thể của bạn. Tất cả mọi thứ đều được đồng bộ! Bạn cảm nhận được toàn bộ quá trình với các giác quan khác nhau của bạn. Tất cả mọi thứ đều bình thường và những động tác chúng ta thực hiện đều rất tự nhiên.

Bây giờ hãy xem xét một ví dụ khác trong thế giới ảo của một video game. Giờ đây bạn có một bộ điều khiển, bạn nhấn một nút và bạn muốn được nhìn thấy một chuyển động mà bạn mong muốn. Chuyển động này có thể là bất kỳ một hành động cụ thể như một bước nhảy hay một cú đấm. Nhưng cú đấm ở đây lại khác so với ví dụ được đề cập trong thế giới thực bởi vì người chơi chỉ được sử dụng ngón tay của anh ta trên bộ điều khiển và các nhân vật ảo sẽ di chuyển toàn bộ cơ thể để phản hồi thông tin với những sự điều khiển của người chơi. Mỗi khi người chơi thực hiện một lần nhấn nút thì nhân vật ảo của anh ta sẽ thực hiện một hành động tương thích với chức năng của nút đó. Nếu nhân vật ảo chuyển động theo dự định mong muốn của người chơi sau khi họ nhấn nút, chúng ta có thể nói rằng người chơi đã được hòa nhập vào game bởi vì hành động nhấn nút đó gần như tương tự như hành động đấm trong thế giới thực. Các phản hồi đồng bộ của các animation, điều khiển và âm thanh giúp người chơi cảm thấy bản thân mình hòa nhập nhiều hơn vào trong game. Người chơi sử dụng những xúc giác của họ trong khi tương tác với bộ điều khiển, sử dụng thị lực của họ để điều khiển những chuyển động của nhân vật theo dự định và cần nhận âm thanh bằng thính giác của họ. Việc có tất cả sự đồng bộ này sẽ mang lại tính phản hồi cao và tính tự nhiên cho nhân vật, những điều mà chúng tôi muốn thấy trong các game của chúng tôi.

Bây giờ vấn đề ở đây là nếu bạn muốn có mức độ phản hồi cao từ bộ điều khiển, bạn phải loại bỏ đi một vài tính tự nhiên cho nhân vật trong animation. Trong một tựa game như Shadow Blade: Reload, các phản hồi là rất quan trọng bởi vì bất kỳ động tác di chuyển nào diễn ra cũng có thể khiến người chơi bị lao vào chướng ngại vật hoặc bị giết bởi kẻ thù. Tuy nhiên chúng tôi cần phải có những animation bắt mắt. Vì vậy, trong phần tiếp theo, tôi sẽ nêu ra một số bí quyết để vừa đáp ứng sự phản hồi cao vừa tạo ra tính tự nhiên cho nhân vật của chúng tôi mang tên là Kuro. 

Những bí quyết có thể mang đến cả sự phản hồi cao từ bộ điều khiển và cả tính tự nhiên vào trong Animation.

Một số kỹ thuật được sử dụng trong animation của "Shadow Blade: Reload" được liệt kê ở đây. Chúng được sử dụng để duy trì sự tự nhiên trong khi có sự phản hồi cao:

1- Sử dụng các animation phụ: animation phụ có thể được sử dụng để hiển thị một số chuyển động không đồng bộ phía trên các animation hiện hành. Chúng tôi sử dụng chúng trong các tình huống khác nhau để thể hiện xung lượng trên cơ thể mà vẫn không làm gián đoạn người chơi để hiển thị những animation khác nhau. Một ví dụ là tạo animation cho mặt đất. Sau khi người chơi rơi xuống và chạm đến mặt đất, người chơi có thể tiếp tục chạy hoặc tấn công hoặc ném phi tiêu mà không cần phải dừng lại. Vì vậy, chúng tôi có thể hòa quyện trực tiếp chuyển động rơi xuống với các hình ảnh động khác như chạy. Nhưng sự pha trộn trực tiếp giữa sự rơi xuống và tiếp tục chạy không cung cấp một chuyển động có thể chấp nhận được. Vì vậy, ở đây chúng tôi đã thêm một animation cho mặt đất hoặc các animation khác để thể hiện xung lượng phần phía trên cơ thể nhân vật. Những animation phụ mang lại mục đích trực quan và người chơi có thể tiếp tục chạy hoặc làm những hành động khác mà không bị bất kỳ sự gián đoạn nào hết. Đoạn video dưới đây cho thấy các animation phụ dùng cho xung lượng mặt đất tác đông lên cơ thể của người chơi:

Trong Unity, các animation phụ được tính toán dựa trên sự liên quan so với khung hình đầu tiên của animation hiện hành. Vì vậy, tư thế animation phụ trong mỗi khung hình bằng với phần chênh lệch giữa tư thế khung hình hiện tại và tư thế khung hình đầu tiên. Các tư thế tham chiếu của các nhân vật được sử dụng ở đây mang lại animation phụ tổng quát hơn mà có thể được áp dụng cho một loạt các animation vận động khác nhau. Animation phụ này không được áp dụng cho các idle animation (chuyển động nghỉ). Hiệu ứng Idle sử dụng một animation khác cho mặt đất.

Chúng tôi cũng đã sử dụng một số animation phụ khác. Ví dụ một animation phụ ngọn gió phía trên lưng và cánh tay của nhân vật. Nó được hiển thị khi nhân vật đang dừng và bắt đầu chạy liên tục. Nó cho thấy xung lực của cánh tay và lưng của nhân vật khi chạy.

Lưu ý rằng, các animation phụ phải được tạo ra một cách cẩn thận. Nếu bạn là một nhà phát triển độc lập không có thời gian trau chuốt animation, bạn có thể thực hiện những loại thay đổi giống như animation phụ thông qua một số kỹ thuật animation sử dụng kỹ thuật lập trình khác chẳng hạn như Inverse Kinematics. Ví dụ một chuỗi IK trên lưng có thể được xác định và được sử dụng để sửa đổi. Điều này cũng đúng cho cánh tay và bàn chân.Tuy nhiên chuỗi IK phải được xác định một cách cẩn thận.

2- Turn Animation (chuyển động đổi hướng) cụ thể: Bạn sẽ thấy Turn Animation trong nhiều game. Ví dụ, bằng cách nhấn nút di chuyển theo hướng ngược lại khi nhân vật đang chạy, sẽ khiến cho nhân vật trượt và ngay lập tức quay trở lại. Trong khi animation này rất tốt cho nhiều game và mang đến cảm giác chân thực cho các chuyển động, nó lại không phù hợp đối với một tựa game hành động platform giống như SB: R bởi vì bạn luôn luôn di chuyển qua lại trên những platform với những khu vực nhỏ và việc có thêm một sự di chuyển có thể làm cho bạn vô tình bị rơi xuống hố và nó đi ngược lại sự phản hồi cao của bộ điều khiển. Vì vậy đối với điều này, chúng tôi cho xoay nhân vật 180 độ bên trong một khung hình. Nhưng một lần nữa, xoay nhân vật 180 độ bên trong một khung hình, không cung cấp một chuyển động đẹp mắt. Vì vậy, ở đây chúng tôi đã sử dụng hai turn animation khác nhau. Chúng hiển thị khi nhân vật chuyển hướng, bắt đầu với một hướng ngược lại so với vector chuyển tiếp của nhân vật và kết thúc theo một hướng về phía trước bằng với vector của nhân vật. Khi chúng tôi lần lượt đổi hướng các nhân vật chỉ trong một khung hình, chúng tôi áp dụng animation này và các animation có thể hiển thị sự đổi hướng một cách hoàn toàn. Nó có cùng vận tốc với animation chạy của nhân vật vì thế không cần phải thay đổi điều gì nữa theo khía cạnh sự phản hồi và bạn sẽ chỉ nhìn thấy một turn animation hiển thị xung lượng của một chuyển động đổi hướng trên cơ thể và nó có thể mang lại animation đẹp mắt cho game.

Một điều cần được xem xét ở đây là những turn animation bắt đầu trong một hướng ngược lại về phía vector chuyển tiếp của nhân vật, vì vậy đối với việc sử dụng animation này, chúng tôi đã tắt sự pha trộn chuyển tiếp vì nó có thể làm cho chuyển động của nhân vật bị giật trên xương gốc trong khi pha trộn.

Để tránh sai lệch khung hình, chúng tôi sử dụng haiturn animation khác nhau và áp dụng chúng dựa trên các bàn chân trong animation chạy của nhân vật. Bạn có thể xem các animation lần lượt tại đây:

3- Kẻ thù chậm chạp hơn: Trong khi các nhân vật chính rất nhanh nhẹn, những kẻ thù không được như vậy! Animation của chúng có nhiều khung hình hơn. Điều này có thể giúp người chơi giảm thiệu sự tập trung cho nhân vật chính trong nhiều tình huống. Bạn có thể biết rằng đôi mắt người chơi có một khả năng tuyệt vời để tập trung và phóng to trên các đối tượng khác nhau. Vì vậy, khi bạn nhìn vào một kẻ thù, bạn chỉ có thể nhìn thấy chúng rõ ràng còn những đối tượng khác thì không. Animation cho kẻ địch chậm chạp hơn với nhiều khung hình giúp chúng tôi giảm sự tập trung cho người chơi ở nhiều điểm.

Lưu ý rằng, tôi muốn nói rằng tôi đã được xem một chương trình khoa học về đôi mắt của con người trước đây và nó cho thấy đôi mắt phụ nữ có tầm nhìn rộng hơn so với người đàn ông và người đàn ông có sự tập trung tốt hơn.

4- Khoảng pha trộn an toàn để hủy bỏ các Animation: Giả sử một animation vật lộn với kẻ thù. Nó có thể được bắt đầu từ tư thế idle và kết thúc cũng trong tư thế idle. Animation có thể làm công việc của nó với 50% hiệu suất. Tại hầu hết mọi thời điểm, người chơi đều không muốn nhìn thấy những animation cho đến điểm kết thúc của quá trình chơi. Họ thích làm những hành động khác. Trong game, người chơi thường có xu hướng hủy bỏ các đòn tấn tông và animation vật lộn với kẻ thù sau khi họ tiêu diệt kẻ thù. Họ muốn chạy, nhảy và tiếp tục điều hướng. Vì vậy, đối với mỗi animation có thể được hủy bỏ, chúng tôi thiết lập một khoảng pha trộn an toàn sử dụng như thời gian để bắt đầu hủy bỏ animation hiện tại. Khoảng này cung cấp những tư thế mà có thể được pha trộn tốt với việc chạy, nhảy hoặc tấn công những đối tượng khác. Nó cung cấp ít foot-skating, sai lệch khung hình và pha trộn vận tốctốt, trong khi pha trộn giữa những animation.

5- Animation liên tục: Trong tựa game SB: R, hầu hết các animation được chuyển động liên quan đến các animation có xác suất cao. Ví dụ, người chơi chạy để tung đòn tấn công. Khi tạo hiệu ứng animation cho nhân vật, các animator đã nối một vòng lặp của quá trình chạy và tạo ra các đòn đánh tấn công ngay sau đó. Với điều này, chúng tôi có thể có một sự pha trộn tốc độ hiệu quả giữa sourcevà animation đích vì các animatuon chạy tấn công đã được tạo ra liên quan đến animation chạy ban đầu. Ngoài ra chúng tôi có thể duy trì được tốc độ và sự phản hồi cao của các animation trước đó vào các animation hiện nay.

6- Chiến đấu dựa theo trạng thái: Trong SB: R chúng tôi phải chiến đấu dựa trên trạng thái, nhờ đó chúng tôi biết cách sử dụng các animation khác nhau dựa trên trạng thái hiện tại của người chơi (di chuyển, đứng, nhảy, cự lý đến kẻ thù).

Việc tấn công từ mỗi trạng thái bối cảnh, gây ra những animation khác nhau được lựa chọn, tất cả chúng đều được diễn ra gần như cùng một tốc độ và xung lực của trạng thái hiện tại của người chơi (di chuyển, đứng, bổ nhào và vv).

Ví dụ, chúng tôi đã thử nghiệm chạy tấn công, bổ nhào tấn cống...và nhiều animation khác. Tất cả đều bắt đầu từ animation tương ứng như chạy, nhảy.

7- Mô phổng tính chất vật lý bằng quần áo như chuyển động thứ cấp: Mặc dù sự phản hồi có thể giảm tỷ lệ tính tự nhiên nhưng nếu thêm một số chuyển động thứ cấp như mô phỏng bằng một tấm vải áo choàng có thể giúp giải quyết vấn đề này. Trong SB: R chúng ta có một chiếc khăn đỏ cho nhân vật chính Kuro giúp chúng tôi thấy rằng việc chuyển động của nhân vật có thể được chấp nhận dễ dàng hơn.

Phần kết luận

Sự phản hồi cao từ bộ điều khiển so với tính tự nhiên của chuyển động nhân vật luôn là một thách thức rất lớn cho video game, tuy nhiên vẫn có nhiều cách để dung hòa được cả hai. Tôi hi vọng bài viết này sẽ giúp ích cho các anh chàng animator, những anh chàng thông minh, sáng tạo.

Đánh giá bài blog này:
Nghiên cứu tình huống: A/B Testing có thể cải thiệ...
16 lí do tại sao người chơi bỏ game

Các bài viết liên quan