Khái quát về thực tại ảo (Virtual Reality-VR)
1.1.1 Thế nào là thực tại ảo?
Thực tại ảo (VR) là một thuật ngữ đang phát triển mạnh mẽ trong những năm gần đây, trở thành một ngành công nghệ tiên tiến với ứng dụng đa dạng trong nhiều lĩnh vực như y tế, giáo dục, kiến trúc, quân sự, du lịch và giải trí Theo định nghĩa của C Burdea và P Coiffet, thực tại ảo được hiểu là một hệ thống giao diện cao cấp giữa người sử dụng và máy tính, mô phỏng các sự vật và hiện tượng theo thời gian thực, cho phép người dùng tương tác thông qua các kênh cảm giác như thị giác, thính giác, xúc giác, khứu giác và vị giác.
Hình 1 1 Giao diện giữa người sử dụng và hệ thống máy tính 3D
Công nghệ thực tế ảo (VR) sử dụng kỹ thuật mô hình hóa không gian ba chiều kết hợp với thiết bị hiện đại để tạo ra một thế giới mô phỏng sống động Trong môi trường ảo này, người dùng không chỉ là người quan sát mà thực sự trở thành một phần của hệ thống Thế giới "nhân tạo" này không tĩnh mà phản ứng và thay đổi theo ý muốn của người sử dụng thông qua các cử chỉ và hành động, cho phép họ thấy sự vật biến đổi ngay lập tức trên màn hình.
Người sử dụng có thể tự do di chuyển trong không gian ba chiều, tương tác với các vật thể ảo và khám phá thế giới ảo từ nhiều góc độ khác nhau Môi trường ảo phản ứng với từng hành động của người dùng, kích thích các giác quan như thị giác, thính giác và xúc giác trong thời gian thực, tạo cảm giác như họ đang sống trong một thế giới thực.
1.1.2 Sơ lƣợc về lịch sử phát triển của thực tại ảo
Mặc dù thực tại ảo được coi là một công nghệ cách mạng, nhưng ý tưởng về việc đưa người sử dụng vào một môi trường nhân tạo đã xuất hiện từ lâu.
Thuật ngữ “Thực tại ảo” đã thu hút sự chú ý trong những năm gần đây, nhưng nó có nguồn gốc từ cách đây gần 40 năm Morton Heilig, một nhà làm phim người Mỹ, đã đề xuất ý tưởng đưa con người vào một thế giới khác thông qua hệ thống mô phỏng bay (Flight Simulation) Hệ thống này cho phép người dùng cảm nhận hình ảnh sống động ngay trước mắt Tuy nhiên, do thiếu nguồn tài chính, Heilig không thể hoàn thành ước mơ của mình, nhưng ông đã phát triển thiết bị mô phỏng mang tên "Sensorrama Simulator", được công bố vào đầu những năm 1960.
Hình 1 2 Thiết bị mô phòng Sensorrama - 1960
Thiết bị này kết hợp hình ảnh 3D từ camera 35mm thành một camera chính, cùng với hệ thống âm thanh và cảnh quay 3 chiều thực tế Người dùng có thể trải nghiệm cảm giác cưỡi xe máy, cảm nhận gió khi di chuyển và thậm chí là những đoạn đường gồ ghề Mặc dù còn đơn giản và thô sơ, thiết bị này đã mở ra nhiều ý tưởng nghiên cứu mới chưa từng có trên thế giới.
Năm 1966, Ivan Sutherland, một sinh viên tốt nghiệp tại Trường Utah, tiếp tục nghiên cứu vấn đề mà Heilig đã bỏ dở Ông nhận thấy rằng các cảnh quay tương tự không đáp ứng được yêu cầu thực tế và bắt đầu phát triển ý tưởng về một bộ tăng tốc đồ họa Sutherland đã chế tạo thành công hệ thống thiết bị hiển thị đội đầu (Head Mounted Display - HMD) có khả năng kết nối với máy tính Đến năm 1970, ông tiếp tục cải tiến phần cứng của HMD tại Đại học Utah.
6 làm cho nó hoàn thiện hơn có màn hình là màn hình màu
Hình 1 3 Thiết bị mô phỏng HMD-1970 của Ivan Sutherland
Trong khoảng thời gian này, Myron Kreuger đã phát triển thiết bị VIDEOPLACE, sử dụng một màn hình lớn để hiển thị hình bóng của người dùng Hệ thống này còn cho phép hiển thị nhiều người sử dụng cùng lúc trên một màn hình.
Hình 1 4 Thiết bị VIDEOPLACE-1970 của Myron Kreuger
Vào năm 1984, hai nhà khoa học Mỹ tại NASA, Fisher và McGreevy, đã kết hợp các ý tưởng để phát triển dự án “Trạm làm việc ảo” (Visual Workstation) Từ dự án này, NASA đã tạo ra thiết bị Hiển thị đội đầu thương mại đầu tiên, thiết kế dựa trên mặt nạ lặn và sử dụng màn hình quang học với hình ảnh từ hai thiết bị truyền hình cầm tay Sony Watchman Sự phát triển này đã vượt xa mong đợi, khi NASA sản xuất thành công một thiết bị HMD với giá cả hợp lý trên thị trường, đánh dấu sự ra đời của ngành công nghiệp thực tại ảo.
Hình 1 5 Thiết bị HMD-1984 của NASA
Công nghệ thực tại ảo đã có sự phát triển mạnh mẽ từ những năm 90 và hiện đang trở thành công nghệ mũi nhọn với khả năng ứng dụng rộng rãi trong nhiều lĩnh vực như nghiên cứu, công nghiệp, giáo dục, thương mại và giải trí Tiềm năng kinh tế và tính lưỡng dụng trong cả dân dụng và quân sự của công nghệ này đang được đánh giá cao.
1.1.3 Các thành phần của một hệ thống thực tại ảo
Một hệ thống t hực tại ảo tổng quát bao gồm các thành phần: Phần mềm (Software), phần cứng (HardWare), mạng liên kết, người dùng và các ứng dụng [6]:
Hình 1 6 Các thành phần một hệ thống VR
Trong luận văn này tôi chỉ tập chung vào phần cứng và phần mềm
Phần cứng của một VR tổng quát bao gồm:
Máy tính (PC hay Workstation với cấu hình đồ họa mạnh)
Các thiết bị đầu vào (Input devices) đóng vai trò quan trọng trong việc tạo ra trải nghiệm ảo bằng cách kích thích các giác quan của người dùng Chúng bao gồm bộ dò vị trí (position tracking) để xác định vị trí quan sát, bộ giao diện định vị (Navigation interfaces) giúp di chuyển người sử dụng, và bộ giao diện cử chỉ (Gesture interfaces) như găng tay dữ liệu (data glove) Ngoài ra, các thiết bị tương tác như chuột (SpaceBall) và bàn phím cũng góp phần vào việc tương tác với máy tính trong môi trường ảo.
Các thiết bị đầu ra bao gồm thiết bị hiển thị đồ họa như kính mắt Shutter Glasses, màn hình rộng và thiết bị HDM, giúp người dùng trải nghiệm hình ảnh 3D Thiết bị âm thanh như loa Hi-Fi và Surround mang đến âm thanh vòm sống động Ngoài ra, bộ phản hồi cảm giác (Haptic feedback) như găng tay tạo ra xúc giác khi tương tác với đối tượng, trong khi bộ phản hồi xung lực (Force Feedback) mô phỏng lực tác động, mang lại trải nghiệm thực tế khi tham gia các hoạt động như đạp xe hoặc di chuyển trên đường xóc.
Phần mềm là yếu tố cốt lõi của thực tại ảo và mọi hệ thống máy tính hiện đại Để đảm bảo hiệu quả, cần sử dụng ngôn ngữ lập trình hoặc phần mềm đồ họa phù hợp, với hai chức năng chính là mô hình hóa (modelling) và mô phỏng (simulation) các đối tượng trong VR.
Các đối tượng trong VR được mô hình hóa bằng cách sử dụng phần mềm chuyên dụng, cho phép chuyển đổi từ mô hình 2D sang 3D Những công cụ nổi bật như Maya và 3D Max hỗ trợ quá trình này, giúp tạo ra các mô hình sống động và chi tiết.
Mô phỏng (Simulation) là quá trình tái hiện hoặc mô tả các sự vật, hiện tượng và cảnh vật có thực trong thiên nhiên hoặc từ trí tưởng tượng của con người.
Cho đến nay, nhìn chung có 2 xu hướng để thực hiện mô phỏng mô hình 3D:
Chuyển động trong thực tại ảo
Hình ảnh 3D trong thực tại ảo đang ngày càng được ứng dụng rộng rãi trong đời sống Việc tạo ra các mô hình 3D cùng với các chuyển động tương ứng là điều cần thiết Trong lĩnh vực hình ảnh 3D trong VR, hai khâu quan trọng nhất là quy trình tạo mô hình và điều khiển mô hình.
1.2.1 Vai trò của việc tạo chuyển động
Có thể nói việc tạo chuyển động là thành phần không thể thiếu trong
Công nghệ VR cho phép tạo ra chuyển động và tương tác giữa các đối tượng, mang đến trải nghiệm chân thực và sống động Việc thể hiện thành công kỹ thuật tạo chuyển động trong VR giúp người dùng khám phá thế giới ảo, từ đó tạo ra giá trị thực cho cuộc sống Tuy nhiên, việc mô phỏng hành vi và trạng thái của đối tượng trong thế giới thực vẫn là một thách thức lớn.
1.2.2 Cơ sở lý thuyết của tạo chuyển động
Cơ sở lý thuyết của việc tạo chuyển động trong VR dựa vào các đặc tính quan trọng của nó Việc điều khiển mô hình và tạo chuyển động cho đối tượng là yếu tố then chốt, ảnh hưởng lớn đến chất lượng hệ thống Để đảm bảo những đặc tính trong VR, cần hiểu rõ ba đặc tính chính của nó, từ đó tạo nền tảng vững chắc cho việc phát triển chuyển động trong môi trường ảo.
Hình 1 21 Ba đặc tính trong VR
Công nghệ VR sử dụng hệ thống mô phỏng đồ họa máy tính để đưa người dùng vào một thế giới 3 chiều sống động và nhân tạo Thế giới này không chỉ tĩnh lặng mà còn phản ứng và thay đổi linh hoạt dựa trên các tín hiệu đầu vào từ người sử dụng, như hành động và lời nói.
Một trong những đặc điểm nổi bật của công nghệ VR là tính tương tác theo thời gian thực, cho phép máy tính nhận diện tín hiệu từ người dùng và điều chỉnh ngay lập tức thế giới ảo Điều này giúp người sử dụng thấy được sự thay đổi trên màn hình ngay theo ý muốn của họ, tạo ra sự thu hút mạnh mẽ từ các mô phỏng sống động.
Có hai khía cạnh của tính tương tác trong một thế giới ảo đó là: sự du hành bên trong thế giới và động lực học của môi trường
Sự du hành trong môi trường ảo cho phép người dùng di chuyển độc lập như trong thế giới thực Các nhà phát triển phần mềm có thể thiết lập các quy định truy cập vào các khu vực ảo, mang lại nhiều mức độ tự do cho người sử dụng, từ việc bay, xuyên tường đến bơi lặn Một khía cạnh quan trọng khác của sự du hành là kiểm soát điểm nhìn, cho phép người dùng theo dõi bản thân từ xa, quan sát cảnh vật qua đôi mắt của người khác hoặc khám phá thiết kế của một cao ốc mới như thể đang ngồi trong một chiếc ghế đẩy.
Động lực học của môi trường quy định cách mà con người, vật thể và các yếu tố khác tương tác để trao đổi năng lượng và thông tin Mỗi đối tượng cùng mối quan hệ của nó với những đối tượng khác đóng vai trò quan trọng trong quá trình thiết kế, được xem xét cẩn thận bởi các nhà phát triển.
Tính đắm chìm (Immersion) là đặc tính chính thứ hai của VR, mang đến cảm giác tập trung cao độ và ngăn chặn sự xao nhãng Người dùng cảm thấy mình hòa nhập vào thế giới ảo, nơi họ không chỉ nhìn thấy mà còn có thể tương tác với các đối tượng đồ họa 3D như trong game Công nghệ VR hiện tại cho phép người dùng không chỉ nhìn và nghe mà còn sờ và cảm nhận các đối tượng như thật Mặc dù nhiều nhà nghiên cứu đang tìm cách phát triển các cảm giác như ngửi và nếm trong VR, nhưng chúng vẫn chưa được sử dụng rộng rãi.
Hai đặc tính chính của VR là Tương tác (Interactive) và Đắm chìm (Immersion), nhưng còn một đặc tính quan trọng khác thường bị bỏ qua, đó là Tưởng tượng (Imagination) VR không chỉ đơn thuần là hệ thống tương tác Người - Máy tính, mà còn liên quan đến việc giải quyết các vấn đề thực tế trong nhiều lĩnh vực như kỹ thuật, y học và quân sự Các ứng dụng VR do các nhà phát triển thiết kế, phụ thuộc rất nhiều vào khả năng tưởng tượng của con người, tạo nên giá trị thực sự của công nghệ này.
Do đó có thể coi VR là tổng hợp của 3 yếu tố: Tương tác - Đắm chìm
Chuyển động theo các thời điểm chính (Keyframe Animation)
Kỹ thuật phổ biến nhất trong việc thiết lập chuyển động của đối tượng là sử dụng các thao tác dịch chuyển và xoay tại những thời điểm nhất định Chuyển động của đối tượng sẽ được nội suy từ các mốc chính này.
Hình 2 1 Mô tả chuyển động theo các thời điểm chính
Phương pháp keyframe là một kỹ thuật quan trọng trong việc tạo hình ảnh động, cho phép dàn dựng các đối tượng tại những vị trí khác nhau và lưu lại những trạng thái quan trọng thành các key Những thời điểm này trở thành các điểm cố định trong thời gian, giúp đối tượng chuyển động một cách mượt mà qua các sự kiện đã được lập trình trước.
Hoạt hình được tạo ra từ chuỗi hình ảnh tĩnh được thay đổi nhanh chóng, khiến người xem cảm nhận như là một chuyển động liên tục Điều này tận dụng tính bền bỉ của thị lực, khi mắt chúng ta có khả năng phát hiện chuyển động nhưng lại có giới hạn trong việc nhận diện sự thay đổi nhanh chóng Vào thế kỷ XIX, nhiều đồ chơi đã được phát minh dựa trên nguyên tắc này, cho thấy rằng khi chiếu một loạt hình ảnh tĩnh với tốc độ đủ nhanh, chúng ta sẽ thấy một cảnh chuyển động Các thiết bị đầu tiên như 'Zoetropes' và 'Praxinoscopes' đã ra đời từ khám phá này.
Zoetrope là một thiết bị hình trụ ngắn và rộng, có các khe hở ở vòng ngoài Bên trong hình trụ, một dải hình ảnh được sắp xếp để tạo ra hiệu ứng chuyển động khi hình trụ quay quanh trục trung tâm Người xem có thể quan sát các hình ảnh chuyển động qua các khe hở này.
Khi quan sát bên trong hình trụ qua một khe, người xem không thấy dải hình ảnh như một vệt mờ mà nhìn thấy một chuỗi ảnh tĩnh liên tiếp Các hình ảnh này xuất hiện thay đổi từ hình ảnh này sang hình ảnh khác khi hình trụ quay, nhờ vào các khe ngăn cản chuyển động quay Điều này giúp người xem không cảm nhận được sự dao động của hình ảnh mà thay vào đó, họ thấy hình ảnh đầu tiên chuyển thành hình ảnh thứ hai Sự thay đổi nhanh chóng của các hình ảnh mang lại cảm giác chuyển động cho người xem.
Praxinoscope (Đèn lăng kính ảo) sử dụng gương để tạo ra hiệu ứng chuyển động ấn tượng Người xem chỉ có thể quan sát các hình ảnh khi chúng phản chiếu qua gương, tạo ra ảo giác hình ảnh không ngừng biến đổi Kết quả là những hình ảnh này mang lại cảm giác chuyển động sống động và hấp dẫn.
Cửa hiệu đồ chơi tại tiểu bang Victoria đã đóng góp vào sự phát triển của điện ảnh bằng cách tạo ra ảo giác chuyển động thông qua việc chiếu 24 hình ảnh riêng biệt mỗi giây Chuỗi hình ảnh này được trình chiếu theo thứ tự, với khoảng tĩnh 1/50 giây giữa các khung hình Màn trập sẽ chặn ánh sáng trong khi bộ phim được chiếu từ cửa tĩnh, giữ lại từng khung hình Khi bộ phim tạm dừng, màn trập cho phép ánh sáng chiếu qua celluloid Nếu tốc độ chập chờn của ánh sáng dưới 12 lần mỗi giây, hầu hết người xem sẽ nhận thấy điều này Những bộ phim đầu tiên được quay với chỉ số khung hình thấp, tạo nên nền tảng cho ngành điện ảnh hiện đại.
Phim được chiếu bằng phương pháp thủ công, với người điều khiển máy chiếu phải quay tay để phát phim Nếu người điều khiển không xử lý kịp thời, phim sẽ bị chập chờn, dẫn đến hiện tượng gọi là 'flicks' Khi âm thanh được lồng ghép vào phim, tỷ lệ hình ảnh trên giây của các bộ phim câm đã được cải thiện Âm thanh được ghi lại quang học dưới dạng sóng, và để điều chỉnh giọng nói, sóng này cần có nhiều đỉnh và đáy trong không gian ngắn Vào cuối những năm 1920, tốc độ khung hình tối ưu được xác định là 24 fps, mặc dù cảm giác chuyển động bắt đầu từ khoảng 8 fps và trở nên mượt mà hơn đến khoảng 50 fps.
Trong ngành công nghiệp truyền hình, tỷ lệ khung hình ảnh hưởng lớn đến trải nghiệm người xem, với hệ PAL sử dụng 25 hình mỗi giây và NTSC tại Mỹ là 30 hình mỗi giây Khi chuyển đổi phim từ 24 hình/giây sang 30 hình/giây, cần thiết bị chuyên dụng để đảm bảo chất lượng hình ảnh Đối với sản xuất hình ảnh động, mục tiêu của chúng tôi là đạt 25 hình mỗi giây, cho phép tạo ra 25 vị trí mới cho mô hình mỗi giây Việc lưu trữ dữ liệu cho các nhân vật phức tạp với nhiều đoạn và vị trí đòi hỏi một lượng lớn công việc Chúng tôi đang phát triển một hệ thống để lưu giữ các khoảnh khắc quan trọng và xác định vị trí mô hình trong khung hình Trong các chương tiếp theo, chúng tôi sẽ hướng dẫn cách trích xuất dữ liệu khung hình chính từ Lightwave và xử lý dữ liệu trong ứng dụng của chúng tôi, cũng như cách tạo ra hình ảnh động bằng phần mềm Toon3D Creator và các mẫu mô hình có sẵn.
Làm thế nào để lưu trữ các dữ liệu ảnh động?
Để tạo hiệu ứng vị trí, quy mô và phương hướng của một đối tượng, chúng ta cần xác định vị trí thông qua ba giá trị vô hướng x, y, z Quy mô của đối tượng được xác định bởi ba giá trị sx, sy và sz tương ứng với các trục x, y và z Phương hướng có thể được lưu trữ bằng nhiều cách khác nhau, bao gồm các góc Euler, trục góc hoặc hệ tọa độ không gian 4 chiều.
Khi phương hướng được xác định qua các góc Euler, giá trị vô hướng giữ vai trò quan trọng trong việc duy trì chuyển động quay của đối tượng trên các trục x, y và z Cụ thể, góc heading (h) được sử dụng để xác định chuyển động quay ở trục y, góc pitch (p) cho trục x, và góc bank (b) cho trục z Như đã đề cập trong Chương 1, góc Euler chỉ mô tả một hướng duy nhất khi biết thứ tự số vòng thực hiện.
Sự quay của góc Euler gặp phải hạn chế rõ ràng, đó là hiện tượng gimbal lock, khi mất một bậc tự do trong không gian 3 chiều do hai trong ba trục trùng nhau hoặc song song Khi thực hiện thứ tự chuyển động quay là HPB, vấn đề có thể xảy ra khi góc pitch quay 90 độ, gây ảnh hưởng đến chuyển động tổng thể.
Việc ánh xạ trục z lên trục y trong quá trình quay gây ra sự nhầm lẫn giữa chuyển động quay của góc heading và góc bank, điều này thường khiến những người làm ảnh động cảm thấy bực bội Trong 5 năm qua, công ty của tôi đã sử dụng Lightwave cho ảnh động, và phiên bản 5.6 sử dụng góc Euler để lưu trữ và nội suy phương hướng Tuy nhiên, các nghệ sĩ có thể gặp khó khăn khi định hướng nhân vật theo ý muốn, đặc biệt là khi đối mặt với vấn đề gimbal lock, dẫn đến mất một bậc tự do trong không gian 3 chiều May mắn thay, phiên bản 6+ của phần mềm Newtek đã giúp khắc phục vấn đề phiền toái này.
Khi xác định phương hướng là trục góc, bốn giá trị vô hướng được sử dụng, trong đó ba giá trị mô tả vector của trục quay và giá trị thứ tư chỉ định góc quay quanh trục đó Phương pháp này có lợi thế không làm mất một bậc tự do trong không gian ba chiều Cuối cùng, việc áp dụng hệ tọa độ không gian bốn chiều đã trở thành lựa chọn phổ biến cho việc nội suy phương hướng trong nhiều trò chơi máy tính, nhờ vào khả năng tính toán hiệu quả và kết quả hài lòng.
Để kiểm soát hiệu quả các hình ảnh động, chúng ta cần lưu trữ thời gian cho từng kênh của vị trí, quy mô và phương hướng riêng biệt Việc này đảm bảo rằng nội suy giữa các kênh không bị ảnh hưởng lẫn nhau Ví dụ, nếu vị trí x di chuyển trong 2 giây trong khi đối tượng quay phức tạp với các phím ở 1/3 giây, việc lưu trữ tất cả kênh với một giá trị quan trọng sẽ làm khó khăn cho việc tạo ra chuyển động mượt mà Sử dụng hai phím cho chuyển động x sẽ hiệu quả hơn so với việc tạo ra sáu khung hình chính, giúp đảm bảo chuyển động trơn tru hơn.
Nội suy bởi Khung hình và thời gian
Chuyển động theo đường cong xác định trước (Path Animation)
Kỹ thuật này cho phép một hay nhiều đối tƣợng chuyển động theo một đường cong đã được xác định trước trong không gian
Theo phương pháp này một đường cong sẽ được vẽ ra, sau đó đối tượng sẽ được khoá với đường cong và chuyển động trên nó
Hình 2 5 Mô tả chuyển động theo đường cong xác định trước
Chúng ta có thể điều chỉnh quỹ đạo đường cong thông qua các điểm quan trọng được gọi là quỹ đạo Handles, được thể hiện bằng những ô vuông màu xanh nhỏ trên đường cong Đường màu xám đại diện cho quỹ đạo đường cong, và số lượng các điểm này có thể được thêm vào hoặc bớt đi tùy theo cách bạn muốn điều chỉnh quỹ đạo Trong quá trình chuyển động, bạn có thể nhận thấy rằng "quỹ đạo này không "
Bạn có thể dễ dàng điều chỉnh quỹ đạo của một đối tượng bằng cách di chuyển con trỏ lên các Handles Chỉ cần nhấp chuột và kéo để thay đổi vị trí mong muốn, quỹ đạo đường cong sẽ tự động thay đổi theo Đây là một công cụ hữu ích giúp bạn kiểm soát chuyển động chính xác của đối tượng gắn trên đường đã xác định trước.
Để tạo cảm giác chân thực trong việc tính toán vận tốc và thời gian, bạn cần xác định vận tốc cơ sở của đối tượng Ví dụ, khi một ô tô di chuyển qua bãi đậu xe với vận tốc đã được chỉ định và dừng lại tại vị trí chính xác, bạn sẽ có cảm giác thuyết phục về tốc độ và thời gian Do đó, việc nắm bắt thông tin cần thiết là rất quan trọng.
Xác lập tốc độ cho đối tƣợng
Xác lập hướng cho đối tượng
Thao tác xoay cho đối tƣợng
Xác định thời gian Bắt đầu (Start Time), Thời gian Kết thúc (End Time) hoặc tổng chiều dài (Length) cho chuyển động của đối tượng là rất quan trọng Các giá trị này có mối liên hệ chặt chẽ với nhau, vì vậy khi thiết lập một thuộc tính, các thuộc tính khác sẽ tự động điều chỉnh theo.
Phương pháp này rất hiệu quả đối với lớp đối tượng chuyển động có quỹ đạo và ít biến dạng bề mặt trong quá trình chuyển động [2], [4], [5].
Chuyển động không tuyến tính với đoạn (Non linear Animation With
Các đoạn chuyển động được hình thành qua nhiều phương pháp khác nhau và có thể được sắp xếp theo trình tự thời gian hoặc không Những đoạn này khi kết hợp lại sẽ tạo nên toàn cảnh chuyển động của đối tượng.
Chuyển động theo sự ràng buộc giữa các thuộc tính (Set Driven Key)
Khi nhiều đối tượng cùng tham gia chuyển động, phương pháp này trở nên phức tạp hơn Nó cho phép thiết lập mối liên hệ giữa các thuộc tính chuyển động của những đối tượng khác nhau.
Việc thiết lập mối liên kết giữa các thuộc tính chuyển động của đối tượng là rất linh hoạt, cho phép lập trình viên sáng tạo theo ý muốn hoặc đáp ứng theo yêu cầu cụ thể của bài toán.
Khi thiết lập chuyển động cho hai võ sĩ thi đấu, một người tấn công có thể buộc người còn lại phải phản ứng bằng cách phòng thủ theo hướng x hoặc thực hiện phản công theo hướng y.
Hình 2 6 Mô tả chuyển động theo sự ràng buộc giữa các thuộc tính
Khi thiết lập mối ràng buộc giữa các thuộc tính, cần tuân thủ các nguyên tắc đúng đắn để đảm bảo tính hợp lý trong chuyển động Ví dụ, khi xe chuyển động ngoặt sang trái, người ngồi trên xe phải nghiêng về phía bên phải để tạo sự chân thực Tương tự, khi một người đi vào phòng, cánh cửa tự động mở ra và khép lại, thể hiện sự tương tác tự nhiên giữa các đối tượng trong mô hình.
48 giả sử người di chuyển theo hướng x, cửa mở theo hướng y, hai thuộc tính x, y sẽ đƣợc ràng buộc với nhau [16], [20].
Phân loại đối tượng dưới góc độ chuyển động
Thực tế người ta phân đối tượng làm 2 loại: đối tượng có xương và đối tượng không có xương [4 ], [17], [19]
Một cách tổng quan xương là khung của một đối tượng, phần giữ cấu trúc và gây ra điều khiển chuyển động cho đối tƣợng
Một cách cụ thể xương ở đây được hiểu theo nghĩa thông thường, ví dụ như xương người, xương động vật,…
Hình 2 7 Tạo xương cho khủng long
Lớp đối tượng có xương
Lớp đối tượng có xương bao gồm động vật và một số đối tượng phi động vật có khả năng thể hiện hành vi giống như động vật, chẳng hạn như rôbốt và các phương tiện vận chuyển.
Để điều khiển và tạo chuyển động cho mô hình có xương, việc tạo xương cho đối tượng là cần thiết Có hai phương pháp chính để thực hiện điều này: sử dụng các khớp nối hoặc áp dụng khung có sẵn.
- Sử dụng các khớp nối:
Việc sử dụng các khớp nối giúp tạo ra xương cho bất kỳ đối tượng nào Cụ thể, quá trình này hỗ trợ hình thành xương thông qua các khớp xương Khi các khớp được đặt ở vị trí mong muốn, một đoạn xương tự động hình thành giữa hai khớp, trông giống như xương thật trong tự nhiên.
Các điểm cần quan tâm khi tạo xương:
Phải hiểu được cấu trúc xương trong thực tế bao gồm các khớp xương, sự phân bố các khớp
Phải xác định rõ ràng các mục đích chuyển động của đối tƣợng
Ba loại khớp xương quan trọng: gốc, cha và con
Khớp gốc, hay còn gọi là gốc của xương, là một khái niệm quan trọng trong mô hình 3D để điều khiển đối tượng Mặc dù trong cơ thể động vật không tồn tại khái niệm khớp xương gốc, nhưng công cụ 3D sử dụng khái niệm này để giúp di chuyển toàn bộ đối tượng một cách linh hoạt.
Khớp cha: thấp hơn khớp gốc Nếu ta điều khiển khớp cha thì sẽ gây ra chuyển động của các khớp khác
Khớp con hoạt động dưới sự điều khiển của các khớp khác, được gọi là khớp cha Điều này có nghĩa là chuyển động của khớp con không chỉ chịu ảnh hưởng trực tiếp từ lực tác động vào nó, mà còn bị tác động gián tiếp từ các khớp khác.
Hình 2 8 Mô hình khung xương người
Các khớp trong cơ thể, ngoại trừ khớp gốc và các khớp ở ngoài cùng, đều có vai trò vừa là khớp cha vừa là khớp con Bộ khung xương hoàn chỉnh hình thành một cấu trúc thứ tự dạng cây, thể hiện mối quan hệ gốc-cành và cha-con.
Khi tạo khung xương cho đối tượng ta cần xác định điểm khớp gốc
Việc xác định khớp gốc không tuân theo một quy tắc cố định nào, do sự đa dạng và phong phú của các đối tượng trong mô hình hóa Mỗi đối tượng đều có cấu trúc và đặc điểm chuyển động riêng, vì vậy việc xác định khớp gốc cần dựa vào yêu cầu cụ thể của từng trường hợp.
- Sử dụng khung có sẵn:
Khi tạo xương cho người hoặc động vật, việc sử dụng khung xương có sẵn giúp quá trình này diễn ra nhanh chóng hơn Ngoài ra, có thể bổ sung các đốt xương, chẳng hạn như thêm xương đuôi vào mô hình động vật, để hoàn thiện cấu trúc xương.
2.5.2 Đối tượng không có xương
Đối tượng không có xương, như tàu, thuyền và máy bay, thường ít biến dạng khi di chuyển Tuy nhiên, một số đối tượng có thể biến dạng theo quy luật, như quả bóng với sự nén hoặc giãn Để tạo chuyển động hiệu quả cho những đối tượng này, phương pháp tối ưu là thực hiện theo các thời điểm chính, di chuyển theo đường cong đã xác định trước, hoặc sử dụng chuyển động không tuyến tính.
Hỗ trợ tạo chuyển động áp dụng cho đối tượng có xương
Khi một đối tượng hoặc tổ hợp các đối tượng di chuyển, chúng ta có thể đơn giản hóa việc xử lý bằng cách kết nối các thành phần của chúng theo liên kết phả hệ hoặc thành một chuỗi.
Liên kết phả hệ là mối quan hệ giữa các đối tượng, tạo thành cấu trúc cha-con và anh-em Nhờ vào liên kết này, chúng ta có thể xây dựng các mối quan hệ phức tạp Đối tượng cha điều khiển các đối tượng con, và chuyển động của nó ảnh hưởng đến tất cả các đối tượng thuộc lớp con Đồng thời, đối tượng cha cũng chịu ảnh hưởng từ các đối tượng ở cấp bậc cao hơn Một đối tượng có thể vừa là con của đối tượng này, vừa là cha của đối tượng khác trong hệ thống phân cấp Đối tượng không có cha là đối tượng ở vị trí cao nhất trong cấu trúc, được gọi là gốc.
Khi một đối tượng chuyển động, nó có thể tác động đến một số hoặc tất cả các đối tượng khác trong chuỗi liên kết, khiến cho các đối tượng bị ảnh hưởng cũng di chuyển theo Trong trường hợp không có con, đối tượng ở vị trí thấp nhất sẽ đóng vai trò như một lá.
Kinematics là thuật ngữ mô tả chuyển động của chuỗi đối tượng trong một hệ thống Có hai loại điều khiển chính: điều khiển tiến (forward kinematics - FK), trong đó tác động lên thành phần cao nhất của hệ để tạo ra chuyển động cho đối tượng, và điều khiển ngược (inverse kinematics - IK), nơi tác động vào thành phần thấp nhất để điều chỉnh chuyển động cho toàn bộ chuỗi.
2.6.1 Sử dụng điều khiển ngƣợc IK (Inverse kinematics)
Thêm các điều khiển inverse kinematics (IK) cho các vùng điều khiển tương ứng giúp tối ưu hóa chuyển động của mô hình Mỗi IK bao gồm hai đầu: một đầu cố định và một đầu điều khiển chuyển động Sự xoay của các khớp xương được tự động tính toán bởi bộ điều khiển IK (IK solver), cho phép xác định sự xoay của từng khớp trong khoảng gốc và đỉnh IK theo cấu trúc con-cha của khung xương Điều khiển ngược IK rất hữu ích cho các mô hình có hai chân, bốn chân hoặc mô hình máy.
Hình ảnh điều khiển Inverse Kinematics (IK) cho một nhánh xương là một công cụ quan trọng trong các ứng dụng thời gian thực, nơi các hành động của nhân vật thường được lập trình trước khi ứng dụng chạy Việc chọn lựa hành động phù hợp cho từng giai đoạn trong ứng dụng thực tại ảo giúp tối ưu hóa trải nghiệm người dùng Tuy nhiên, khi nhân vật cần thực hiện nhiều thao tác hơn những gì đã được lập trình sẵn, IK cung cấp giải pháp hiệu quả bằng cách xác định vị trí cuối cùng của hành động dựa trên không gian địa phương Điều này cho phép lập trình định hướng cho các bộ phận cơ thể như tay, cẳng tay, và thân Nếu một nhân vật thực hiện hành động ngã trên sàn phẳng nhưng môi trường có địa hình không bằng phẳng, IK có thể được sử dụng để phát hiện va chạm, đảm bảo rằng vị trí cuối cùng của nhân vật vẫn nằm trong không gian ảo.
Trong phần này, chúng ta sẽ khám phá cách sử dụng Inverse Kinematics (IK) để xây dựng và phát triển hành động của nhân vật Đầu tiên, chúng ta sẽ xác định hướng cho một liên kết IK đơn, sau đó là liên kết IK đôi Tiếp theo, chúng ta sẽ giải quyết các vấn đề liên quan đến việc tính toán vị trí của một chuỗi IK với nhiều hơn hai liên kết Từ những vấn đề này, chúng ta sẽ tìm hiểu các giải pháp lặp đi lặp lại hoặc giải pháp số để tìm ra các giải pháp IK cho dây chuyền với nhiều hơn hai liên kết Cuối cùng, chúng ta sẽ xem xét các phương pháp để tối ưu hóa quá trình này.
Kết hợp phương pháp Inverse Kinematics (IK) với những tiến bộ trong chuyển động học cho phép lưu trữ các hành động trước đó, từ đó sử dụng chúng một cách hiệu quả cùng với các giải pháp IK.
- Dùng IK cho việc xây dựng và phát triển các mô hình nhân vật nhƣ thế nào?
Nguyên tắc của phương pháp Inverse Kinematics (IK) nhằm giải quyết vấn đề chuyển động bằng cách xác định vị trí trong không gian ảo và điểm kết thúc của chuỗi liên kết, từ đó xác định các phép quay cần thiết để đạt được mục tiêu Phương pháp này chủ yếu được phát triển từ nghiên cứu về robot, đặc biệt là trong ngành công nghiệp ô tô, nơi cánh tay robot thực hiện các công việc lặp đi lặp lại, như hàn điểm, với độ chính xác cao Trong các ứng dụng thực tại ảo, hành động của nhân vật cũng cần được lặp lại nhiều lần và có sự ràng buộc về không gian và thời gian Ví dụ, khi xây dựng chuyển động cho cánh tay nhân vật, một đầu cánh tay gắn cố định với cơ thể (khớp vai), trong khi các khớp khác như khớp khuỷu tay, cổ tay và ngón tay có thể di chuyển và xoay theo các hướng khác nhau Do đó, IK là giải pháp lý tưởng cho việc tạo ra chuyển động tự nhiên và chính xác trong các ứng dụng này.
Hình 2 10 Sử dụng một giải pháp IK để làm cho bàn tay của một nhân vật đạt đƣợc một mục tiêu
- Tính toán hướng cho một chuổi liên kết IK đơn
Trước khi khám phá các giải pháp phức tạp, chúng ta sẽ bắt đầu với trường hợp đơn giản nhất: một chuỗi IK với một liên kết duy nhất Trong phiên bản 2D của bài toán này, vị trí mục tiêu được đánh dấu bằng dấu chữ thập như thể hiện trong hình 1.16.
Hình 2 11 Một liên kết IK đơn
Chúng ta có một đối tượng liên kết duy nhất mà cần định hướng về phía dấu chữ thập Để thực hiện điều này, ta chỉ cần tính toán giá trị và góc quay, đây là một bài tập lượng giác đơn giản Khoảng cách x từ đối tượng đến mục tiêu có thể xác định, và khoảng cách y cũng được tính toán tương tự Tỉ số giữa khoảng cách y và x chính là tang của góc θ, do đó, các giải pháp đơn giản được tìm thấy thông qua việc tính toán nghịch đảo.
56 của các tiếp tuyến của khoảng cách y chia cho khoảng cách x Giải pháp đơn giản cho vấn đề này đƣợc biểu diễn bởi công thức:
- Tính định hướng cho một chuỗi liên kết đôi IK
Việc thêm một liên kết đơn vào hệ thống làm cho vấn đề trở nên phức tạp hơn Hình 1.17 minh họa cách tính toán cả hai giá trị một cách hiệu quả.
Một liên kết đôi IK có thể xác định vị trí của mục tiêu nếu chúng ta biết chiều dài của mỗi liên kết (Length1 và Length2).
Target.x Pivot1.x Length1* cos ( ) Length2 * cos ( )
Target.y Pivot1.x Length1*sin ( ) Length2 *sin ( )
Mục tiêu của bài viết này là đảo ngược phương trình và thể hiện các giá trị thông qua những giá trị đã biết Giả sử điểm mấu chốt (pivot) của liên kết không chuyển động đầu tiên được giữ cố định, giá trị của Pivot1 đã được xác định Chúng ta sẽ áp dụng các công thức lượng giác để tính toán, trong đó có công thức cos(θ1 + θ2) = cos(θ1)cos(θ2) – sin(θ1)sin(θ2) và sin(θ1 + θ2) = cos(θ1)sin(θ2) + sin(θ1)cos(θ2).
Chúng ta có thể xác định lại các phương trình ở (4) như sau:
Target Pivot1 Length1* cos ( ) Length2* (cos ( )cos ( ) – sin( )sin ( ))
Target Pivot1 Length1*sin ( ) Length2* (cos ( )sin ( ) sin( )cos ( )) x x y x
- Hạn chế của các phương pháp nhiều liên kết IK
Hình 2.6 minh họa hai phương pháp hợp lệ để đạt được định hướng cần thiết cho mục tiêu, vấn đề này liên quan đến việc áp dụng phương trình bậc hai trong các giải pháp.