1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu một số kỹ thuật điều khiển nhân vật tương tác và ứng dụng trong không gian ảo

85 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nghiên Cứu Một Số Kỹ Thuật Điều Khiển Nhân Vật Tương Tác Và Ứng Dụng Trong Không Gian Ảo
Tác giả Nguyễn Đức Nhân
Người hướng dẫn PGS.TS. Nguyễn Văn Huân
Trường học Đại học Thái Nguyên
Chuyên ngành Khoa học máy tính
Thể loại Luận văn thạc sĩ
Năm xuất bản 2023
Thành phố Thái Nguyên
Định dạng
Số trang 85
Dung lượng 5,46 MB

Cấu trúc

  • Chương 1: TỔNG QUAN VỀ MÔ PHỎNG CHUYỂN ĐỘNG TRONG KHÔNG GIAN ẢO (11)
    • 1.1. Kỹ thuật và hiển thị đồ họa 3D (11)
    • 1.2. Lý thuyết về xây dựng mô hình 3D (12)
    • 1.3. Xây dựng mô hình 3D (13)
    • 1.4. Khái quát về kỹ thuật dựng mô hình 3D (16)
    • 1.5. Lý thuyết về bài toán mô phỏng và điều khiển tương tác di chuyển nhân vật (18)
  • Chương 2: KỸ THUẬT ĐIỀU KHIỂN TƯƠNG TÁC-CONTROL NHÂN VẬT (21)
    • 2.1. Cơ sở toán học cho phép toán dịch chuyển (21)
    • 2.2. Phương pháp xây dựng mô hình 3D (22)
    • 2.3. Kỹ thuật rigging xương cho điều khiển nhân vật tương tác-Control (30)
    • 2.4. Kỹ thuật điều khiển nhân vật chuyển động dựa vào các phép biến đổi hình học 3D (38)
      • 2.4.1. Phép biến đổi hình học 3D (38)
      • 2.4.2. Phép quay nhân vật 3D (40)
    • 2.5. Kỹ thuật tạo điều khiển Inverse Kinematic cho nhân vật (42)
      • 2.5.1. Thực hiện gán các ký hiệu, mã hóa biểu diễn các cánh tay, chân…. cho nhân vật (42)
      • 2.5.2. Kỹ thuật điều khiên nhân vật tương tác sử dụng IK (48)
    • 2.6. Sử dụng chuỗi động lực trong mô phỏng chuyển động nhân vật (54)
    • 2.7. Phương pháp ước tính tư thế 3D cho nhân vật chuyển động (56)
    • 2.8. Thuật toán điểm gần nhất lặp lại (59)
    • 2.9. Một số phương pháp hỗ trợ chuyển động nhân vật (60)
      • 2.9.1. Phương pháp lặp lại (60)
      • 2.9.2. Cây K-D (62)
    • 2.10. Kết luận và vấn đề nghiên cứu (64)
  • CHƯƠNG 3: CHƯƠNG TRÌNH THỬ NGHIỆM (65)
    • 3.1. Giới thiệu bài toán (65)
    • 3.2. Mô tả đầu vào và đầu ra bài toán (0)
    • 3.3. Mô tả đầu vào và đầu ra bài toán (66)
    • 3.4. Phân tích bài toán (69)
    • 3.5. Chương trình mô phỏng (71)
      • 3.5.1. Hướng dẫn cài đặt, sử dụng chương trình (71)
      • 3.5.2. Kết quả thực nghiệm (72)
    • 3.6. Nhận xét, đánh giá thử nghiệm chương trình (76)
  • KẾT LUẬN (78)
  • TÀI LIỆU THAM KHẢO (79)
  • PHỤ LỤC (81)
    • Hinh 2.26. Tạo IK kép cho tay (0)

Nội dung

Như vậy, chúng ta có thể thấy, đối với bất kỳ không gian ảo nào, dù là phim 3D hay các trò chơi game 3D, chương trình tham quan mô phỏng 3D đối với các điểm di tích lịch sử, điểm du lịch

TỔNG QUAN VỀ MÔ PHỎNG CHUYỂN ĐỘNG TRONG KHÔNG GIAN ẢO

Kỹ thuật và hiển thị đồ họa 3D

Nguyên lý về 3D: Đồ họa 3 chiều (3D computer graphics) bao gồm việc bổ xung kích thước về chiều sâu của đối tượng, cho phép ta biểu diễn chúng trong thế giới thực một cách chính xác và sinh động hơn Tuy nhiên, các thiết bị truy xuất hiện tại đều là 2 chiều, Do vậy, việc biểu diễn được thực thi thông qua phép tô chát (render) để gây ảo giác (illusion) về độ sâu Đồ hoạ 3D là việc chuyển thế giới tự nhiên dưới dạng các mô hình biểu diễn trên các thiết bị hiển thị thông qua kỹ thuật tô chát (rendering) [22,23] Đặc điểm của kỹ thuật đồ họa 3D:

Có các đối tượng phức tạp hơn các đối tượng trong không gian 2D:

Bao bởi các mặt phẳng hay các bề mặt

Có các thành phần trong và ngoài

Các phép biến đổi hình học phức tạp Các phép biến đổi hệ toạ độ phức tạp hơn Thường xuyên phải bổ xung thêm phép chiếu từ không gian 3D vào không gian 2D Luôn phải xác định các bề mặt hiển thị

Các phương pháp hiển thị mô hình 3D:

Trên cơ sở các mô hình 3D, chúng ta cần phải nghiên cứu sử dụng các kỹ thuật hiển thị mô hình 3D Để hiển thị các mô hình 3D trong môi trường ảo, có nhiều phương pháp khác nhau để biểu diễn, hiển thị mô hình 3D Dưới đây là một số phương pháp hiển thị mô hình 3D:

Kỹ thuật chiếu (projection): Trực giao (orthographic)/phối cảnh (perspective)

Kỹ thuật đánh dấu độ sâu (depth cueing)

Nét khuất (visible line/surface identification)

Tô chát bề mặt (surface rendering)

Cắt lát (exploded/cutaway scenes, cross-sections)

Các thiết bị hiển thị 3D:

Lý thuyết về xây dựng mô hình 3D

Mô hình 3D là quá trình tạo biểu diễn 3D của bất kỳ bề mặt hoặc vật thể nào bằng cách thao tác đa giác, cạnh và đỉnh trong không gian 3D mô phỏng Chúng ta đã thấy kết quả của mô hình 3D trong phim, hoạt hình và trò chơi video chứa đầy các sinh vật và cấu trúc tưởng tượng và giàu trí tưởng tượng [16,17,18]

Mô hình 3D có thể đạt được bằng tay với phần mềm sản xuất 3D chuyên dụng cho phép nghệ sĩ tạo và biến dạng các bề mặt đa giác hoặc bằng cách quét các đối tượng trong thế giới thực vào một tập hợp các điểm dữ liệu có thể được sử dụng để thể hiện đối tượng kỹ thuật số

Mô hình 3D là một quá trình phát triển một biểu diễn toán học, dựa trên tọa độ, ba chiều của các đối tượng và bề mặt động hoặc sống Mô hình 3D, là kết quả của mô hình 3D, là một thu thập dữ liệu được tạo ra bằng cách thao tác các đỉnh, cạnh và lưới đa giác trong không gian 3D

Những điểm này trong không gian ảo được gọi là các đỉnh bao gồm một lưới - tập hợp các đỉnh (điểm ảo) mà một đối tượng được tạo thành Tất cả các điểm này được ánh xạ vào lưới 3D Sau đó, mỗi điểm có vị trí của nó và được kết hợp thành hình dạng, vật thể hoặc bề mặt Vì vậy, về mặt kỹ thuật, Mô hình 3D là một tập hợp các điểm được kết nối bằng các đường, hình tam giác, bề mặt cong và các thực thể hình học khác trong không gian 3D

Xây dựng mô hình 3D: Trong đồ họa máy tính 3D, xây dựng mô hình 3D là quá trình phát triển biểu diễn toán học của bất kỳ bề mặt nào của vật thể theo ba chiều thông qua phần mềm chuyên dụng Sản phẩm được gọi là mô hình 3D

Ai đó làm việc với các mô hình 3D có thể được gọi là một nghệ sĩ 3D Nó có thể được hiển thị dưới dạng hình ảnh hai chiều thông qua quá trình gọi là kết xuất 3D hoặc được sử dụng trong máy tính mô phỏng các hiện tượng vật lý

Trong kỹ thuật biểu diễn mô hình 3D, người ta phân thành 2 nhóm: Xây dựng mô hình vật thể và Xây dựng mô hình hình học

Kỹ thuật xây dựng mô hình hình học được phát triển trong các ngành công nghiệp tự động hóa và chủ yếu được sử dụng để thiết kế các hình dạng của xe hơi Hiện nay, mô hình này còn được ứng dụng trong các ngành như công nghiệp hàng không, hải quân và một số lĩnh vực khác Mô hình này cũng hỗ trợ chính cho việc điều khiển về mặt hình dạng

Kỹ thuật xây dựng mô hình vật thể được xây dựng dựa trên các thông tin biểu diễn đầy đủ, chính xác, rõ ràng một đối tượng trong không gian, chúng có thể tạo ra các mô hình trên máy tính với khả năng phân loại bất kỳ điểm nào trong không gian 3 chiều: phía trong, phía ngoài, hoặc là trên bề mặt của đối tượng Cách sử dụng mô hình 3D: Mô hình 3D được sử dụng trong nhiều lĩnh vực, bao gồm kỹ thuật, kiến trúc, giải trí, phim ảnh, hiệu ứng đặc biệt, phát triển trò chơi và quảng cáo thương mại Một ví dụ phổ biến về công nghệ 3D là việc sử dụng nó trong các hình ảnh chuyển động chính Chỉ cần nghĩ về khung cảnh

"Avatar", bộ phim năm 2009 của đạo diễn James Cameron Bộ phim đã giúp biến đổi ngành công nghiệp 3D khi nó sử dụng nhiều khái niệm về mô hình 3D để tạo ra hành tinh Pandora của bộ phim [12,13,14,15].

Xây dựng mô hình 3D

Việc xây dựng mô hình 3D các đối tượng thường dựa vào các mô hình cơ bản trong đồ họa máy tính, cụ thể là hiện nay có hai mô hình cơ bản của ứng dụng đồ họa là dựa trên mẫu số hóa và dựa trên đặc trưng hình học Trong ứng dụng đồ họa dựa trên mẫu số hóa thì các đối tượng đồ họa được tạo ra bởi lưới các điểm ảnh rời rạc Các điểm ảnh này có thể được tạo ra bằng các chương trình vẽ, máy quét, Các điểm ảnh này mô tả tọa độ xác định vị trí và giá trị mẫu Thuận lợi của ứng dụng này là dễ dàng thay đổi ảnh bằng cách thay đổi màu sắc hay vị trí của các điểm ảnh, hoặc di chuyển vùng ảnh từ nơi này sang nơi khác Tuy nhiên, điều bất lợi là không thể xem xét đối tượng từ các góc nhìn khác nhau Ứng dụng đồ họa dựa trên đặc trưng hình học bao gồm các đối tượng đồ họa cơ sở như đoạn thẳng, đa giác, Chúng được lưu trữ bằng các mô hình và các thuộc tính Như đoạn thẳng được mô hình bằng hai điểm đầu và cuối, có thuộc tính như

6 màu sắc, độ dày Người sử dụng không thao tác trực tiếp trên các điểm ảnh mà thao tác trên các thành phần hình học của đối tượng

Việc tạo mô hình 3 chiều thường thông qua máy quét 3 chiều hoặc các phần mềm chuyên dụng Hiện nay, có rất nhiều phần mềm chuyên dụng xử lý 3D khác nhau như: Maya, 3DS Max, Bryce 3D, InfiniD, Soft Image, … nhưng được đánh giá mạnh nhất và hay sử dụng nhất là hai phần mềm: Maya và 3DS Max Hai phần mềm này đều là công nghệ chuẩn 3 chiều

Hay các Phần mềm mô hình 3D:

Phần mềm mô hình 3D cho phép bạn thiết kế mô hình 3D cơ bản của các nhân vật hoặc đối tượng Các chương trình đầy đủ tính năng cung cấp các công cụ bạn cần để bổ sung các thiết kế của bạn với các chi tiết thực tế Có rất nhiều chương trình phần mềm mô hình 3D trên thị trường Trong số những đánh giá cao nhất được liệt kê ở đây:

