antenna projects ĐẠI HỌC BÁCH KHOA HÀ NỘI TRƯỜNG ĐIỆN ĐIỆN TỬ BÁO CÁO Bài tập môn Đa phương tiện Đề tài Video and Graphics Blender 3D Sinh viên thực hiện Đỗ Văn Duy 20198122 Trần Đức Hiếu 20[.]
ĐẠI HỌC BÁCH KHOA HÀ NỘI TRƯỜNG ĐIỆN ĐIỆN TỬ - - BÁO CÁO: Bài tập môn Đa phương tiện Đề tài: Video and Graphics- Blender 3D Sinh viên thực hiện: Đỗ Văn Duy 20198122 Trần Đức Hiếu 20198131 Nguyễn Hiếu Minh 2019 Mã lớp: 135074 Giảng viên hướng dẫn: Tiến sĩ Phạm Văn Tiến Hà nội, ngày tháng 02 năm 2023 LỜI NÓI ĐẦU Ngay từ xuất hiện, đồ họa máy tính có sức lơi mãnh liệt, sử dụng nhiều lĩnh vực khác như: khoa học, nghệ thuật, kinh doanh, thương mại, công nghiệp, quản lý, giáo dục, giải trí… cơng nghệ 3D ứng dụng đồ họa cấp cao phổ biến rộng rãi đến đời sống Hiện có nhiều phần mềm 3D sẵn có thị trường để đáp ứng cho nhu cầu sáng tạo vô biên người Phổ biến cho nhu cầu sản xuất sản phẩm 3D Studio giới Tuy nhiên, muốn làm quen học 3D có lựa chọn mẻ dễ dàng sử dụng với Blender, phần mềm dạng nguồn mở hoàn tồn với đầy đủ tính để phục vụ cho người học 3D từ bước đầu đến thành thục Bài tập hoàn thành hướng dẫn thầy Phạm Văn Tiến, chúng em xin chân thành cảm ơn hỗ trợ thầy Tuy nhiên, lượng kiến thức thời gian hoàn thành đề tài cịn hạn hẹp, khơng thể tránh khỏi sai sót Nhóm chúng em mong nhận đóng góp, phê bình, chia sẻ thầy để sản phẩm nhóm hồn thiện Chúng em xin chân thành cảm ơn ! BẢNG PHÂN CÔNG CÔNG VIỆC Thành viên Đỗ Văn Duy Trần Đức Hiếu Nguyễn Hiếu Minh Đỗ Văn Duy Công việc Tạo Lip-sync cho khuôn mặt 3D điều khiển âm nhóm ghi sử dụng Keentools Thiết kế nhân vật 3D bao gồm: Giao diện nhân vật, Khung xương vùng (mặt, thân) Trần Đức Hiếu Nguyễn Hiếu Minh Đỗ Văn Duy Trần Đức Hiếu Nguyễn Hiếu Minh Thay đối tượng chuyển động thực nhân vật 3D Điều khiển chuyển động khuôn mặt nhân vật qua Webcam Viết báo cáo, Quản lý lưu trữ MỤC LỤC PHẦN Tổng quan 1.1 Phần mềm blender 1.1.1 Khái niệm 1.1.2 Lịch sử phát triển 1.2 Tạo mơ hình (Modeling) 1.3 Motion tracking 1.4 Python 1.5 Công cụ FaceBuider Blender 1.6 Python Console Blender PHẦN Thiết kế 2.1 Giới thiệu đề tài 2.2 Giao diện Blender 2.3 Thao tác với cửa sổ 2.4 Sử dụng Keentools xây dựng khuôn mặt 3D 2.5 Lip-sync cho nhân vật điều khiển âm người dùng Phần KẾT LUẬN 3.1 Ưu điểm 3.2 Nhược điểm 3.3 Mục tiêu phát triển TÀI LIỆU THAM KHẢO PHẦN Tổng quan 1.1 Phần mềm blender 1.1.1 Khái niệm Blender phần mềm đồ họa 3D miễn phí nguồn mở, sử dụng để làm phim hoạt hình, kỹ xảo, ảnh nghệ thuật, mẫu in 3D, phần mềm tương tác 3D Video game Các tính Blender bao gồm tạo mẫu 3D, UV unwrapping, áp vân bề mặt, mô khói, chất lỏng, hạt chuyển động thể, điêu khắc, hoạt họa, phối hợp chuyển động, camera tracking, rendering chỉnh sửa video 1.1.2 Lịch sử phát triển Blender công ty NeoGeo bắt đầu phát triển ứng dụng nội bộ, dựa dấu thời gian file mã nguồn đầu tiên, ngày tháng năm 1994 xem ngày sinh nhật Blender Phiên 1.00 mắt vào tháng năm 1995, với người thiết kế đứng đầu lập trình viên người sở hữu cơng ty Ton Roosendaal, người trước viết chương trình dị tia tên Traces cho Amiga vào năm 1989 Cái tên "Blender" lấy cảm hứng từ hát ban nhạc Yello, từ album Baby mà NeoGeo sử dụng Showreel Ngày tháng năm 1998, Blender cho mắt công khai mạng phần mềm miễn phí SGI Cơng ty NeoGeo sau bị giải thể hợp đồng sở hữu lại cơng ty khác Sau đó, Ton Roosendaal sáng lập Not a Number Technologies (NaN) vào tháng năm 1998 để tiếp tục phát triển phát hành chương trình Chương trình phát hành dạng shareware đến NaN phá sản năm 2002 Lúc có nghĩa việc phát triển Blender bị hỗn 1.2 Tạo mơ hình (Modeling) Việc tạo cảnh 3D cần ba thành phần chính: Mơ hình, ngun vật liệu ánh sáng Mơ hình hóa đơn giản nghệ thuật khoa học tạo bề mặt mơ hình dạng vật thể giới thực thể trí tưởng tượng bạn vật thể trừu tượng 1.3 Motion tracking Motion tracking sử dụng để theo dõi chuyển động đối tượng máy ảnh thông qua ràng buộc để áp dụng liệ theo dõi cho đối tượng 3D tạo Blender nhập vào ứng dụng Trình theo dõi chuyển động Blender hỗ trợ số công cụ mạnh để theo dõi 2D tái tạo chuyển động 3D, bao gồm theo camera theo dõi đối tượng 1.4 Python Ngơn ngữ python có cấu trúc liệu cấp cao mạnh mẽ cách tiếp cận đơn giản hiệu lập trình hướng đối tượng Python ngơn ngữ có hình thức sáng sủa, cấu trúc rõ ràng, thuận tiện cho người học lập trình Cấu trúc cịn cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu Python khơng phải đặt theo tên rắn thần Python thần thoại Hy Lạp đâu Rossum fan sê-ri chương trình hài cuối năm 1970, tên “Python” lấy từ tên phần sê-ri “Monty Python’s Flying Circus” Guido Van Rossum xuất phiên mã Python (phiên 0.9.0) alt.sources vào tháng năm 1991 Bản phát hành bao gồm xử lý ngoại lệ, hàm kiểu liệu cốt lõi list, dict, str loại khác Nó hướng đối tượng có hệ thống mơ-đun Phiên Python 1.0 phát hành vào tháng năm 1994 Các tính phát hành cơng cụ lập trình chức lambda, map, filter reduce, thứ mà Guido Van Rossum khơng thích Sáu năm rưỡi sau vào tháng 10 năm 2000, Python 2.0 giới thiệu Bản phát hành bao gồm toàn danh sách, thu gom rác đầy đủ hỗ trợ unicode Bắt đầu từ năm 2000, nhà phát triển cốt lõi bắt đầu nghĩ Python 3.0 Họ muốn hợp lý hóa ngơn ngữ, cắt cấu trúc chức ngôn ngữ không cần thiết mà Python tích lũy gần 20 năm tồn Như Zen of Python nói: “Nên có — tốt — cách rõ ràng để làm điều đó” Những nỗ lực họ dẫn đến Python 3.0, phiên khơng tương thích ngược ngơn ngữ Python phát hành vào tháng 12 năm 2008 Thật không may, phát hành mang lại số phức tạp Các nhà phát triển không nhận Python sử dụng mã Python tự nhiên phụ thuộc vào thư viện Python khác Do đó, dễ dàng chuyển tập lệnh người sang Python 3, việc di chuyển chương trình dựa vào thư viện bên thứ ba lại khó nhiều chúng khơng nâng cấp nhanh 1.5 Công cụ FaceBuider Blender Tiện ích bổ sung FaceBuider cho Blender giúp xây dựng mơ hình 3D khn mặt đầu người vài ảnh Với FaceBuider, bạn không cần phải người lập trình mơ hình 3D có kinh nghiệm để tạo mơ hình 3D chất lượng với cấu trúc liên kết rõ ràng Một số tính FaceBuider: - Tự động thiết lập camera, phát định dạng ước tính xác - Hỗ trợ biểu cảm khuôn mặt - Căn chỉnh khuôn mặt tự động hỗ trợ bới AI - Tạo hiệu ứng khn mặt theo cách thủ cơng với 51 hình dạng hịa trộn FACS tích hợp - Tích hợp để sử dụng Unreal Engine Unity - Đa dạng, dễ sử dụng, hoạt động với ảnh 1.6 Python Console Blender Bảng điều khiển Python phương pháp nhanh chóng để thực thi lệnh, với quyền truy cập vào toàn API Python, lịch sử lệnh Tự động Hoàn Chỉnh Dấu nhắc lệnh điển hình cho Python 3.x, trình thông dịch nạp sẵn sàng chấp nhận lệnh dấu nhắc >>> Bàn giao tiếp Python phương pháp tốt để khám phá khả Python tích hợp sẵn Blender Bàn giao tiếp Python sử dụng để kiểm tra phần nhỏ mã Python, sau dán vào tập lệnh lớn PHẦN Thiết kế 2.1 Giới thiệu đề tài - Đề tài “Video and Graphics – Blender 3D” với nhiệm vụ sau: + Quay video clip có hai đối tượng chuyển động chụp ảnh selfile thành viên nhóm + Tạo khn mặt 3D riêng cho thành viên + Theo dõi chuyển động vật thể trích xuất quỹ đạo chúng + Thay đối tượng chuyển động thực đối tượng đồ họa 3D + Tạo Lip-sync cho khuôn mặt 3D, điều khiển âm ghi + Xây dựng giao diện người dùng cho phép kiểm sốt thơng số tạo 2.2 Giao diện Blender Blender phần mềm 3D miễn phí mã nguồn mở Ở đề tài nhóm sử dụng phiên blender 2.8 Hình 2- Giao diên người dùng Blender 2.8 + Cửa sổ Info: chứa thông tin giao diện lệnh với file + Cửa sổ 3D view: khu vực hiển thị đối tượng 3D + Cửa sổ Outliner: quản lý đối tượng theo tên + Cửa số Properties: thuộc tính chương trình thuộc tính đối tượng + Cửa sổ Timeline: làm việc với Animation + Nội dung cửa sổ quy định biểu tượng góc trái (trên dưới) Có thể thay đổi biểu tượng để cửa sổ hiển thị nội dung mong muốn Hình 2- bảng cửa sổ editor type 2.3 Thao tác với cửa sổ Blender sử dụng hệ thống cửa sổ vô linh hoạt để hiển thị thông tin khác Dưới số thao tác với cửa sổ: Thay đổi kích thước: Hình 2- Giao diện hiển thị thay đổi kích thước Đưa trỏ vào vùng giao hai cửa sổ, trỏ chuyền thành hình mũi tên, click kéo chuột trái để thay đổi kích thước cửa sổ Chia cửa sổ: Đưa trỏ vào góc bên phải góc bên trái cửa sổ, trỏ chuyển thành hình dấu cộng, click kéo chuột trái vào phía cửa sổ để chia nhỏ cửa sổ Kết hợp cửa sổ: Làm tương tự cách chia cửa sổ click kéo chuột sang cửa sổ cạnh cần kết hợp Lưu ý hai cửa sổ muốn kết hợp phải cột hàng Cửa sổ 3D view Cửa sổ 3D view nơi làm việc với cấc đối tượng 3D Tool shelf: T chứa cơng cụ Properties: N hiển thị thuộc tính cửa sổ 3D View thuộc tính đơi tượng 3D Điều khiển vùng nhìn Là thao tác điều hướng nhìn đối tượng 3D Quay vùng nhìn: Chuột Di chuyển vùng nhìn: Shift + Chuột Phóng to, thu nhỏ vùng nhìn: Ctrl + Chuột Các đối tượng Con trỏ: Con trỏ đối tượng linh hoạt Blender Con trỏ quy định vị trí thêm đối tượng Ngồi trỏ đóng vai trị đối tượng trung gian để thực thao tác khác Di chuyển trỏ: Phim chuột trái Đưa trỏ gốc tọa độ: Shift + C Thêm đối tượng: Shift + A Hình 2- Giao diện hiển thị thêm đối tượng Xóa: X, Delete Sao chép đối tượng: Shift + D Sau nhấn Shift D, Blender thực lệnh chép di chuyển đối tượng Để chấp nhận lệnh di chuyển, nhấn chuột trái Hủy bỏ lệnh di chuyển, nhấn chuột phải Chọn đối tượng Object Mode Chọn đối tượng: Chuột phải Chọn thêm bỏ chọn: Shift + Chuột phải Chọn tất bỏ chọn tất cả: A Chọn theo khung hình chữ nhật: B Chọn tho hình ( Bằng cách quét lên đối tượng ): C Chọn tự acachs khoanh vùng đối tượng: Ctrl + Chuột trái Các công cụ biến đổi đối tượng Hình 2- Các cơng cụ biến đổi đối tượng Chọn đối tượng sau click vào biểu tượng tương ứng hình để xuất cơng cụ biến đổi đối tượng o Di chuyển (Moving Objects) o Quay (Rotating Objects) o Thay đổi kích thước (Scaling Objects) Có thể nhấn Shift + Click để xuất đồng thời công cụ Mở file, lưu file Lưu file: Ctrl + S, Ctrl +W Mở file: Ctrl + O Tạo file mới: Ctrl + N Lưu ảnh chụp hình: Ctrl + F3 2.4 Sử dụng Keentools xây dựng khuôn mặt 3D Bước 1 : Install Requirement Modules Import Blender File Download blender 2.8.3 đến 3.4.0 sau chọn edit – prefereneces – add on - tìm install interface : KeenTools Facebuilder 2022.3.0 (có thể tìm download facebuilder KeenTools.iso sau import ) Hình 2- Cài đặt Keentool Blender Bước 2 : Create a new head Vào taskbar bên tay phải hình , chọn FaceBuilder – chọn create a new head giao diện sau Hình 2- Khối mặt có sẵn trước chỉnh sửa Bước 3 : Add images Chọn Add images để add file ảnh bao gồm các góc khn mặt để làm hình chiếu lên khối có sẵn Hình 2- Chọn chỉnh sửa hình ảnh Bước : Căn chỉnh ảnh cho khớp với khn mặt Có thể chỉnh tay (xác định điểm khn mặt sau chỉnh cho khớp ) dùng align face để auto tự động khớp với khuôn mặt Bước 5 : Dựng lớp sơn lên bề mặt khuôn mặt mẫu Chọn create texture sau chọn select all images to create texture để chọn tất ảnh làm hình chiếu lên khn mặt KẾT QUẢ Hình 2- Kết hình ảnh thành viên nhóm 2.5 Lip-sync cho nhân vật điều khiển âm người dùng Bước 1: Install Requirement Modules Windows : Open Command Prompt as Administrator cd "C:\Program Files\Blender Foundation\Blender 2.82\2.82\ python\bin" python -m pip install upgrade pip python -m pip install opencv-contrib-python numpy Bước ta cần thực upgrade pip/pip3 lên phiên nhất, sau cài đặt thư viện opencv Về ưu điểm OpenCV đươc viết C/C++, có tốc độ tính tốn nhanh, sử dụng với ứng dụng liên quan đến thời gian thực Hình 2- 14 Cửa sổ cmd-install requirement modules Bước 2: Download character file Truy cập vào trang Studio.blender.org để download Character Cartoon 3D mong muốn phù hợp với version Bước 3: Import Blender File Sau hoàn thành việc download file Blender.blend , click to File => Open => import file vừa download Hình 2- 16 Import file character blender.blend Bước 4: Xây dựng code tạo bảng điều khiển cửa sổ thuộc tính đối tượng Bảng điều khiển đưa vào phần thuộc tính đối tượng Hình 2- 17 File code bảng điều khiển cửa sổ thuộc tính đối tượng Bước nhóm cần làm Add file code vào Text Note rename sang “OpenCVAnim.py” cửa sổ Scripting Hình 2- 18 File code OpenCVAnim.py Run scripting kiểm tra thông tin cửa sổ Info Context Menu Hình 2- 19 Cửa sổ Info Context Menu Bước 5: Xây dựng File Code cho nhân vật 3D Hình 2- 20 File OpenCVAnimOperator.py Sử dụng thư viện OpenCV để điều khiển khuôn mặt nhân vật chuyển động theo hình ảnh thực thơng qua Webcam, điều mang tính ứng dụng cao vào dự án thực tế như: tựa Game nhập vai, hoạt hình 3D, kĩ xảo hay Metaverse Trong file code bao gồm: tất toán tử từ đếm thời gian đường dẫn đến mơ hình đào tạo tải xuống Mơ hình Độ phân giải webcam Điểm mơ hình 3D Máy ảnh đường trung bình động Phần KẾT LUẬN 3.1 Ưu điểm Trong trình thực đề tài , nhóm chúng em nhận thấy nhóm hồn thành yêu cầu mà thầy giao Các đầu công việc cách cẩn thận , tỉ mỉ Nhóm sưu tầm nhiều model,character đẹp Các thành viên nhóm tích cực tìm hiểu , thảo luận hoàn thành tốt phần việc giao 3.2 Nhược điểm Do thời gian thực đề tài có hạn , nhóm chưa tìm hiểu sử dụng hết chức Blender để thiết kế hoàn thiện nhân vật Các model làm riêng biệt , chưa có gắn kết với 3.3 Mục tiêu phát triển Trong q trình thảo luận , nhóm em đưa thêm phương hướng để phát triển hoàn thiện đề tài để ứng dụng vào thực tế Nhóm ghép model riêng rẽ làm thiết kế vật ,nhân vật 3D để tạo đoạn phim hồn chỉnh ,có thể điều khiển nhân vật thiết kế chuyển động keyboard…… Chúng em xin chân cảm ơn! TÀI LIỆU THAM KHẢO [1] Barnali Das, Manash Pratim Sarma, Kandarpa Kumar Sarma Different Aspects of Interleaving Techniques in Wireless Communication 2015 [2] Website:Fading basics | types of Fading in wireless communication (rfwireless-world.com) [3] Website: Blender| phần mềm Blender (