69 Trang 10 LỜI MỞ ĐẦU Cùng với sự phát triển của công nghệ đồ họa, trong đó công nghệ thực tại ảo đã góp phần vào tạo ra nhiều ứng dụng trong các lĩnh vực của đời sống, gắn vào các sả
ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG DƯƠNG ĐỨC VƯƠNG NGHIÊN CỨU KỸ THUẬT ĐIỀU KHIỂN NHÂN VẬT TỰ ĐỘNG VÀ ỨNG DỤNG LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Thái Nguyên, năm 2023 ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG DƯƠNG ĐỨC VƯƠNG NGHIÊN CỨU KỸ THUẬT ĐIỀU KHIỂN NHÂN VẬT TỰ ĐỘNG VÀ ỨNG DỤNG Chuyên ngành: Khoa học máy tính Mã số: 8480101 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH NGƯỜI HƯỚNG DẪN KHOA HỌC PGS.TS NGUYỄN VĂN HUÂN Thái Nguyên, năm 2023 LỜI CAM ĐOAN Tơi xin cam đoan tồn nội dung luận văn tự sưu tầm, tra cứu xếp cho phù hợp với nội dung yêu cầu đề tài Nội dung luận văn chưa công bố hay xuất hình thức khơng chép từ cơng trình nghiên cứu Tất phần mã nguồn chương trình tơi tự thiết kế xây dựng, có sử dụng số thư viện chuẩn thuật toán tác giả xuất cơng khai miễn phí Nếu sai tơi xin hồn toàn chịu trách nhiệm Thái Nguyên, ngày tháng năm 2023 Người cam đoan Dương Đức Vương i LỜI CẢM ƠN Trước hết xin gửi lời cảm ơn sâu sắc đến Thầy hướng dẫn khoa học PGS.TS Nguyên Văn Huân dẫn khoa học, định hướng nghiên cứu tận tình hướng dẫn tơi suốt q trình làm luận văn Tôi xin cảm ơn Thầy Cô giáo Khoa Công nghệ thông tin, Thầy Cô giáo trường Đại học Công nghệ thông tin Truyền thông – Đại học Thái Nguyên cung cấp cho kiến thức vô quý báu cần thiết suốt thời gian học tập trường để tơi thực hồn thành tốt luận văn Với thời gian nghiên cứu hạn chế, ngơn ngữ cịn khiêm tốn, luận văn khơng tránh khỏi thiếu sót, tơi mong nhận ý kiến đóng góp chân thành từ Thầy Cơ giáo, đồng nghiệp bạn bè Cuối cùng, xin cảm ơn gia đình bạn bè, người ủng hộ động viên tôi, giúp yên tâm có tâm lý thuận lợi để tơi nghiên cứu luận văn Tuy nhiên giới hạn mặt thời gian kiến thức nên luận văn chắn khơng tránh khỏi sai sót ngồi ý muốn Tôi mong nhận thông cảm đóng góp ý kiến Thầy Cơ giáo, đồng nghiệp bạn bè HỌC VIÊN Dương Đức Vương ii MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii MỤC LỤC iii DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT v DANH MỤC CÁC HÌNH VẼ vi LỜI MỞ ĐẦU CHƯƠNG 1: TỔNG QUAN VỀ ĐIỀU KHIỂN NHÂN VẬT CHUYỂN ĐỘNG 1.1 Các khái niệm 1.1.1 Thực ảo 1.1.2 Một số lĩnh vực ứng dụng thực ảo 1.2 Lý thuyết nguyên tắc chuyển động nhân vật 1.2.1 Vai trò việc tạo chuyển động 1.2.2 Cơ sở lý thuyết tạo chuyển động 1.2.3 Một số toán chuyển động 11 1.3 Bài toán điều khiển nhân vật chuyển động ứng dụng 14 1.4 Giới thiệu công cụ ngôn ngữ lập trình 14 1.4.1 Công cụ Unity 3D 14 1.4.2 Tổng quan ngơn ngữ lập trình C# 15 1.5 Tiểu kết chương 16 CHƯƠNG 2: CÁC THUẬT TỐN THƠNG DỤNG ĐIỀU KHIỂN CHUYỂN ĐỘNG NHÂN VẬT 17 2.1 Cơ sở tốn học mơ chuyển động không gian 3D 17 2.1.1 Phép tịnh tiến 17 2.1.2 Phép quay 17 2.1.3 Phép tỉ lệ 22 2.1.4 Phép đối xứng 22 2.2 Lập trình khởi tạo mơ hình nhân vật 3D vào không gian 3D 23 iii 2.3 Kỹ thuật gán xương cho phận nhân vật 3D 26 2.4 Thuật toán điều khiển dịch chuyển tiến nhân vật FK 28 2.5 Thuật toán điều khiển dịch chuyển lùi nhân vật IK 31 2.5.1 HI (History-Independent) solver 40 2.5.2 HD (History Dependent) Solver 41 2.5.3 IK Limb Solver 42 2.5.4 SplineIK Solver 42 2.6 Một số kỹ thuật bổ trợ mô nhân vật chuyển động 45 2.6.1 Chuyển động theo thời điểm (Keyframe Animation) 46 2.6.2 Kỹ thuật điều khiển theo đường path 55 2.7 Tiểu kết chương 57 CHƯƠNG 3: CÀI ĐẶT CHƯƠNG TRÌNH THỬ NGHIỆM 58 3.1 Giới thiệu toán 58 3.2 Yêu cầu thực nghiệm, ứng dụng 59 3.2.1 Yêu cầu với thực nghiệm 59 3.2.2 Kiểm tra mơ hình đầu vào 60 3.3 Quy trình xây dựng mơ chuyển động nhân vật tự động 62 3.3.1 Giai đoạn 1: Pre-production (Tiền sản xuất) 62 3.3.2 Giai đoạn 2: Production (Giai đoạn sản xuất) 64 3.3.3 Phần 3: Post-production (Giai đoạn hậu kỳ) 66 3.4 Thiết kế giao diện phần mềm đồ họa nhân vật chuyển động 66 3.5 Một số kết thực nghiệm 68 3.5.1 Hướng dẫn cài đặt, sử dụng chương trình 68 3.5.2 Kết thực nghiệm 69 3.6 Nhận xét, đánh giá thử nghiệm chương trình 71 KẾT LUẬN 74 TÀI LIỆU THAM KHẢO 76 iv DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT STT Ký hiệu/ Chữ viết tắt VR Virtual Reality Thực ảo 3D Dimentional Chiều FK Forward kinematics Điều khiển tiến IK Inverse kinematics Điều khiển ngược HD History - Dependent Lược sử phụ thuộc Viết đầy đủ v Ý nghĩa DANH MỤC CÁC HÌNH VẼ Hình 1.1 Ứng dụng Thực ảo thiết kế nội thất Hình 1.2 Ứng dụng Thực ảo thiết kế xe Hình 1.3 Ứng dụng Thực ảo game giải trí Hình 1.4 Ứng dụng Thực ảo phim Avatar Hình 1.5 Mơ lái xe cabin ảo Hình 1.6 Mơ phẫu thuật thực ảo Hình 1.7 Ba đặc tính VR Hình 1.8 Hành động sút bóng nhân vật 12 Hình 1.9 Hành động nhảy dù nhân vật 12 Hình 1.10 Chuyển động theo đường cong nhân vật ném trái bóng 13 Hình 1.11 Một số frame bước nhảy nhân vật 13 Hình 2.1 Phép tịnh tiến 17 Hình 2.2 Phép quay chiều dương, trục quay ox, nhìn hướng âm trục ox 18 Hình 2.3 Phép quay quanh trục 20 Hình 2.4 Véc tơ u trục oz 21 Hình 2.5 Độ lớn góc α 21 Hình 2.6 Tạo xương cho nhân vật 26 Hình 2.7 Mơ hình khung xương nhân vật 27 Hình 2.8 Mơ tả tham số Denavit-Hartenberg 29 Hình 2.9 Sử dụng điều khiển FK để tạo chuyển động cho chân, tay thao tác 31 Hình 2.10 Tư tạo chuyển động cho chân, tay thao tác cho nhân vật 32 Hình 2.11 Sử dụng giải pháp IK để làm cho bàn tay nhân vật 34 Hình 2.12 Một liên kết IK đơn 34 Hình 2.13 Mơt liên kết đơi IK 35 Hình 2.14 Một IK có nhiều giải pháp 36 Hình 2.15 Xoay liên kết sử dụng kỹ thuật Phối hợp Descent Cylic cho IK 37 vi Hình 2.16 Quay liên kết trung gian sử dụng kỹ thuật Phối hợp 38 Hình 2.17 Hệ thống xương ứng dụng xử lý HI solver 41 Hình 2.18 Xác định chốt chuỗi xương 43 Hình 2.19 Mơ tả chuyển động theo thời điểm 46 Hình 2.20 Nội suy tuyến tính cho Keyframe theo thời gian 49 Hình 2.21 Nội suy bậc hai cho Keyframe 50 Hình 2.22 Mơ tả chuyển động theo đường cong xác định trước 56 Hình 2.23 Đường path tham quan tự động 56 Hình 2.24 Đường path tham quan tự động bên bảo tàng 56 Hình 3.1 Hình ảnh mơ tả tư thế, cử chỉ, hành động nhân vật 61 Hình 3.2 Các tư khác nhân vật 62 Hình 3.3 Mặt trước tồn thân 63 Hình 3.4 Mặt phải toàn thân 63 Hình 3.5 Các tư nhân vật tạo 65 Hình 3.7 Mơ tả quan hệ hệ thống sản phẩm thực ảo 67 Hình 3.8 Thư mục file chạy chương trình mơ 68 Hình 3.9 Giao diện khởi tạo chương trình mơ nhân vật “Dương Đức Vương”, kèm chuyển động, dịch chuyển nhân vật 69 Hình 3.10 Góc nhìn camera nhân vật 69 Hình 3.11 Mơ hình vị trí, khung cảnh khác 70 vii LỜI MỞ ĐẦU Cùng với phát triển cơng nghệ đồ họa, cơng nghệ thực ảo góp phần vào tạo nhiều ứng dụng lĩnh vực đời sống, gắn vào sản phẩm mô ứng dụng không gian ảo để hỗ trợ tham quan ảo, trải nghiệm ảo điểm tham quan, di tích lịch sử, điểm văn hóa, Với sản phẩm ứng dụng phim, game 3D hay hệ thống tái lại chiến lịch sử hay ứng dụng tham quan điểm văn hóa, có nhân vật, đối tượng người hay đối tượng có chuyển động, di chuyển theo định hướng tự động (Auto) hay điều khiển tương tác (Control) Trong luận văn thạc sỹ dự kiến, đề tài tập trung vào nghiên cứu thiết lập chế độ chuyển động, di chuyển nhân vật theo chế độ tự động Ví dụ tham quan tự động, chiến binh trò chơi game 3D, hay nhân vật ứng dụng tái lịch sử di chuyển theo chế độ tự động Vì vậy, vấn đề đặt làm để tạo dựng mô hình 3D nhân vật thiết lập chế độ mô tự động cho nhân vật để sử dụng vào ứng dụng thực ảo, khơng gian ảo Để tạo dựng mơ hình 3D nhân vật ảo cài đặt chế độ dịch chuyển, chuyển động cho nhân vật cách tự động không gian ảo, ứng dụng thực ảo di chuyển khu di tích lịch sử việc nghiên cứu kỹ thuật cho phép thiết lập chế độ chuyển động hay di chuyển tự động nhân vật tham quan không gian ảo cho giống với không gian thực theo hướng tự động quan trọng Đề tài luận văn lựa chọn “Nghiên cứu kỹ thuật điều khiển nhân vật tự động ứng dụng” vừa có ý nghĩa khoa học, vừa có ý nghĩa thực tiễn cao Đề tài sử dụng thuật toán điều khiển nhân vật theo hướng khác sử dụng ngôn ngữ lập trình Unity 3D C# (C Sharp) để cài đặt chương trình thử nghiệm Phạm vi nghiên cứu Đề tài luận văn tập trung nghiên cứu đối tượng chuyển động, di chuyển nhân vật không gian ảo theo hướng điều khiển khác Mục đích nghiên cứu