ZBrush từ Pixologic kết hợp các kỹ thuật điêu khắc đất sét vào phần mềm cấp độ chuyên nghiệp Quá trình này mất nhiều giờ để thành thạo, vì vậy nó không được khuyến khích cho người mới bắt đầu thiết kế 3D Các nhà phát triển tương tự sản xuất Sculptris, một ứng dụng mô hình 3D miễn phí tương tự nhưng đơn giản hơn mà các nhà thiết kế 3D mới có thể thử trước tiên

SketchUp là một chương trình 3D dành cho các nhà thiết kế có một số kinh nghiệm về mô hình 3D SketchUp chuyên về cấu trúc kiến trúc và thường được sử dụng để trực quan hóa kiến trúc, thiết kế nội thất, quy hoạch đô thị, kỹ thuật và xây dựng Nó có sẵn cho các hệ điều hành Windows và macOS

Blender là phần mềm mô hình 3D mã nguồn mở miễn phí phù hợp để tạo phim hoạt hình, hiệu ứng hình ảnh, nghệ thuật, ứng dụng tương tác và trò chơi video Nó hoạt động trên các hệ điều hành Windows, macOS và Linux

Với phạm vi của báo cáo này, việc tạo ra các mô hình 3 chiều với các hiện tượng gắn với nó là một đòi hỏi tất yếu Luận văn trình bày kỹ thuật tiếp cận trong việc tạo mô hình 3 chiều trên cơ sở kết hợp 2 phần mềm tạo mô hình 3 chiều thông dụng hiện nay là Maya và 3DS Max

Maya, 3DS Max cũng như các phần mềm tạo mô hình 3 chiều khác giúp tạo mô hình 3 chiều mô phỏng thế giới thực Nó có các đối tượng nguyên thuỷ như hình cầu, hình trụ, hình hộp, mặt phẳng, đường cong…Từ các đối tượng nguyên thuỷ này ta sử dụng các thao tác như dịch chuyển, xoay, co giãn cùng với các kỹ thuật chỉnh sửa như cắt xén, mở rộng, thêm bớt… để tạo nên đối tượng mong muốn trong thế giới thực

Hình 1.1 Các thao tác dịch chuyển, xoay…

Từ trái sang phải là các thao tác dịch chuyển, xoay, co giãn, ứng với mỗi trục toạ độ là một màu

Sau đó các đối tượng sẽ được thêm xương (nếu có), tính chất bề mặt (như màu sắc, da, tóc, mắt …) và được tạo các chuyển động mô phỏng một cách sinh động các thể hiện của đối tượng trong thế giới thực

Khi làm việc với các phần mềm ta sẽ thao tác trên 4 khung nhìn khác nhau của đối tượng, 4 khung nhìn này sẽ cho ta nhìn được đối tượng ở các góc độ khác nhau một cách đồng thời, những hình ảnh dưới đây minh họa điều này:

Hình 1.2 Các khung nhìn khác nhau

Ta có hệ trục tọa độ 3 chiều XYZ, màu xanh lam ứng với trục Y, đỏ với trục X và xanh đậm với trục Z Góc trên phải là khung làm việc cho phép ta thao tác trong 3 chiều, 3 góc còn lại cho phép ta làm việc ở 3 mặt cắt của mô hình Với các khung nhìn này ta có thể thao tác dễ dàng hơn, khi một thay đổi xuất hiện ở một khung nhìn sẽ cho hiệu ứng đối với các khung nhìn khác

Bên cạnh hệ trục tọa độ XYZ ta còn có hệ tọa độ UV, hệ tọa độ UV bao bọc bề mặt theo 2 chiều trái sang phải và dưới lên trên Có thể hình dung ra hệ tọa độ này như là các đường kinh tuyến và vĩ tuyến của trái đất Hệ tọa độ này chủ yếu được sử dụng trong quá trình thêm tính chất bề mặt cho mô hình.

Khái quát về kỹ thuật dựng mô hình 3D

Để dựng mô hình 3D, có một số kỹ thuật dựng mô hình 3D chủ yếu sau:

Kỹ thuật tạo mô hình (modelling): Đây là phần sử dụng các công cụ dựng hình để tạo ra các mô hình, chỉnh sửa chúng theo ý muốn Từ đó các vật thể 3D được định hình [2,3,4,6]

Kỹ thuật hoạt hoá nhân vật (animation): gồm những thao tác để gắn nhân vật vào một tập các khoá (key) Mỗi một khoá đại diện cho vị trí, hình dạng của nhân vật tại những thời điểm khác nhau Sự chuyển động của nhân vật là sự thể hiện nhân vật tại mỗi vị trí khoá này

Kỹ thuật kết xuất (rendering): Đây là phần để gán vật liệu lên các nhân vật và tạo kết xuất

Kỹ thuật tạo mô hình (Modeling) là kỹ thuật tạo ra các khung dựng của các đối tượng, là quá trình tạo ra khung xương cho cơ thể một con người, sau đó nhờ các kỹ thuật thể hiện (rendering) để thêm da thịt cho con người đó, và tiếp theo là nhờ kỹ thuật tạo hoạt họa (animation) để tạo hoạt động cho người

Khung dựng của một quả bóng, được tạo ra sau bước tạo mô hình

Quả bóng sau khi đã qua bước thể hiện

Hình 1.3 Mô hình tạo dựng quả bóng 3D

Trong quá dựng mô hình 3D, có nhiều phương pháp khác nhau để mô tả các đối tượng 3D Tùy thuộc vào từng đối tượng cụ thể, ta dùng phương pháp sao cho phù hợp với thuộc tính của các loại đối tượng đó Chẳng hạn, để biểu diễn các đối tượng Euclid đơn giản như là các khối ellipse, khối đa diện ta sử dụng các mặt đa giác và mặt bậc hai Để biểu diễn các mặt tròn xoay và các đối tượng dùng để thiết kế các mô hình máy bay, bánh răng và các cấu trúc công nghệ khác thường được biểu diễn thông qua mặt cong (curves) Các phương pháp tiếp cận thủ tục như Fractal cho phép chúng ta biểu diễn một cách chính xác các đối tượng như mây, thảm cỏ và các đối tượng tự nhiên khác [1],[5]

Biểu diễn mặt lưới 3D: Việc sử dụng mô hình khung lưới cho phép ta hình dung được kết cấu bên trong của một mô hình 3D bằng cách xoay chuyển đối tượng và chọn lựa xóa các đường ẩn (những đường mà thường khi người ta không thể trông thấy thông qua các mặt phẳng cắt ngang)

Khi thể hiện bằng mô hình này, các đối tượng này không giống thực tế lắm Vì vậy, người ta dùng các kỹ thuật tạo bóng và loại bỏ các đường và mặt khuất Mô hình này thường nhanh nên người ta thường dùng nó trong việc xem phác thảo các đối tượng, đặc biệt là trong các hệ CAD

Một dạng thông thường của lưới đa giác là các dãy tam giác Khi đa giác được mô tả bởi nhiều hơn 3 đỉnh, các đỉnh của nó có thể không đồng phẳng Điều này có thể dẫn đến các lỗi tính toán Một phương pháp đơn giản là phân đa giác này thành các tam giác

Biểu diễn bề mặt trơn tham số: Trong trường hợp các đối tượng thực sự phức tạp, người ta thường dùng một hay nhiều mặt cong trơn ghép nối lại với nhau Mỗi thành phần dùng để ghép nối được gọi là mặt vá

Xây dựng và hiển thị mô hình 3D:

Lý thuyết về bài toán mô phỏng và điều khiển tương tác di chuyển nhân vật

Để có thể mô phỏng, điều khiển được nhân vật 3D chuyển động, điều đầu tiên là cần phải tạo dựng mô hình 3D cho nhân vật Kỹ thuật mô hình hoá và điều khiển các mô hình đối tượng đã và đang đóng vai trò quan trọng trong nhiều lĩnh vực như khoa học, công nghệ, sản xuất và an ninh quốc phòng Trong điều khiển các mô hình đối tượng, việc xây dựng mô hình toán học sát với mô hình thực là vấn đề được quan tâm hàng đầu của các chuyên gia Việc nghiên cứu và mô hình hoá các mô hình phục vụ cho mô phỏng chuyển động nhân vật với các tư thế gắn với các bộ phần trên cơ thể như chân, tay là một trong các hướng nghiên cứu đang được quan tâm nhiều trong lĩnh vực thực tại ảo

Bài toán mô phỏng có xét đến yếu tố đặc trưng, tư thế hành động của các đối tượng tham gia, mà đối tượng có nhiều loại khác nhau như con người, gỗ, nước, vải, kim loại, lông, tóc, Báo cáo luận văn này tập trung nghiên cứu mô phỏng chuyển động của nhân vật con người chính là học viên cao học Nguyễn Đức Nhân cụ thể

Trong mô phỏng nhân vật con người ảo, việc mô phỏng các tư thế, hành động của nhân vật có một vai trò quan trọng, là nền tảng cơ bản, góp phần vào việc tạo ra và mô phỏng những con người ảo Mặt khác, các bộ phận của nhân

11 vật là thành phần phức tạp như chân, tay, hông, nhiều kiểu dáng, hình dạng, tư thế và tương tác giữa các bộ phần với nhau đảm bảo tính logic Nên trong quá trình mô phỏng chuyển động, cần phải dựa trên những đặc trưng về cấu trúc, kiểu dáng, tư thế hành động của nhân vật nhằm mô phỏng tính chân thực của nhân vật chuyển động Tuy nhiên, để đưa ra được một cấu trúc tư thế, hành động nhân vật, sự xuất hiện và chuyển động trực quan còn mở ra nhiều thách thức [9,10,11]

Hai khâu quan trọng trong mô phỏng tóc trên hệ thống con người ảo là mô hình hoá và điều khiển các mô hình tóc nhằm mô phỏng tính chân thực của mô hình tóc ảo so với mô hình tóc thực tế

Mô hình hoá nhân vật, các bộ phận, tư thế… Đồng thời, khâu này còn bao gồm cả việc tạo hình dạng, tư thế chuyển đông của nhân vật, kết hợp các cấu trúc hình học của nhân vật và xác định mật độ, phân bố và định hướng chuyển động của nhân vật nhằm thiết kế tư thế hành động hợp lý Điều khiển mô hình nhân vật chuyển động: Bao gồm việc mô phỏng chuyển động của nhân vật dưới dạng tư thế đi lại và sự xuất hiện chi tiết của cử chỉ nhân vật Bên cạnh đó, khâu này còn bao gồm cả việc mô phỏng phát hiện và điều khiển va chạm giữa nhân vật và các đối tượng khác trong không gian ảo… Ngoài ra, khâu này còn gồm việc mô phỏng nhân vật chuyển động theo thời gian thực, đặc biệt là mô phỏng thể hiện kết cấu, sự logic giữa các bộ phận, tư thế của nhân vật

Trong mô phỏng nhân vật chuyển động, chúng ta cần phải nghiên cứu về mô hình, kết cấu giữa các bộ phận của cơ thể như chân, tay… mà bắt đầu từ việc quan sát từng cử chỉ, tư thế riêng lẻ hay những đường cong một chiều trong không gian 3 chiều mà nhân vật dịch chuyển Trên nền tảng đó, nghiên cứu cách tiếp cận để các bộ phận như chân, tay… có thể liên kết lại thành một khối logic, từ đó mô phỏng một nhân vật chuyển động đầy đủ

Mặt khác, trong quá trình mô phỏng nhân vật chuyển động, tuỳ thuộc đặc điểm của mỗi tư thế, cử chỉ đối với từng ứng dụng mà có thể sử dụng những phương pháp mô hình hoá, mô phỏng khác nhau Chẳng hạn, với những ứng dụng trong tái hiện lịch sử chiến tranh thì nhân vật người lính có tư thế cầm súng, đi lom khom thì cần phải mô hình hoá được các tư thế người lính… để thử nghiệm và phát triển sản phẩm Trong ứng dụng tham quan tại các di tích, khu du lịch, phòng truyền thống… thì chỉ cần mô phỏng lại tư thế, cử chỉ đi lại của nhân vật bình thường

Như vậy, mục tiêu nghiên cứu mô phỏng, điều khiển nhân vật chuyển động theo định hướng mục tiêu là tương tác được thì cần phải mô phỏng, biểu diễn được

12 từng bộ phận tách rời của nhân vật như chân, tay, đầu, hông… Do vậy, cần phải tập trung vào mô phỏng cấu trúc, hình thái, tư thế, cử chỉ của các bộ phận trên cơ thể, điều khiển các hình dạng tư thế, sự chuyển động và những thuộc tính của các bộ phận (chân, tay…) sao cho gần với thực tế nhất Điều khiển chuyển động nhân vật trong Thực tại ảo:

Mô hình 3D trong Thực tại ảo ngày càng có nhiều ứng dụng trong thực tế Việc tạo ra các mô hình nhân vật 3D với các chuyển động gắn với nó là một đòi hỏi tất yếu Trong lĩnh vực thể hiện hình ảnh 3D trong VR có hai khâu quan trọng là tạo mô hình và điều khiển mô hình

Tạo mô hình là là tạo ra các khung cảnh, các nhân vật, các đối tượng trong thế giới, hay nói đúng hơn nó chính là bước tạo ra các phiên bản ảo cho mô hình thế giới thực Chính vì vậy, khâu tạo mô hình nó góp phần tạo nên diện mạo của các ứng dụng VR Khâu này đòi hỏi mô hình tạo ra phải có tính chân thực so với mô hình trong thế giới thực Điều khiển mô hình chính là khâu sử dụng các ngôn ngữ lập trình, lập trình điều khiển thế giới và lập trình tương tác giữa các đối tượng với nhau và giữa các đối tượng với thế giới

Trong mô phỏng nhân vật con người chuyển động là nhân vật có xương Khi chuyển động, nhân vật vừa dịch chuyển theo quĩ đạo, đồng thời các bộ phận của nó cũng bị tác động và dịch chuyển theo nhiều khả năng khác nhau Vì vậy cần tính toán sự tác động lẫn nhau của các bộ phận như chân, tay… trong một chuyển động để tạo ra được kết quả một cách chính xác Trong phạm vi báo cáo luận văn, tác giả tập trung nghiên cứu các kĩ thuật tạo chuyển động cho đối tượng có xương có tương tác điều khiển người dùng

Trong chương này, báo cáo luận văn đã tập trung vào nghiên cứu trình bày khái quát cơ sở lý thuyết về mô hình 3D, kỹ thuật xây dựng mô hình 3D; Lý thuyết về mô phỏng mô hình, nhân vật 3D và điều khiển nhân vật chuyển động con người 3D trong môi trường không gian ảo

KỸ THUẬT ĐIỀU KHIỂN TƯƠNG TÁC-CONTROL NHÂN VẬT

Cơ sở toán học cho phép toán dịch chuyển

Trong lĩnh vực kỹ thuật đồ họa, thực chất của đồ họa là làm thế nào để có thể mô tả và biến đổi được các đối tượng trong thế giới thực trên máy tính Bởi vì, các đối tượng trong thế giới thực được mô tả bằng tọa độ thực Trong khi đó, hệ tọa độ thiết bị lại sử dụng hệ tọa độ nguyên để hiển thị các hình ảnh Đây chính là vấn đề cơ bản cần giải quyết Ngoài ra, còn có một khó khăn khác nữa là với các thiết bị khác nhau thì có các định nghĩa khác nhau Do đó, cần có một phương pháp chuyển đổi tương ứng giữa các hệ tọa độ và đối tượng phải được định nghĩa bởi các thành phần đơn giản như thế nào để có thể mô tả gần đúng với hình ảnh thực bên ngoài [20,22,23]

Mặt cong (surface): Là quỹ đạo chuyển động của một đường cong tạo nên Biểu diễn tham biến cho mặt cong:

Dựa vào việc xây dựng và tạo bề mặt toán học trên những điểm dữ liệu Dựa trên việc xây dựng nên bề mặt phụ thuộc vào biến số có khả năng thay đổi một cách trực diện thông qua các tương tác đồ hoạ

Hệ toạ độ thực (WCS – World Coordinate System):

Một trong những hệ tọa độ thực thường được dùng để mô tả các đối tượng trong thế giới thực là hệ tọa độ Descartes Với hệ tọa độ này, mỗi điểm P được biểu diễn bằng một cặp tọa độ P(xp, yp, zp) với xp, yp, zp ∈ R

Ox, Oy, Oz là trục toạ độ xp, yp, zp: toạ độ của P

Hình 2.1 Hệ tọa độ thực Toạ độ thiết bị chuẩn (NDCS – Normalized Device Coordinate System):

Do cách định nghĩa các hệ tọa độ thiết bị khác nhau nên một hình ảnh hiển thị được trên thiết bị này là chính xác thì chưa chắc hiển thị chính xác trên thiết bị khác Người ta xây dựng một hệ tọa độ thiết bị chuẩn đại diện chung cho tất cả các thiết bị để có thể mô tả các hình ảnh mà không phụ thuộc vào bất kỳ thiết bị nào Trong hệ tọa độ chuẩn, các tọa độ x, y sẽ được gán các giá trị trong đoạn từ [0,1] Như vậy, vùng không gian của hệ tọa độ chuẩn chính là hình vuông đơn vị có góc trái dưới (0, 0) và góc phải trên là (1, 1)

Q uá trình mô tả các đối tượng thực như sau:

Phương pháp xây dựng mô hình 3D

Để xây dựng mô hình 3D cho nhân vật chuyển động dựa vào mô hình hóa các mặt cong (Surface Patches), cụ thể:

Phương pháp dựng hình 3D dựa vào mặt cong (Ruled Surface):

Bề mặt được xây dựng bằng cách cho trượt một đoạn thẳng trên hai đường cong [20] Các mặt kẻ nhận được bằng phép nội suy tuyến tính từ hai đường cong biên cho trước tương ứng với hai biên đối diện của mặt kẻ P1(u) và P2(u)

Hình 2.3 Mô hình bề mặt kẻ Phương trình mặt kẻ: Q(u,v) = P2(u)v + P1(u)(1-v)

Nếu hai đường cong cho trước tương ứng là P1(v) và P2(v)

Thì mặt kẻ có phương trình:

𝑃₂(𝑣) Phương pháp dựng mô hình 3D dựa vào mặt tròn xoay (Revolution surface)

Hình 2.4 Mô hình mặt tròn xoay Mặt được xây dựng bởi đường thẳng hay một đường cong phẳng, quanh một trục trong không gian Giả sử đường cong phẳng có dạng:

Quay quanh trục x một thực thể nằm trên mặt phẳng xoy, phương trình bề mặt là Q(t, f ) = [ x(t) y(t) cosfz(t) sinf ]

Minh họa mặt tròn xoay:

P1[1 1 0] và P2[6 2 0] nằm trong mặt phẳng xoy Quay đường thẳng quanh trục ox sẽ được một mặt nón Xác định điểm của mặt tại t=0.5, f =p/3

Phương trình tham số cho đoạn thẳng từ P1 tới P2 là:

Với các thành phần Đề-các: x(t) = x1 + (x2- x1)t = 1+5t y(t) = y1 + (y2- y1)t = 1+t z(t) = z1 + (z2- z1)t = 0

Phương pháp dựng mô hình 3D dựa vào mặt trượt (Sweep Surface)

Hình 2.5 Mô hình mặt trượt

Sweep surface là mặt được tạo bởi bằng cách trượt một thực thể Như một đường thẳng, đa giác, một đường cong, một hình… dọc theo một đường trong không gian

[ T(v) ] là ma trận biến đổi ([ T(v) ] có thể là ma trận tịnh tiến, quay, hay tỉ lệ …hoặc là kết hợp của nhiều phép biến đổi đó) Chẳng hạn như:

Về mặt trượt (Sweept Extrusion)

Hình 2.6 Hình thành mặt trượt Hình vuông xác định bởi 4 đỉnh:

P3[01 -1], P4[01 1] Đường cong trượt: x= 10vy= cos(Pv) – 1

Phương pháp dựng mô hình 3D dựa vào mặt nội suy trên bốn đường biên (Boolean sum surface):

Mặt được xây dựng trên 4 điểm và các đường cong biên, S(u,v) mặt nội suy trên 4 đường biên

Hình 2.7 Mô hình mặt cong Boolean Sum S(u, v) = S1(u, v) + S2(u, v) - P(u,v)

P là các đỉnh của mảnh 4 ai(u) là các phương trình đường biên

Minh họa về mặt Boolean Sum:

Phương pháp dựng mô hình 3D dựa vào mặt từ các đường cong

Mặt cong bậc ba Hermite:

Mặt cong tham biến được tạo bởi bề mặt qua tại 4 điểm dữ liệu tại 4 góc và các đường cong có phương trình bậc ba qua chúng, như vậy 16 vector điều kiện hay tương đương với 48 giá trị đại số cần thiết để xác định các hệ số phương trình Khi những hệ số là 4 điểm dữ liệu góc và 8 vector tiếp tuyến tại các điểm đó theo các hướng u, v tương ứng cùng 4 vector xoắn thì mặt cong tạo thành là mặt cong Hermite Phương trình có dạng:

Và ma trận hệ số [C] là:

Cuối cùng ta thu được các hệ số theo phương trình mới có dạng:

Và B là ma trận điều kiện biên:

Hay với dạng thức rút gọn của ma trận [B] theo các ma trận điều kiện biên tương ứng:

[B] ma trận các giá tị tham số

[Pu], [Pv] các vector tiếp tuyến theo u,v tương ứng

[Puv] ma trận xoắn trên u,v

Hình 2.8 Mặt cong Hermite và các điểm dữ liệu Các vector tiếp tuyến và vector xoắn của bề mặt cong được biểu diễn qua phương trình sau:

Hình 2.9 Mặt cong Bezier Mảnh Bezier được hình thành trên phép trượt của đường cong Bezier.Việc xây dựng nên mảnh Bezier dưới các điểm kiểm soát, tạo nên đa diện kiểm soát

Phương trình tổng quát của mặt cong tham biến Bezier có dạng:

Mảnh Bezier bậc ba: Mặt cong Bezier bậc ba là mặt phổ biến nhất trong

CG, vì đi độ đơn giản của nó Nó hình thành trên 4x4 điểm kiểm soát, công thức có dạng:

Q(u,v) = ∑ ∑ 𝐵i,j(u)Bm,j(v)Pij Đa thức Bernstein có dạng:

Bậc của mặt cong theo mỗi hướng của tham biến bằng số điểm kiểm soát trừ 1 Tính liên tục hay đạo hàm của mặt theo mỗi tham biến bằng số điểm kiểm soát trừ 2 Hình dạng của mặt biến đổi theo các cạnh của đa giác kiểm soát Mặt lưới chỉ đi qua các điểm góc cạnh của đa giác kiểm soát, nó chỉ nằm trong phần giới hạn bởi lưới của đa giác lồi kiểm soát và không thay đổi dưới tác động của các phép biến đổi affine Mỗi đường biên của mặt Bezier là một đường cong Bezier với mặt cong bậc ba Bezier các đường cong biên luôn đảm bảo là các đường Bezier bậc 3 Như vậy lưới đa giác cho bề mặt sẽ là 4 x 4

Pij là điểm kiểm soát

N và M là đa thức B-spline

Với các mặt cong mở mặt cong phụ thuộc vào các nút vector.

Kỹ thuật rigging xương cho điều khiển nhân vật tương tác-Control

Trong thế giới thực, con người là đối tượng động và thường xuyên chuyển động, dịch chuyển từ vị trí sang vị trí khác Trên cơ thể con người chia thành nhiều bộ phận như chân, tay, ngón chân, ngón tay, hông, đầu… mỗi bộ phận gắn những bộ phận xương tương ứng giúp cho con người có thể di chuyển một cách dễ dàng Vì vậy, trong thế giới ảo để mô phỏng được chuyển động của mô hình nhân vật là con người, chúng ta cần thiết kế mô hình xương con người, thực hiện rigging xương cho từng bộ phận của nhân vật con người

Rigging còn được gọi là hoạt hình khung xương, một kỹ thuật để xác định phạm vi hành động và cử chỉ của nhân vật mô hình 3D Các nghệ nhân làm rigging thực hiện kỹ thuật này bằng cách sử dụng một loạt các xương liên kết với nhau Điểm quan trọng nhất bạn nên xem xét là rigging không phải là một tính năng duy nhất chỉ dành cho mô hình người Dưới đây là hình ảnh mô tả công đoạn rigging mô hình nhân vật [7,8,13]

Hình 2.10 Rigging xương nhân vật Để xây dựng rigging xương cho nhân vật chuyển động 3D, thực hiện quy trình 4 bước:

Bước 1: Đầu tiên được gọi là mesh (mô hình lưới nhân vật) Bắt đầu xây dựng một loạt khung xương đại diện cho khung xương của nhân vật (hình học đa giác) Sau đó, tạo và thiết lập các xương và khớp thể hiện như một phần ứng của mô hình Sau đó, lớp da nối với xương

Bước 2: Tạo bộ điều khiển cho nhân vật Để kiểm soát hiệu ứng của mọi phần chuyển động của mô hình và giúp hiểu chức năng của bộ điều khiển, chúng đại diện cho các hình dạng, cấu trúc hình học khác nhau Một số hình dạng này được xác định:

Hình cầu sử dụng phục vụ cho việc quay và dịch mô hình Sử dụng nó cho phần trung tâm, tay và chân của các mô hình Khối lập phương dùng để dịch các điều khiển Hình cầu phục vụ cho chuyển động quay Nó được sử dụng hầu hết thời gian cho cổ, xương chậu và thân mình

Hình thang phục vụ cho các khớp Nó được sử dụng hầu hết thời gian cho đầu gối và khuỷu tay

Sau khi đã hoàn thành quá trình thiết kế khung xương, nhân vật rigger sẽ thêm các kiểu chuyển động và cử chỉ khuôn mặt vào mô hình Mối quan hệ giữa các xương trong mọi chuyển động đều có thứ bậc, giống như mối quan hệ cha

24 mẹ – con cái Nếu muốn di chuyển vai của nhân vật mô hình 3D, thì bàn tay và xương cẳng tay của nhân vật đó cũng di chuyển

Bước 3: Thực hiện các khớp nối khác với khớp mà chúng ta đã đề cập ở bước 1) Các khớp nối xác định giới hạn của mô hình trong chuyển động, và một điểm quan trọng khác trong bước này là weight painting Sự tương tác của mọi phần của mô hình 3D phụ thuộc vào quy mô trọng lượng Trọng lượng của một bộ phận ảnh hưởng đến xương trong chuyển động

Các chương trình phần mềm đều có chế độ weight painting tự động như Blender Chúng được thiết kế dựa trên lý thuyết này rằng các nhân vật đều tuân theo cùng một mẫu giới hạn của bộ xương Mặc dù, để quá trình rigging hoàn hảo, cần phải điều chỉnh trọng lượng của từng xương

Bước 4: Chuyển tiếp và Chuyển động học nghịch đảo Như đã nói ở trên, mối quan hệ giữa các xương có thứ bậc Có nghĩa là hành động ở các phần trên của một mô hình cũng ảnh hưởng đến các vùng dưới, được gọi là chuyển tiếp động học Mặt khác, nếu các phần dưới được chuyển động độc lập với các phần trên, nó được gọi là chuyển động nghịch đảo Quá trình tạo hoạt ảnh có thể đơn giản hơn bằng Thuật toán điều khiển ngược IK (Inverse kinematics) [24,25,26,27,28]

Hình 2.11 Tạo khung xương nhân vật

Dưới đây là một số những công đoạn chi tiết để thực hiện rigging xương cho mô hình nhân vật 3D ứng với các bộ phận, từng phần trên cơ sở con người ảo Cụ thể:

Khung xương là hệ thống phân cấp các khớp xương cơ bản cho phép diễn hoạt các đối tượng Mỗi khung xương đều có các khớp cha và khớp con và một khớp gốc Các khớp cha là các khớp gồm các khớp bên dưới chúng (khớp con) trong hệ thống phân cấp của bộ xương Như khớp khuỷu tay là cha của khớp cổ

25 tay và đồng thời cũng là con của khớp vai Khớp gốc là khớp đầu tiên hoặc khớp trên cùng trong hệ thống phân cấp của khung xương

Cấu tạo của xương: Một khung xương cơ bản bao gồm 2 thành phần:

Khớp (Joint): Là nơi hai hoặc nhiều xương liên kết với nhau Khi một xương được gắn với một khớp, chuyển động của xương sẽ được điều khiển bởi chuyển động quay và di chuyển của khớp đó

Xương (Bone): Là phần cứng nối tiếp khớp, được điều khiển bởi sự di chuyển và quay của khớp Đầu gối là một khớp (khớp gối), còn xương ống chân là xương

Hình 2.12 Cấu tạo khung xương

Giữa các khớp trong một hệ thống xương có mối liên kết với nhau, mối liên kết đó được gọi là liên kết cha – con (hay quan hệ cha - con), liên kết này cho phép điều khiển hệ thống xương bằng cách di chuyển hoặc xoay khớp xương cha hoặc các khớp xương con

Khi khớp xương cha di chuyển hoặc xoay thì các khớp xương con sẽ di chuyển hoặc xoay theo Trong hình 2.12, khớp Joint 1 là cha của khớp Joint 2 và Joint 2 là cha của khớp Joint 3 Khi Joint 1 di chuyển hoặc xoay thì các khớp và xương của Joint 2 và Joint 3 đều di chuyển hoặc xoay theo Khớp Joint 3 chỉ có thể xoay xung quanh Joint 2 và Joint 2 xoay xung quanh Joint 1

Sử dụng phần mềm Maya để tạo xương:

Chuyển Menu Set thành Ringging

Kỹ thuật điều khiển nhân vật chuyển động dựa vào các phép biến đổi hình học 3D

2.4.1 Phép biến đổi hình học 3D

Biểu diễn điểm trong không gian 3D:

Ma trận biến đổi tổng quát trong không gian 3D với tọa độ đồng nhất (4x4)

Phép tịnh tiến nhân vật chuyển động: Đây là phép biến đổi đơn giản nhất, mở rộng từ phép biến đổi trong không gian 2D ta có:

Phép biến dạng hình học nhân vật 3D:

Ta có tất cả các phần tử nằm trên đường chéo chính bằng 1

Các phần tử chiếu và tịnh tiến bằng 0

Quay quanh các trục toạ độ: Đơn giản nhất là phép quay quanh các trục toạ độ ox, oy và oz với góc dương:

Khi này phép quay lại đưa về phép quay không gian 2D quanh gốc toạ độ Quay quanh trục oz:

Quay quanh một trục bất kỳ song song với các trục tọa độ: Đầu tiên chuyển dịch đối tượng cho đến khi toạ độ địa phương của đối tượng trùng với trục toạ độ mà trục địa phương song song

Quay đối tương xung quanh trục của nó (chính là trục toạ độ) Đưa đối tượng về toạ độ trước khi dịch chuyển ta có ma trận tổng hợp là: [Tα//] = [Ttt-].[Tα].[Ttt+]

Muốn quay đối tượng xung quanh một trục // với trục z với khoảng dịch chuyển là x, y và gốc quay là α:

Kỹ thuật tạo điều khiển Inverse Kinematic cho nhân vật

Chuyển động học nghịch đảo, hay IK, là một kỹ thuật tính toán chuyển động cần thiết hoặc tối ưu của một hệ thống các đối tượng được kết nối để đến một điểm đến nhất định Trong lĩnh vực đồ họa, điều khiển nhân vật chuyển động, IK có thể xác định cách một cánh tay người di chuyển để một bộ truyền động ở cuối cánh tay được định vị chính xác Chuyển động của khớp con trong hệ thống ký tự phân cấp ảnh hưởng đến các đối tượng chính một cách tự nhiên [33,34]

Khi tạo chuyển động cho một nhân vật người 3D với IK được bật, người tạo chuyển động có thể nâng khớp mắt cá chân của nhân vật lên và ống chân, đùi và khớp gối di chuyển và xoay một cách tự nhiên

Ngược lại với chuyển động học nghịch đảo là chuyển động học chuyển tiếp, trong đó hệ thống phân cấp của các đối tượng phải được chuyển động thủ công từ cấp độ gốc sang cấp độ con Động học chuyển tiếp có thể làm chuyển động một chân, xoay đùi ở hông để nâng cao đầu gối và xoay xương ống chân ở khớp gối để định vị mắt cá chân

Hình 2.23 Mô hình tạo chuyển động nhân vật 2.5.1 Thực hiện gán các ký hiệu, mã hóa biểu diễn các cánh tay, chân… cho nhân vật Để tạo chuyên động cho nhân vật, chúng ta thực hiện theo các bước sau: Bước 1: Tạo điều khiển IK

Thuật ngữ Kinematics dùng để mô tả chuyển động của một cấu trúc liên kết Tuỳ thuộc vào loại chuyển động sử dụng hoặc các vật thể cha điều khiển các vật thể con hoặc các vật thể con điều khiển vật thể cha Có thể sử dụng các phương pháp để tạo chuyển động cho khung xương bao gồm: Chuyển động thuận (Forward Kinematic – FK), Chuyển động đảo (Inverse Kinematic – IK)

Chuyển động đảo (Inverse Kinematic – IK): Hệ thống khớp làm việc như các hệ thống thứ bậc nhưng bao gồm điểm đầu và một điểm cuối của hệ khớp xương được liên kết với nhau và các khớp xương trong hệ thống này có quan hệ mật thiết với nhau trong chuyển động và chịu sự điều hướng di chuyển của 2 điểm, đó là điểm đầu và điểm cuối của hệ thống xương Khi đó, có thể di chuyển xương con và các xương cha trong hệ thống xương sẽ xoay theo tương ứng Di chuyển bàn tay nhân vật để cẳng tay và cánh tay di chuyển và xoay theo Với việc đặt các IK điều khiển nối từ khớp xương đầu và khớp xương cuối Phần mềm đồ hoạ cung cấp 3 loại IK điều khiển Đó là IK Single Chain, IK Rotate Plane và IK Spline

Các loại điều khiển IK:

(1) IK đơn (IK Single Chain Solver): Sử dụng một bộ tính toán hay bộ giải (solver) để tính toán các vòng xoay của tất cả các khớp trong chuỗi IK Ngoài ra, hướng tổng thể của chuỗi khớp được tính toán trực tiếp bởi IK đơn

Hình 2.24 IK đơn Để tạo IK đơn (Single Chain Solver): vào menu Skeleton- Create IK Handle và nhấn chuột vào hộp Option ô vuông bên phải Trong cửa sổ options chọn Single - Chain Solver

(2) IK kép (Rotate -Plane Solver): cũng giống như IK đơn Sử dụng IK Rotate - Plane solver để tạo liên kết giữa khớp đầu và khớp cuối của đoạn xương cần thực hiện chuyển động Nhưng khác với IK Single Chain, chuyển động của

IK Rotate Plane có thể tạo thêm những khớp xoay (khớp vai và cổ tay đối với chuyển động của cánh tay; Khớp xương hông và xương mắt cá đối với chuyển động của chân) Với liên kết này chỉ cần di chuyển khớp cuối (khớp mắt cá chân hoặc cổ tay) thì toàn bộ các khớp khác nằm trong chuỗi đó cùng chuyển động theo

Với IK kép chỉ sử dụng trong các trường hợp tạo IK điều khiển cho tay, chân (hoặc có thể sử dụng đối với một vài bộ phận cơ thể khác, tùy theo cấu trúc của nhân vật)

(3) IK Spline: được sử dụng để tạo dáng và diễn hoạt cho các chuỗi khớp dài, uốn lượn như đuôi, xúc tu, cổ, xương sống và các vật thể tương tự

Hình 2.25 IK Spline Điều khiển IK Spline cho phép tạo một chuỗi khớp sử dụng đường cong NURBS Khi thao tác trên đường cong, bộ điều khiển IK Spline sẽ xoay các khớp trong chuỗi tương ứng

Bước 2: Áp dụng tạo điều khiển IK cho khung xương:

Tạo IK kép (IK Rotate - Plane Solver) cho các chuyển động của cánh tay, chân và cổ Để tạo IK kép vào menu Skeleton – Create IK Handle và nhấn chuột vào hộp Option ô vuông bên phải Trong cửa sổ IK Handle Settings chọn Rotate - Plane Solver

Tạo IK kép cho chuyển động của cánh tay:

Sau khi chọn Rotate - Plane Solver, nhấn chuột vào khớp X_Vai_T rồi Click tiếp vào khớp X_Xoay_tay_T, sẽ thấy thao tác sẽ tạo ra một IK Rotate - Plane Solver nằm giữa khớp X_Vai_T và X_Xoay_tay_T đổi tên IK này thành IK_Tay _T

Hinh 2.26 Tạo IK kép cho tay

Sử dụng chuỗi động lực trong mô phỏng chuyển động nhân vật

Chuỗi động học là một tập hợp các vật cứng được kết nối bởi các khớp để cung cấp chuyển động bị hạn chế là mô hình toán học cho chuyển động [1] Như trong cách liên kết, bị hạn chế bởi các kết nối của chúng với các liên kết khác Một ví dụ là chuỗi mở đơn giản được hình thành bởi các liên kết được kết nối nối tiếp, giống như chuỗi thông thường, là mô hình động học cho một nhân vật tương tác [2]

Các mô hình toán học của các kết nối khớp, giữa hai liên kết được gọi là cặp động học Các cặp động học mô hình hóa các khớp bản lề, thường được gọi là cặp thấp hơn và các khớp tiếp xúc bề mặt quan trọng đối với cam và bánh răng, được gọi là cặp cao hơn Các khớp này thường được mô hình hóa như các ràng buộc toàn diện Sơ đồ động học là sơ đồ của hệ thống cơ học cho thấy chuỗi động học

Việc sử dụng chuỗi động học hiện đại bao gồm sự tuân thủ phát sinh từ các khớp uốn trong các cơ chế chính xác, tuân thủ liên kết trong các cơ chế tuân thủ

Mức độ tự do, hoặc tính di động, của chuỗi động học là số lượng tham số xác định cấu hình của chuỗi [ 2][5] Một hệ thống n vật thể cứng chuyển động trong không gian có 6 n bậc tự do được đo so với một khung cố định Khung này được bao gồm trong số lượng cơ thể, do đó tính di động không phụ thuộc vào liên kết tạo thành khung cố định Điều này có nghĩa là mức độ tự do của hệ thống này là M = 6 (N - 1), trong đó N = n + 1 là số lượng vật thể chuyển động cộng với cơ thể cố định

Các khớp kết nối cơ thể áp đặt các ràng buộc Cụ thể, bản lề và thanh trượt mỗi cái áp đặt năm ràng buộc và do đó loại bỏ năm bậc tự do Thật thuận tiện để xác định số lượng ràng buộc c mà khớp áp đặt theo tự do của khớp f, trong đó c 6 − f Trong trường hợp bản lề hoặc thanh trượt, là các khớp một bậc tự do, có f 1 và do đó, c = 6 − 1 = 5

Kết quả là tính di động của một chuỗi động học được hình thành từ n liên kết chuyển động và các khớp j mỗi khớp có tự do f i, i = 1, 2, , j, được cho bởi:

Hãy nhớ lại rằng N bao gồm liên kết cố định

Phân tích chuỗi động học:

Các phương trình ràng buộc của một cặp chuỗi động học phạm vi chuyển động cho phép ở mỗi khớp với kích thước của các liên kết trong chuỗi và tạo thành các phương trình đại số được giải quyết để xác định cấu hình của chuỗi liên kết với các giá trị cụ thể của các tham số đầu vào, được gọi là bậc tự do

Các phương trình ràng buộc cho một chuỗi động học thu được bằng cách sử dụng các phép biến đổi cứng [Z] để mô tả chuyển động tương đối cho phép tại mỗi khớp và các phép biến đổi cứng riêng biệt [X] để xác định kích thước của mỗi liên kết Trong trường hợp chuỗi mở nối tiếp, kết quả là một chuỗi các biến đổi cứng nhắc xen kẽ các biến đổi khớp và liên kết từ cơ sở của chuỗi đến liên kết cuối của nó, tương đương với vị trí được chỉ định cho liên kết cuối Một chuỗi n liên kết được kết nối nối tiếp có các phương trình động học,

Trong đó [T] là sự biến đổi định vị liên kết cuối - Lưu ý rằng chuỗi bao gồm một liên kết "zeroth" bao gồm khung mặt đất mà nó được gắn vào Các

48 phương trình này được gọi là phương trình động học chuyển tiếp của chuỗi nối tiếp [6]

Các chuỗi động học của một loạt các phức tạp được phân tích bằng cách đánh đồng các phương trình động học của các chuỗi nối tiếp tạo thành các vòng trong chuỗi động học Các phương trình này thường được gọi là phương trình vòng lặp Độ phức tạp (về mặt tính toán động học thuận và nghịch) của chuỗi được xác định bởi các yếu tố sau:

Cấu trúc liên kết của nó: một chuỗi nối tiếp, một trình thao tác song song, cấu trúc cây hoặc đồ thị

Dạng hình học của nó: các khớp lân cận được kết nối không gian với nhau như thế nào?

Hai hoặc nhiều nhân vật chuyển động trong không gian được gọi chung là một hệ thống cơ thể nhân vật Chúng ta cần thiết lập các chế độ, ràng buộc chuyển động động học cho nhân vật Các ràng buộc động học là những ràng buộc giữa các cơ thể nhân vật dẫn đến giảm mức độ tự do của hệ thống cơ thể cứng nhắc [5]

Tổng hợp các chuỗi động học: các phương trình ràng buộc của chuỗi động học có thể được sử dụng ngược lại để xác định kích thước của các liên kết từ một đặc điểm kỹ thuật của chuyển động mong muốn của hệ thống.

Phương pháp ước tính tư thế 3D cho nhân vật chuyển động

Tư thế (thị giác máy tính):

Trong các lĩnh vực máy tính và thị giác máy tính, tư thế (hoặc tư thế không gian) đại diện cho vị trí và hướng của một đối tượng, thường là trong không gian ba chiều Các tư thế thường được lưu trữ nội bộ dưới dạng ma trận biến đổi Thuật ngữ "tư thế" phần lớn đồng nghĩa với thuật ngữ "biến đổi", nhưng một biến đổi thường có thể bao gồm tỷ lệ, trong khi tư thế thì không [9,10,11]

Tư thế của một đối tượng thường được ước tính từ đầu vào của máy ảnh bằng quá trình ước tính tư thế Thông tin này sau đó có thể được sử dụng, để cho phép điều khiển một đối tượng hoặc để tránh di chuyển vào đối tượng dựa trên vị trí và hướng nhận thức của nó trong môi trường Các ứng dụng khác bao gồm nhận dạng hành động xương

Nhiệm vụ cụ thể là xác định tư thế của một đối tượng trong hình ảnh (hoặc hình ảnh âm thanh nổi, chuỗi hình ảnh) được gọi là ước tính tư thế Các vấn đề ước lượng đặt ra có thể được giải quyết theo nhiều cách khác nhau tùy vào cấu hình cảm biến hình ảnh, và lựa chọn phương pháp Ba lớp phương pháp có thể được phân biệt:

Phương pháp phân tích hoặc hình học: Cho rằng cảm biến hình ảnh (máy ảnh) được hiệu chỉnh và ánh xạ từ các điểm 3D trong cảnh và các điểm 2D trong hình ảnh được biết đến Nếu hình học của đối tượng cũng được biết đến, điều đó có nghĩa là hình ảnh được chiếu của đối tượng trên hình ảnh máy ảnh là một chức năng nổi tiếng của tư thế của đối tượng Khi một tập hợp các điểm kiểm soát trên đối tượng, thường là các góc hoặc các điểm đặc trưng khác, đã được xác định, sau đó có thể giải quyết chuyển đổi tư thế từ một tập hợp các phương trình liên quan đến tọa độ 3D của các điểm với tọa độ hình ảnh 2D của chúng Các thuật toán xác định vị trí của tập điểm đối với một tập điểm khác được gọi là thuật toán đăng ký tập điểm, nếu sự tương ứng giữa các điểm chưa được biết đến Phương pháp thuật toán di truyền: Nếu tư thế của một đối tượng không phải được tính toán trong thời gian thực, một thuật toán di truyền có thể được sử dụng Cách tiếp cận này rất mạnh mẽ, đặc biệt là khi hình ảnh không được hiệu chỉnh hoàn hảo Trong trường hợp cụ thể này, tư thế đại diện cho biểu diễn di truyền và sai số giữa phép chiếu của các điểm kiểm soát đối tượng với hình ảnh là chức năng thể dục

Phương pháp dựa trên học tập: Các phương pháp này sử dụng hệ thống dựa trên học tập nhân tạo để học lập bản đồ từ các tính năng hình ảnh 2D để tạo dáng biến đổi Nói tóm lại, điều này có nghĩa là một tập hợp hình ảnh đủ lớn của đối tượng, trong các tư thế khác nhau, phải được trình bày cho hệ thống trong giai đoạn học tập Khi giai đoạn học tập được hoàn thành, hệ thống sẽ có thể trình bày ước tính về tư thế của đối tượng dựa trên hình ảnh của đối tượng

Từ máy ảnh 2D đã được hiệu chỉnh:

Với hình ảnh 2D của một vật thể và máy ảnh được hiệu chỉnh đối với hệ tọa độ thế giới, cũng có thể tìm thấy tư thế cung cấp cho nhân vật 3D trong hệ tọa độ đối tượng của nó [6] Điều này hoạt động như sau:

Bắt đầu với hình ảnh 2D, các điểm hình ảnh được trích xuất tương ứng với các góc trong hình ảnh Các tia chiếu từ các điểm hình ảnh được tái tạo từ các điểm 2D để các điểm 3D, phải được khắc phục với các tia được tái tạo, có thể được xác định

Thuật toán xác định ước tính tư thế:

Thuật toán xác định ước tính tư thế dựa trên Thuật toán điểm gần nhất lặp lại (Chi tiết dưới) Ý tưởng chính là xác định sự tương ứng giữa các tính năng hình ảnh 2D và các điểm trên đường cong mô hình 3D

Bước 1: Reconstruct các tia chiếu from các điểm ảnh 2D

Bước 2: Ước lượng điểm gần nhất của mỗi projection ray đến một điểm trên 3D contour

Bước 3: Ước lượng tư thế của 3D contour bằng sử dụng tập tương ứng Bước 4: Goto (bước 2)

Nhận xét: Thuật toán trên không tính đến hình ảnh có chứa một nhân vật bị che khuất một phần Thuật toán sau đây giả định rằng tất cả các đường viền được ghép nối cứng nhắc, có nghĩa là tư thế của một đường viền xác định tư thế của một đường viền khác

Chi tiết các bước của thuật toán xác định ước tính tư thế:

Bước 1: Reconstruct các tia chiếu from các điểm ảnh 2D

Bước 2: For each tia chiếu R:

(3.1.) Estimate the nearest point P1 of ray R to a point on the contour (3.2) if (n == 1) choose P1 as actual P for the point-line correspondence (3.3) else compare P1 with P: if dist (P1, R) is smaller than dist (P, R) then choose P1 as new P

Bước 4: Use (P, R) as correspondence set

Bước 5: Estimate pose with this correspondence set

Bước 6: Transform contours, goto (Bước 2)

Nhận xét: Thuật toán ước tính tư thế thông qua so sánh

Các hệ thống tồn tại sử dụng cơ sở dữ liệu của một đối tượng ở các vòng quay và kịch bản khác nhau để so sánh mô hình đầu vào để ước tính tư thế Độ chính xác của các hệ thống này được giới hạn trong các tình huống được thể hiện trong cơ sở dữ liệu hình ảnh của chúng, tuy nhiên mục tiêu là nhận ra một tư thế chuyển động của nhân vật

Với thuật toán trên cho phép ước lượng tư thế của nhân vật dựa trên các điểm ảnh và đường biên của các ảnh đầu vào ứng với từng nhân vật 3D.

Thuật toán điểm gần nhất lặp lại

Trong mô phỏng mô hình nhân vật chuyển động trong thế giới ảo, chúng ta cần tạo ra sự chuyển động sao cho mềm mại, linh hoạt của nhân vật cho giống thực hơn sử dụng thuật toán điểm gần nhất lặp lại Điểm gần nhất lặp lại - Iterative Nearest Point (ICP) [38,39,40] là một thuật toán được sử dụng để giảm thiểu sự khác biệt giữa hai tập điểm ICP thường được sử dụng để tái tạo bề mặt 2D hoặc 3D từ các lần quét khác nhau, để khoanh vùng nhân vật chuyển động và đạt được kế hoạch đường đi tối ưu, chẳng hạn mô hình nhân vật có xương, v.v

Hình 2.42 Ý tưởng đằng sau thuật toán điểm gần nhất lặp lại Ý tưởng thuật toán ICP: giữ cho một tập điểm, tham chiếu hoặc đích, cố định, trong khi chuyển đổi điểm kia, nguồn, để phù hợp nhất với tham chiếu Sự biến đổi (kết hợp giữa dịch và xoay) được ước tính lặp đi lặp lại để giảm thiểu số liệu lỗi, thường là tổng chênh lệch bình phương giữa tọa độ của các cặp phù hợp ICP là một trong những thuật toán được sử dụng rộng rãi trong việc điều chỉnh chuyển động cho các mô hình nhân vật 3D đưa ra dự đoán ban đầu về sự chuyển động cần thiết Thuật toán ICP do Chen và Medioni, [3] và Besl và McKay đề xuất

Các bước thuật toán ICP: Đầu vào: Nhân vật với tập điểm tham chiếu và nguồn, ước tính ban đầu về chuyển đổi để điều chỉnh nguồn với tham chiếu (tùy chọn), tiêu chí dừng lặp lại Đầu ra: chuyển động tinh tế của nhân vật

Về cơ bản, các bước của thuật toán là:

Bước 1: For each point (từ tập các đỉnh được lựa chọn như các cặp đỉnh từ mỗi mô hình nhân vật) trong tập điểm nguồn, khớp với điểm gần nhất trong tập điểm tham chiếu (hoặc tập điểm đã chọn)

Bước 2: Estimate kết hợp giữa xoay và dịch chuyển sử dụng root mean square point đối với kỹ thuật tối thiểu hóa đo khoảng cách như điều

52 chỉnh tốt nhất từng điểm nguồn với kết quả khớp của nó được tìm trong bước 1

Bước này cho phép xác định các điểm trọng số và loại bỏ các ngoại lệ trước khi điều chỉnh

Bước 3: Transform các điểm nguồn sử dụng chuyển đổi điểm thu được Bước 4: Lặp lại (liên kết lại các điểm, v.v.)

Nhận xét: Với thuật toán ICP cho phép kết nối các điểm/đỉnh trên mô hình nhân vật 3D để tạo sự chuyển động ràng buộc mềm mại khi nhân vật dịch chuyển trong không gian thế giới ảo.

Một số phương pháp hỗ trợ chuyển động nhân vật

2.9.1 Phương pháp lặp lại chuyển động gần nhất

Một phương pháp lặp là một thủ tục toán học sử dụng một giá trị ban đầu để tạo ra một chuỗi các giải pháp gần đúng nâng cao cho một bài toán, trong đó phép tính gần đúng thứ n được lấy từ các phép toán trước đó Việc triển khai cụ thể phương pháp lặp, bao gồm tiêu chí kết thúc, là một thuật toán của phương pháp lặp

Ngược lại, các phương pháp trực tiếp cố gắng giải quyết vấn đề bằng một chuỗi hữu hạn các thao tác Các phương pháp lặp thường là lựa chọn duy nhất cho các phương trình phi tuyến tính Tuy nhiên, các phương pháp lặp lại thường hữu ích đối với các bài toán tuyến tính liên quan đến nhiều

Nếu một phương trình đưa về dạng f ( x ) = x , và nghiệm x là một điểm cố định hấp dẫn của hàm f , người ta có thể bắt đầu với một điểm x 1, và đặt x n +1 = f ( x n ) với n ≥ 1 và dãy { x n } n ≥ 1 sẽ hội tụ đến nghiệm x Ở đây x n là nphép xấp xỉ hoặc phép lặp thứ của x và x n +1 là phép lặp tiếp theo hoặc n + 1 của x Ngoài ra, các chỉ số trên trong ngoặc đơn thường được sử dụng trong các phương pháp số, để không ảnh hưởng đến các chỉ số dưới với các nghĩa khác Nếu hàm f khả vi liên tục thì điều kiện đủ để hội tụ là bán kính phổ của đạo hàm bị giới hạn chặt chẽ bởi một trong một lân cận của điểm cố định Nếu điều kiện này đúng tại một điểm cố định, thì phải tồn tại một lân cận đủ nhỏ

Phương pháp lặp cố định:

Giới thiệu: Các phương pháp lặp cố định giải một hệ tuyến tính với một toán tử gần đúng với toán tử ban đầu; và dựa trên phép đo sai số trong kết quả ( phần dư ), tạo thành một "phương trình hiệu chỉnh" để quá trình này được lặp lại Mặc dù các phương pháp này rất đơn giản để rút ra, triển khai và phân tích, nhưng sự hội tụ chỉ được đảm bảo cho một loại ma trận giới hạn Định nghĩa: Một phương pháp lặp được xác định bởi x : = Ψ(x ) , 𝑘 ≥ 0 và cho một hệ thống tuyến tính nhất định 𝐴𝑥 = 𝑏 với giải pháp chính xác

Một phương pháp lặp được gọi là tuyến tính nếu tồn tại một ma trận 𝐶 𝜖

ℝ như vậy mà: 𝑒 = 𝐶𝑒 v 𝑘 ≥ 0 và ma trận này được gọi là ma trận lặp Một phương pháp lặp với ma trận lặp cho trước 𝐶 được gọi là hội tụ nếu các điều kiện sau thỏa mãn: lim→ (𝐶) = 0

Một định lý quan trọng phát biểu rằng đối với một phương pháp lặp đã cho và ma trận lặp của nó 𝐶 nó hội tụ khi và chỉ khi bán kính quang phổ của nó 𝑝(𝐶) nhỏ hơn đơn vị, nghĩa là,

Các phương pháp lặp cơ bản hoạt động bằng cách tách ma trận 𝐴 vào trong

𝐴 = 𝑀 − 𝑁 và đây là ma trận 𝑀 nên dễ dàng đảo ngược Các phương pháp lặp hiện được định nghĩa là

Từ đó, ma trận lặp được cho bởi

Các ví dụ cơ bản về phương pháp lặp cố định sử dụng phép tách ma trận

54 Ở đâu 𝐷 chỉ là phần đường chéo của 𝐴, Và L là phần tam giác dưới nghiêm ngặt của 𝐴 Tương ứng, 𝑈 là phần tam giác trên nghiêm ngặt của 𝐴

Phương pháp Richardson : 𝑀 ∶ ⍵𝐼 (⍵ ≠ 0) Phương pháp Jacobi : 𝑀 ∶= 𝐷

Phương pháp Jacobi tắt dần : 𝑀 ∶ ⍵𝐷 (⍵ ≠ 0) Phương pháp Gauss-Seidel : 𝑀 ∶= 𝐷 + 𝐿

Phương pháp thư giãn quá mức liên tiếp (SOR): 𝑀 ∶ ⍵𝐷 + 𝐿 (⍵ ≠ 0) Thư giãn quá mức liên tiếp đối xứng (SSOR):

𝑀 ∶ ⍵(𝐷 + ⍵𝐿)𝐷 (𝐷 + ⍵𝑈) (⍵ ≠ {0,2}) Phương pháp lặp tĩnh tuyến tính còn được gọi là phương pháp thư giãn 2.9.2 Cây K-D:

Trong khoa học máy tính, cây k-d (viết tắt của cây k chiều) là một cấu trúc dữ liệu phân vùng không gian để tổ chức các điểm trong không gian k chiều Cây K-D là một cấu trúc dữ liệu hữu ích cho một số ứng dụng, chẳng hạn như các tìm kiếm liên quan đến khóa tìm kiếm đa chiều (ví dụ: tìm kiếm phạm vi và tìm kiếm lân cận gần nhất) và tạo các tập điểm Cây K-D là một trường hợp đặc biệt của cây phân vùng không gian nhị phân

Hình 2.43 Minh họa các điểm trên cây K-D

Một cây k-d 3 chiều Sự phân tách đầu tiên (mặt phẳng thẳng đứng màu đỏ) cắt tế bào gốc (màu trắng) thành hai ô con, mỗi ô sau đó được tách ra (bởi các mặt phẳng ngang màu xanh lá cây) thành hai ô con Cuối cùng, bốn ô được chia (bởi bốn mặt phẳng thẳng đứng màu xanh) thành hai ô con Vì không còn sự phân tách, tám tế bào cuối cùng được gọi là tế bào lá

Mô tả thuật toán cây K-D:

Cây k-d là một cây nhị phân trong đó mỗi nút là một điểm k chiều Mỗi nút không phải lá có thể được coi là ngầm tạo ra một siêu mặt phẳng tách chia không gian thành hai phần, được gọi là nửa không gian Các điểm ở bên trái của siêu mặt phẳng này được biểu diễn bằng cây con bên trái của nút đó và các điểm ở bên phải của siêu mặt phẳng được biểu thị bằng cây con bên phải Hướng siêu mặt phẳng được chọn theo cách sau: mọi nút trong cây được liên kết với một trong các chiều k, với siêu mặt phẳng vuông góc với trục của chiều đó Vì vậy, ví dụ: nếu đối với một phân tách cụ thể, trục "x" được chọn, tất cả các điểm trong cây con có giá trị "x" nhỏ hơn nút sẽ xuất hiện trong cây con bên trái và tất cả các điểm có giá trị "x" lớn hơn sẽ nằm trong cây con bên phải Trong trường hợp như vậy, siêu mặt phẳng sẽ được đặt bởi giá trị x của điểm và bình thường của nó sẽ là đơn vị trục x

Xây dựng xây K-D: Vì có nhiều cách có thể để chọn mặt phẳng tách thẳng hàng trục, nên có nhiều cách khác nhau để xây dựng cây k-d Phương pháp kinh điển của việc xây dựng cây k-d có những hạn chế sau:

Khi một người di chuyển xuống cây, người ta quay vòng qua các trục được sử dụng để chọn các mặt phẳng tách Các điểm được chèn bằng cách chọn trung vị của các điểm được đưa vào cây con, đối với tọa độ của chúng trong trục được sử dụng để tạo mặt phẳng tách

Cho một danh sách n điểm, thuật toán sau đây sử dụng một sắp xếp tìm trung vị để xây dựng một cây k-d cân bằng có chứa các điểm đó function kdtree (list of points pointList, int depth)

// Select axis based on depth so that axis cycles through all valid values var int axis := depth mod k;

// Sort point list and choose median as pivot element select median by axis from pointList;

// Create node and construct subtree node.location := median; node.leftChild := kdtree(points in pointList before median, depth+1); node.rightChild := kdtree(points in pointList after median, depth+1); return node;

Thông thường, các điểm "sau" trung vị chỉ bao gồm các điểm lớn hơn trung vị trong chiều hiện tại Đối với các điểm nằm trên trung vị trong chiều hiện tại, có thể xác định một hàm so sánh chúng trong tất cả các chiều Trong một số trường hợp, có thể chấp nhận để các điểm bằng trung vị nằm ở một bên của trung vị, ví dụ, bằng cách chia các điểm thành một tập hợp con "nhỏ hơn" và một tập con "lớn hơn hoặc bằng"

Thuật toán này tạo ra bất biến mà đối với bất kỳ nút nào, tất cả các nút trong cây con bên trái nằm ở một bên của mặt phẳng phân tách và tất cả các nút trong cây con bên phải nằm ở phía bên kia Các điểm nằm trên mặt phẳng tách có thể xuất hiện ở hai bên Mặt phẳng phân tách của một nút đi qua điểm được liên kết với nút đó (được gọi trong mã là node.location)

Các thuật toán thay thế để xây dựng một cây k-d cân bằng sử dụng dữ liệu trước khi xây dựng cây Sau đó, họ duy trì trật tự của khu nghỉ dưỡng trong quá trình xây dựng cây xanh và do đó loại bỏ bước tốn kém là tìm dải phân cách ở mỗi cấp phân khu Hai thuật toán như vậy xây dựng một cây k-d cân bằng để sắp xếp các hình tam giác nhằm cải thiện thời gian thực hiện dò tia cho đồ họa máy tính ba chiều Các thuật toán này sử dụng n hình tam giác trước khi xây dựng cây k-d, sau đó xây dựng cây trong thời gian trong trường hợp tốt nhất Một thuật toán xây dựng một cây k-d cân bằng để sắp xếp các điểm có độ phức tạp trong trường hợp xấu nhất là Thuật toán này sử dụng n điểm trong mỗi k chiều bằng cách sử dụng một Sau đó, nó duy trì trật tự của các khu nghỉ dưỡng k này trong quá trình xây dựng cây và do đó tránh tìm thấy dải phân cách ở mỗi cấp của phân khu.

Kết luận và vấn đề nghiên cứu

Để mô phỏng đối tượng nhân vật chuyển động theo chế độ điều khiển người dùng, chúng ta cần nghiên cứu giải pháp, phương pháp kỹ thuật để mô phỏng Chương này đã tập trung nghiên cứu một số kiến thức, kỹ thuật cơ bản như: Một số phép toán cơ bản nền tàng trong dịch chuyển đối tượng;

Phương pháp xây dựng mô hình 3D

Kỹ thuật tạo và gán xương rigging cho từng bộ phân của nhân vật

Kỹ thuật điều khiển nhân vật chuyển động dựa vào phép biến đổi hình học

Kỹ thuật tạo điều khiển Inverse Kinematic cho nhân vật

Sử dụng chuỗi động lực trong mô phỏng chuyển động nhân vật

Phương pháp ước tính tư thế 3D cho nhân vật chuyển động

Và một số phương pháp, kỹ thuật hỗ trợ khác

CHƯƠNG TRÌNH THỬ NGHIỆM

Giới thiệu bài toán

Trên cơ sở mục tiêu nghiên cứu đặt ra của luận văn, để đạt được mục tiêu đã đề ra, tác giả đã tập trung nghiên cứu khái quát về bài toán mô phỏng, lý thuyết liên quan tới mô phỏng nhân vật điều khiển chuyển động và đồng thời nghiên cứu một số cơ sở toán học, phương pháp, kỹ thuật mô phỏng nhân vật chuyển động theo chế độ điều khiển trong chương 2

Chương này, tác giả sẽ tập trung nghiên cứu cài đặt đề mô thử nghiệm kỹ thuật điều khiển nhân vật chính là học viên Nguyễn Đức Nhân theo chế độ chủ động, điều khiển tương tác của nhân vật trong không gian môi trường thực tế ảo gồm các hàng cây, cỏ, hoa, đồi, núi, đá và sông nước… Điều này sẽ góp phần mô phỏng được giống thực tế hơn

Với mục tiêu là mô phỏng nhân vật chuyển động, dịch chuyển theo chế độ người dùng chủ động, tương tác Tác giả chọn nhân vật chuyển động chính là mình

Hình 3.1 Một số tư thế chuyển động của nhân vật

Trên đây là hình ảnh biểu hiện cho một số tư thế khác nhau của nhân vật, tùy thuộc vào những hành động, cử chỉ khác nhau của nhân vật là ở mức độ nào, thời điểm, khung cảnh nào thì sẽ có các tư thế, cử chỉ hành động khác nhau Trong luận văn này, báo cáo tập trung nghiên cứu đề mô thử nghiệm một số cử chỉ, tư thế cho nhân vật đơn gian, đó là đi lại, dịch chuyển thông thường Vì vậy, tác giả chỉ tập trung vào trạng thái đi lại bình người của con người

3.3 Mô tả đầu vào và đầu ra bài toán

Dựa vào các hình ảnh, thể hiện các tư thế khác nhau ứng với các hành động, cử chỉ của nhân vật Nhóm tiến hành xây dựng thành mô hình 3D thể hiện nhân vật sử dụng công cụ Unity 3D như sau:

Xây dựng nhân vật, khung cảnh:

Tạo mô hình 3D nhân vật bản dựa trên những ý tưởng: dựng nhân vật 3D dựa trên các bản vẽ

Khái quát về tấm plane được sử dụng xây dựng đầu người:

Khái niệm: Tấm plane là một bề mặt không có độ dài, độ rộng hoặc độ dày Nó mở rộng vô hạn theo cả hai hướng và không có đỉnh hoặc cạnh

Phương trình: Một tấm plane có thể được biểu diễn bằng phương trình phẳng Phương trình của một tấm plane trong không gian ba chiều thường được viết dưới dạng ax + by + cz + d = 0, trong đó (a, b, c) là vector pháp tuyến của tấm plane và (x, y, z) là các biến độc lập trong không gian ba chiều Hằng số d xác định vị trí của tấm plane trong không gian

Tương tác với điểm và đường thẳng: Tấm plane tạo ra sự tương tác quan trọng với các điểm và đường thẳng trong không gian ba chiều Một điểm nằm trên tấm plane thỏa mãn phương trình của nó, và một đường thẳng có thể giao tấm plane tại một điểm hoặc là song song với tấm plane nếu không giao tại điểm nào Ứng dụng: Tấm plane là một khái niệm quan trọng trong nhiều lĩnh vực của toán học, đặc biệt là hình học, đồ họa máy tính, và trong việc mô tả không gian trong lĩnh vực khoa học máy tính và kỹ thuật Nó được sử dụng để mô phỏng bề mặt phẳng, như mặt đất trong các trò chơi video, mặt phẳng làm việc trong các ứng dụng CAD (Computer-Aided Design), và nhiều ứng dụng khác

Bước 1: Xây dựng nhân vật là xây dựng đầu người:

Hình 3.2 Khởi tạo hình vào phần mềm trên tấm plane

Bước 2: Đầu người sau khi dựng xong từ tấm plane

Sử dụng phần mềm Maya 3D, 3Ds max để chỉnh sửa mô hình:

Hình 3.3 Đầu người sau khi dựng xong từ tấm plane và tạo tai

Hình 3.4 Đầu người low poly sau khi đã hoàn thiện Tiếp theo, thiết kế mô hình cho từng bộ phận của nhân vật:

Hình 3.5 Tạo lưới khuỷu tay và khớp ngón tay

Hình 3.6 Tạo dựng mô hình chân, gối…

Tiếp theo, tạo dựng mô hình 3D thân nhân vật:

Hình 3.7 Tạo dựng thân nhân vật

Trải UV map cho áo của nhân vật:

Hình 3.8 Toàn cảnh nhân vật sau khi áp vật liệu 3.4 Phân tích bài toán

Trên cơ sở xác định và tạo dựng được mô hình 3D cho nhân vật, bài toán mô phỏng nhân vật dịch chuyển chủ động, điều khiển theo chế độ người dùng tương tác Chúng ta cần xác định: Đầu vào: Mô hình nhân vật 3D, dưới dạng lưới đa giác và kèm khung xương tương ứng được thiết lập đối với từng bộ phận trên cơ thể nhân vật Đầu ra: Chuyển động của mô hình nhân vật 3D theo khung xương Trong thực nghiệm này, mô phỏng được nhân vật chuyển động chính là học viên Nguyễn Đức Nhân và tạo diễn hoạt cho cánh tay của nhân vật, cần điều khiển chuyển động cánh tay của nhân vật một cách uyển chuyển giống thật

Kỹ thuật điều khiển ngược IK ở đây sẽ được áp dụng để giải quyết việc tính toán các tham số về vị trí và hướng quay tại mỗi thời điểm cho từng thành phần của khung xương

Sử dụng Open GL trong việc draw mô hình

Khởi tạo môi trường OpenGL: Trước khi bạn có thể sử dụng OpenGL, bạn cần khởi tạo môi trường OpenGL trên hệ thống của mình Điều này thường được thực hiện bằng cách sử dụng một thư viện khác như GLFW, SDL hoặc GLUT để tạo cửa sổ đồ họa và quản lý các tài nguyên OpenGL

Chuẩn bị mô hình 3D: Để vẽ một mô hình 3D, bạn cần chuẩn bị dữ liệu mô hình Điều này bao gồm đọc dữ liệu mô hình từ các tệp 3D (như OBJ, FBX, hoặc glTF) hoặc tạo mô hình một cách programmatic bằng cách xác định các đỉnh (vertices), normal vectors, texture coordinates và các phần tử kết nối (indices) của mô hình

Toạ cấu hình các đối tượng OpenGL: Bạn cần tạo các đối tượng OpenGL như vertex buffer objects (VBOs), vertex array objects (VAOs), và shader

62 programs để vẽ mô hình của bạn Shader programs bao gồm vertex shader và fragment shader để xác định cách mô hình sẽ được hiển thị và ánh sáng

Vẽ mô hình: Sau khi bạn đã chuẩn bị dữ liệu và cấu hình các đối tượng OpenGL, bạn có thể bắt đầu vẽ mô hình bằng cách sử dụng các cuộc gọi OpenGL để vẽ đỉnh, áp dụng shader programs, và thiết lập các thông số như chiếu sáng, camera, và màu sắc

Vòng lặp vẽ và sử lý sự kiện: Trong một ứng dụng thực tế, bạn cần tạo một vòng lặp để liên tục vẽ mô hình và xử lý sự kiện người dùng như di chuyển camera, xoay mô hình, và thay đổi góc nhìn

Dọn dẹp tài nguyên: Cuối cùng, sau khi bạn hoàn thành việc vẽ và sử dụng OpenGL, bạn cần giải phóng tài nguyên bằng cách xóa VBOs, VAOs, shader programs, và dọn dẹp bộ nhớ được cấp phát

Mô tả đầu vào và đầu ra bài toán

Dựa vào các hình ảnh, thể hiện các tư thế khác nhau ứng với các hành động, cử chỉ của nhân vật Nhóm tiến hành xây dựng thành mô hình 3D thể hiện nhân vật sử dụng công cụ Unity 3D như sau:

Xây dựng nhân vật, khung cảnh:

Tạo mô hình 3D nhân vật bản dựa trên những ý tưởng: dựng nhân vật 3D dựa trên các bản vẽ

Khái quát về tấm plane được sử dụng xây dựng đầu người:

Khái niệm: Tấm plane là một bề mặt không có độ dài, độ rộng hoặc độ dày Nó mở rộng vô hạn theo cả hai hướng và không có đỉnh hoặc cạnh

Phương trình: Một tấm plane có thể được biểu diễn bằng phương trình phẳng Phương trình của một tấm plane trong không gian ba chiều thường được viết dưới dạng ax + by + cz + d = 0, trong đó (a, b, c) là vector pháp tuyến của tấm plane và (x, y, z) là các biến độc lập trong không gian ba chiều Hằng số d xác định vị trí của tấm plane trong không gian

Tương tác với điểm và đường thẳng: Tấm plane tạo ra sự tương tác quan trọng với các điểm và đường thẳng trong không gian ba chiều Một điểm nằm trên tấm plane thỏa mãn phương trình của nó, và một đường thẳng có thể giao tấm plane tại một điểm hoặc là song song với tấm plane nếu không giao tại điểm nào Ứng dụng: Tấm plane là một khái niệm quan trọng trong nhiều lĩnh vực của toán học, đặc biệt là hình học, đồ họa máy tính, và trong việc mô tả không gian trong lĩnh vực khoa học máy tính và kỹ thuật Nó được sử dụng để mô phỏng bề mặt phẳng, như mặt đất trong các trò chơi video, mặt phẳng làm việc trong các ứng dụng CAD (Computer-Aided Design), và nhiều ứng dụng khác

Bước 1: Xây dựng nhân vật là xây dựng đầu người:

Hình 3.2 Khởi tạo hình vào phần mềm trên tấm plane

Bước 2: Đầu người sau khi dựng xong từ tấm plane

Sử dụng phần mềm Maya 3D, 3Ds max để chỉnh sửa mô hình:

Hình 3.3 Đầu người sau khi dựng xong từ tấm plane và tạo tai

Hình 3.4 Đầu người low poly sau khi đã hoàn thiện Tiếp theo, thiết kế mô hình cho từng bộ phận của nhân vật:

Hình 3.5 Tạo lưới khuỷu tay và khớp ngón tay

Hình 3.6 Tạo dựng mô hình chân, gối…

Tiếp theo, tạo dựng mô hình 3D thân nhân vật:

Hình 3.7 Tạo dựng thân nhân vật

Trải UV map cho áo của nhân vật:

Phân tích bài toán

Trên cơ sở xác định và tạo dựng được mô hình 3D cho nhân vật, bài toán mô phỏng nhân vật dịch chuyển chủ động, điều khiển theo chế độ người dùng tương tác Chúng ta cần xác định: Đầu vào: Mô hình nhân vật 3D, dưới dạng lưới đa giác và kèm khung xương tương ứng được thiết lập đối với từng bộ phận trên cơ thể nhân vật Đầu ra: Chuyển động của mô hình nhân vật 3D theo khung xương Trong thực nghiệm này, mô phỏng được nhân vật chuyển động chính là học viên Nguyễn Đức Nhân và tạo diễn hoạt cho cánh tay của nhân vật, cần điều khiển chuyển động cánh tay của nhân vật một cách uyển chuyển giống thật

Kỹ thuật điều khiển ngược IK ở đây sẽ được áp dụng để giải quyết việc tính toán các tham số về vị trí và hướng quay tại mỗi thời điểm cho từng thành phần của khung xương

Sử dụng Open GL trong việc draw mô hình

Khởi tạo môi trường OpenGL: Trước khi bạn có thể sử dụng OpenGL, bạn cần khởi tạo môi trường OpenGL trên hệ thống của mình Điều này thường được thực hiện bằng cách sử dụng một thư viện khác như GLFW, SDL hoặc GLUT để tạo cửa sổ đồ họa và quản lý các tài nguyên OpenGL

Chuẩn bị mô hình 3D: Để vẽ một mô hình 3D, bạn cần chuẩn bị dữ liệu mô hình Điều này bao gồm đọc dữ liệu mô hình từ các tệp 3D (như OBJ, FBX, hoặc glTF) hoặc tạo mô hình một cách programmatic bằng cách xác định các đỉnh (vertices), normal vectors, texture coordinates và các phần tử kết nối (indices) của mô hình

Toạ cấu hình các đối tượng OpenGL: Bạn cần tạo các đối tượng OpenGL như vertex buffer objects (VBOs), vertex array objects (VAOs), và shader

62 programs để vẽ mô hình của bạn Shader programs bao gồm vertex shader và fragment shader để xác định cách mô hình sẽ được hiển thị và ánh sáng

Vẽ mô hình: Sau khi bạn đã chuẩn bị dữ liệu và cấu hình các đối tượng OpenGL, bạn có thể bắt đầu vẽ mô hình bằng cách sử dụng các cuộc gọi OpenGL để vẽ đỉnh, áp dụng shader programs, và thiết lập các thông số như chiếu sáng, camera, và màu sắc

Vòng lặp vẽ và sử lý sự kiện: Trong một ứng dụng thực tế, bạn cần tạo một vòng lặp để liên tục vẽ mô hình và xử lý sự kiện người dùng như di chuyển camera, xoay mô hình, và thay đổi góc nhìn

Dọn dẹp tài nguyên: Cuối cùng, sau khi bạn hoàn thành việc vẽ và sử dụng OpenGL, bạn cần giải phóng tài nguyên bằng cách xóa VBOs, VAOs, shader programs, và dọn dẹp bộ nhớ được cấp phát

Xử lý va chạm trong điều khiển nhân vật là một phần quan trọng của lập trình trò chơi và mô phỏng Dưới đây là một số thuật toán cơ bản để xử lý va chạm giữa nhân vật và các vật thể trong trò chơi hoặc mô phỏng:

Bounding Box (Hộp bao quang): Đây là phương pháp đơn giản nhất Mỗi nhân vật và vật thể được đại diện bởi một hộp chứa (bounding box), và va chạm được xác định bằng cách kiểm tra xem hai hộp bao quanh có giao nhau hay không

Boundinh sphere (Hình cầu bao quang): Mỗi đối tượng được bao bọc bởi một hình cầu, và va chạm được xác định bằng cách kiểm tra xem hai hình cầu có tiếp xúc hay không Đây là một phương pháp nhanh hơn so với bounding box, nhưng không chính xác bằng bounding box

Mesh collision (Va chạm mạng lưới): Đối với các mô hình 3D phức tạp, bạn có thể sử dụng va chạm dựa trên mạng lưới (mesh collision) Điều này liên quan đến việc xác định xem các mạng lưới đỉnh của nhân vật và vật thể có tiếp xúc hay không

Phương ứng đơn giản: Khi va chạm xảy ra, bạn có thể đặt vị trí của nhân vật trở lại vị trí trước khi va chạm để tránh xâm nhập vào vật thể Điều này thường được gọi là "phản ứng đơn giản" (simple response)

Giới thiệu ma sát và độ đàn hồi: Để làm cho va chạm trông tự nhiên hơn, bạn có thể giới thiệu ma sát và độ đàn hồi (bounciness) Khi va chạm xảy ra, nhân vật có thể bị chậm lại (do ma sát) và bật lại (do độ đàn hồi)

Kiểm tra va chạm liên tục: Đối với các trò chơi nhanh, phương pháp phát hiện và xử lý va chạm theo bước thời gian có thể không đủ chính xác Trong trường hợp này, CCD được sử dụng để xác định va chạm trong khoảng thời gian nhỏ giữa các khung hình, để tránh xảy ra va chạm mà không phát hiện được

Sử cụng collision layers (lớp va chạm): Trong một số trường hợp, bạn muốn kiểm soát việc xử lý va chạm giữa các đối tượng cụ thể Sử dụng collision layers, bạn có thể xác định xem các đối tượng nên tương tác va chạm với nhau hay không

Chương trình mô phỏng

3.5.1 Hướng dẫn cài đặt, sử dụng chương trình

Hệ thống mô phỏng thử nghiệm sự chuyển động cho đối tượng có xương, dịch chuyển theo chế độ người dùng chủ động, nhập vai điều sử dụng ngôn ngữ lập trình Visual C Sharp thư viện đồ hoạ Unity Engine 3D

Với phần mềm mô phỏng đối tượng nhân vật chuyển động là con người, chính học viên: Nguyễn Đức Nhân, với mô hình nhân vật được thiết kế sử dụng công cụ phần mềm 3DS Max, Maya 3D, Unity 3D

Chương trình phần mềm mô phỏng nhân vật chuyển động sử dụng ngôn ngữ lập trình Unity Engine 3D; Lập trình C Sharp Để chương trình có thể chạy được trên máy tính, yêu cầu hệ thống sau:

Các loại hệ điều hành windows

Cấu hình máy tính: RAM càng lớn càng tốt, tối thiểu phải là loại RAM 4 GB

Bước 1: Copy Thư mục Dilaichudong kèm file “Thamquanchudong” vào một ổ đĩa trong máy tính

Bước 2: Chạy file “Thamquanchudong.exe”

Bước 3: Tương tác với hướng dẫn khai thác trên phần mềm

Hình 3.9 Thư mục và file chạy chương trình mô phỏng 3.5.2 Kết quả thực nghiệm

Dưới đây là một số kết quả chạy chương trình mô phỏng nhân vật đối tượng là học viên Nguyễn Đức Nhân như sau:

Hình 3.9 Giao diện khởi tạo chương trình mô phỏng nhân vật “Nguyễn Đức Nhân”, nhân vật đứng im

Trong giao diện trên, nhân vật đứng im, không có chuyển động có bất cứ sự dịch chuyển hay tương tác nào

Sau khi khởi động chương trình, người sử dụng có thể tương tác với:

- Không gian ảo, thế giới ảo bằng cách: sử dụng chuột và đưa chuột đi các góc khác nhau, đưa chuột sang trái, sang phải, đưa lên trên hay xuống dưới, xoay chuột thì đều làm cho không gian thay đổi và góc nhìn nhân vật cũng thay đổi Dưới đây là một số hình ảnh kết quả:

Hình 3.10 Tương tác điều khiển không gian ảo dựa vào chuột

- Điều khiển nhân vật ảo dịch chuyển, chuyển động như người thật trong không gian ảo bằng cách: sử dụng các chữ cái trên bàn phím để điều khiển nhân vật theo ý muốn người dùng Cụ thể:

(1) Sử dụng các phím chữ cái để thay đổi hướng của nhân vật: đi thẳng sử dụng phím ‘S’; Xoay sang trái phím ‘D’; Xoay sang phải phím ‘A’; Xoay lại

180 0 là phím ‘W’ Dưới đây là một số tương tác thay đổi hướng đi của nhân vật:

Hình 3.11 Tương tác điều khiển hướng của nhân vật sử dụng phím Ngoài ra, chương trình còn cài đặt lập trình sử dụng các phím mũi tên: để điều khiển chuyển động của nhân vật theo các hướng khác nhau theo ý muốn của người sử dụng Với mỗi phím mũi tên được cài đặt lập trình tích hợp với các ràng buộc cho từng bộ phận trên cơ thể nhân vật như đầu, cổ, chân, tay, cổ chân, cổ tay, hông… sao cho đảm bảo sự chuyển động đi lại của nhân vật được mềm dẻo giống người thật Các cánh tay đưa ra phía trước, phí sau phải logic với các bước chân khi di chuyển tương ứng và biểu cảm khuôn mặt, biểu cảm trên cơ thể, sự co giãn của áo, quần giống như người thật Dưới đây là một số điều khiển:

Hình 3.12 Tương tác điều khiển hướng của nhân vật sử dụng phím mũi tên Chương trình cho phép kết hợp điều khiển của 2 phím mũi tên để điều khiển hướng di chuyển của nhân vật cho đi đúng hướng theo ý người dùng Để tạo cho không gian thế giới ảo được chân thực giống như môi trường thế giới thực, chương trình thiết kế không gian ảo gồm nhiều đối tượng trong không gian như cỏ, hoa, đá, sông nước chuyển động, có gió thổi Điều khiển nhân vật di chuyển đi lại được được camera theo dõi và đưa ra các góc nhìn khác nhau, tạo ra sự chân thực đối với không gian ảo

Xử lý va chạm để tạo cho nhân vật không bị đi xuyên qua các vận cản như cây Hay leo lên đồi, núi cao thì nhân vật không bị chìm xuống mặt đất, đá mà chân vẫn phải thể hiện đi trên mặt đất

Hình 3.13 Xử lý va chạm giữa nhân vật với các vật cản trong không gian

Mô hình nhân vật trên được người dùng điều khiển chuyển động dịch chuyển đi đến các vị trí, khung cảnh khác nhau trong môi trường không gian ảo Với mỗi vị trí, khung cảnh khác nhau kèm các hiện vật, đối tượng trong không gian ảo như đất, đồi, đá, cây, cỏ, hoa, sông, ao hồ…

Nhận xét, đánh giá thử nghiệm chương trình

Trong luận văn này, tác giả sử dụng kỹ thuật tạo mô hình dựa vào công cụ phần mềm Maya 3D, 3Ds Max Sau đó, sử dụng các kỹ thuật IK để lập trình điều khiển nhân vật di chuyển Thực tế, khi con người chuyển đông, hầu hết cánh tay chuyển động từ trên vai, sau đó đến cùi chỏ, và sau cùng là cổ tay Do đó, nếu sử dụng kỹ thuật FK thì sẽ gần giống với tự nhiên hơn Tuy nhiên, nó có thể có chút phức tạp với IK – vì theo phương pháp này, cổ tay sẽ di chuyển đầu tiên, và phần còn lại của cánh tay sẽ di chuyển theo nó, sẽ khiến nó trông như cánh tay tự nó di chuyển Nhiệm vụ của ta chính là làm nó có cảm giác như vai đang dẫn chuyển động, thậm chí khi ta đặt vị trí cho cổ tay trước tiên

Khi hoạt động con người thì yêu cầu phải có sự gắn kết các phần của cơ thể Khi con người di chuyển cột sống, đôi tay cũng sẽ di chuyển Khi bạn giơ tay lên, cột sống cũng di chuyển luôn Một lần nữa, điều này sẽ dễ đạt được với

FK hơn Nếu ta có cánh tay với FK và ta di chuyển cơ thể thì cả cánh tay (cả cổ tay) sẽ di chuyển theo, vì thế ta nhận thấy cánh tay đã được kết nối với toàn cơ thể Với cánh tay IK, sự chuyển động của cột sống không tự động ảnh hưởng đến vị trí của cổ tay Ta sẽ di chuyển cơ thể và cổ tay vẫn ở nguyên vị trí cũ Vì thế, đôi khi ta có cảm giác như cánh tay (cổ tay) độc lập với cơ thể

Nếu tạo chuyển động bằng kỹ thuật IK cho cánh tay, phải cố hết mình để truyền tải cảm giác rằng sự chuyển động được làm chủ bởi đôi vai, chứ không phải cánh tay làm chủ chính nó Cơ bản, phải xử lý với IK, và chuyển động cổ tay, cùi chỏ y như cách di chuyển của một cánh tay thật Ta sẽ cần xác định vị trí của cánh tay, đảm bảo sao cho sự di chuyển của cùi chỏ có thể truyền tải ý tưởng:

69 chuyển động được bắt đầu từ đôi vai Phải thực sự chú ý đến cùi chỏ, cũng như xương đòn và ngực khi làm việc với IK

Nhưng với nếu muốn gắn một vật gì đó vào tay của nhân vật, chẳng hạn như một cây đèn thì giải pháp FK sẽ đem lại khá nhiều phức tạp Bởi vì mỗi chuyển động nhỏ của cổ tay sẽ dẫn đến một sự thay đổi lớn đối với vị trí của đèn Khi đó ta sẽ phải chỉnh lại đường cong di chuyển của cây đèn sao cho đầu đèn trạm đến đích Tuy nhiên, nếu sử dụng FK, góc của cổ tay sẽ bị ảnh hưởng bởi sự dịch chuyển (translation) của khuỷu tay, và cổ tay, khuỷu tay cũng bị ảnh hưởng bởi chuyển động của vai Điều này giúp chuyển động nhân vật có cảm giác liên kết trên cánh tay, nhưng nếu muốn giới hạn chuyển động của cổ tay, ta sẽ thực sự mất nhiều công sức để điều chỉnh đường chuyển động (curves), bởi vì góc của cổ tay đang chịu ảnh hưởng của 3 yếu tố khác nhau, và 3 yếu tố này lại ảnh hưởng lẫn nhau

Với chương trình thực nghiệm mô phỏng nhân vật đối tượng con người chính là Nguyễn Đức Nhân sử dụng kỹ thuật điều khiển IK, với những hình ảnh ở các góc độ khác nhau, tư thế khác nhau của nhân vật: mặt trước, mặt trái, mặt phải, mặt sau lưng…

Kèm các tư thế khác nhau của chân, tay, hông, cổ…

Chương trình cho phép sử dụng các phím chữ cái và các phím mũi tên để điều khiển hướng, dịch chuyển của nhân vật theo ý muốn người dùng kèm xử lý va chạm cho nhân vật, đã thể hiện được nhân vật chuyển động trong môi trường không gian ảo với các thành phần như con đường, tòa nhà, hàng cây, cỏ, đá, đồi… Qua đó, cho thấy, nhân vật chuyển động thể hiện các tư thế như con người thật Vì vậy, cho thấy kết quả chương trình mô phỏng nhân vật đảm bảo sát thực tế về tư thế, hành động, dịch chuyển của con người như thật

Ngày đăng: 20/02/2024, 13:56

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w