Đề tài Tìm hiểu quá trình phát triển của hoạt hình 3D và cách thức xây dựng các plug-In hỗ trợ cho phần mềm 3D Maya

Quy trình làm phim hoạt hình 3D

Hoạt hình hiện nay được chia thành 3 loại chính dựa vào cách thức thực

hiện: dạng cel, stop-motion và hoạt hình 3D có sử dụng máy tính.

Hoạt hình dạng cel (được lấy tên từ loại giấy celluloid thường được sử dụng

khi vẽ các hình ảnh) là hoạt hình 2D. Những hình ảnh liên tiếp được vẽ bằng

tay bởi họa sĩ thông qua một bề mặt phẳng nào đó hoặc thông một môi trường

máy tính. “Gia đình Simpsons” là một ví dụ về loại phim hoạt hình này.

Hình 12 - The Simpsons Hình 13 - Wallace & Gromit

Hoạt hình dạng stop-motion (hay còn gọi là frame-by-frame) có thể là hoạt

hình 2D hoặc 3D tùy thuộc vào từng mục đích cụ thể. Đây là một kỹ thuật giúp

cho các đối tượng tĩnh có thể chuyển động khi quay. Những đối tượng này dịch

chuyển một khoảng cách rất nhỏ giữa các frame liên tiếp, tạo ra hiệu ứng

chuyển động khi phim được phát lại, cũng giống như phim hoạt hình được tạo

ra bằng cách vẽ tay tất cả các hình ảnh mô tả chuyển động.

Claymation cũng là một dạng của hoạt hình stop-motion. Dạng này yêu cầu

rất nhiều những bức ảnh chụp mô tả những chuyển động khác nhau rất nhỏ

trong một cảnh. Điểm khác nhau căn bản ở đây chính là cách sử dụng những

mô hình nhân vật là các mô hình như búp bê. Claymatino thường là hoạt hình

3D bao gồm các mô hình 3D được chạm khắc rồi đặt trong một cảnh 3D.

Wallace & Gromit là một ví dụ rất điển hình về loại phim hoạt hình stopmotion.

Đề tài Tìm hiểu quá trình phát triển của hoạt hình 3D và cách thức xây dựng các plug-In hỗ trợ cho phần mềm 3D Maya trang 1

Trang 1

Đề tài Tìm hiểu quá trình phát triển của hoạt hình 3D và cách thức xây dựng các plug-In hỗ trợ cho phần mềm 3D Maya trang 2

Trang 2

Đề tài Tìm hiểu quá trình phát triển của hoạt hình 3D và cách thức xây dựng các plug-In hỗ trợ cho phần mềm 3D Maya trang 3

Trang 3

Đề tài Tìm hiểu quá trình phát triển của hoạt hình 3D và cách thức xây dựng các plug-In hỗ trợ cho phần mềm 3D Maya trang 4

Trang 4

Đề tài Tìm hiểu quá trình phát triển của hoạt hình 3D và cách thức xây dựng các plug-In hỗ trợ cho phần mềm 3D Maya trang 5

Trang 5

Đề tài Tìm hiểu quá trình phát triển của hoạt hình 3D và cách thức xây dựng các plug-In hỗ trợ cho phần mềm 3D Maya trang 6

Trang 6

Đề tài Tìm hiểu quá trình phát triển của hoạt hình 3D và cách thức xây dựng các plug-In hỗ trợ cho phần mềm 3D Maya trang 7

Trang 7

Đề tài Tìm hiểu quá trình phát triển của hoạt hình 3D và cách thức xây dựng các plug-In hỗ trợ cho phần mềm 3D Maya trang 8

Trang 8

Đề tài Tìm hiểu quá trình phát triển của hoạt hình 3D và cách thức xây dựng các plug-In hỗ trợ cho phần mềm 3D Maya trang 9

Trang 9

Đề tài Tìm hiểu quá trình phát triển của hoạt hình 3D và cách thức xây dựng các plug-In hỗ trợ cho phần mềm 3D Maya trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 37 trang baonam 9320
Bạn đang xem 10 trang mẫu của tài liệu "Đề tài Tìm hiểu quá trình phát triển của hoạt hình 3D và cách thức xây dựng các plug-In hỗ trợ cho phần mềm 3D Maya", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Đề tài Tìm hiểu quá trình phát triển của hoạt hình 3D và cách thức xây dựng các plug-In hỗ trợ cho phần mềm 3D Maya

Đề tài Tìm hiểu quá trình phát triển của hoạt hình 3D và cách thức xây dựng các plug-In hỗ trợ cho phần mềm 3D Maya
Trường Đại Học Bách Khoa Hà Nội 
Khoa Công nghệ thông tin 
-----  ----- 
BÁO CÁO THỰC TẬP TỐT 
NGHIỆP 
Đề tài: Tìm hiểu quá trình phát triển của hoạt hình 3D và cách 
thức xây dựng các plug-in hỗ trợ cho phần mềm 3D Maya 
Giáo viên hướng dẫn: Lê Tấn Hùng 
Sinh viên thực hiện: Nguyễn Thị Thương Huyền 
Lớp: CNPM – K47 
 Hà Nội, 2/2007 
Báo cáo thực tập tốt nghiệp 
Nguyễn Thị Thương Huyền – Lớp Công Nghệ Phần Mềm K47 1 
Mục lục 
Mục lục................................................................................................................................ 1 
Danh mục các hình ............................................................................................................. 2 
Lời mở đầu .......................................................................................................................... 3 
Phần I – Quá trình phát triển của hoạt hình 3D................................................................. 4 
1. Lịch sử xuất hiện và quá trình phát triển của hoạt hình 3D trên thế giới ............... 4 
2. Quá trình phát triển của sản xuất phim hoạt hình 3D ở Việt Nam và những kết quả 
đạt được ........................................................................................................................... 8 
3. Những khó khăn trong quá trình sản xuất phim hoạt hình ở Việt Nam và cách 
khắc phục ...................................................................................................................... 12 
Phần II – Quy trình và các kỹ thuật bổ sung cho quá trình làm phim hoạt hình 3D ........ 16 
1. Quy trình làm phim hoạt hình 3D ......................................................................... 16 
2. Một số công cụ trong quá trình sản xuất phim hoạt hình ..................................... 21 
2.1 Bộ mô hình hóa ............................................................................................. 21 
2.2 Bộ biên tập chất liệu ..................................................................................... 23 
2.3 Bộ tạo cảnh ................................................................................................... 26 
2.4 Bộ render ....................................................................................................... 29 
3. Phương thức xây dựng những plug-in hỗ trợ cho Maya ....................................... 30 
3.1 Maya API ...................................................................................................... 30 
3.2 Đưa một plug-in vào Maya ........................................................................... 31 
3.3 Xây dựng một plug-in ................................................................................... 32 
3.4 Ví dụ xây dựng một plug-in đơn giản ........................................................... 34 
Phần III – Tài liệu và các trang web tham khảo............................................................... 36 
Báo cáo thực tập tốt nghiệp 
Nguyễn Thị Thương Huyền – Lớp Công Nghệ Phần Mềm K47 2 
Danh mục các hình 
Hình 1 - Phenakistoscope – Joseph Plateau, 1832 .............................................................. 4 
Hình 2 - Humorous phases of funny faces; nhà sản xuất và thiết kế, J. Stuart Blackton ... 5 
Hình 3 - Gertie, the dinosaur............................................................................................... 5 
Hình 4 - Steamboat Willie .................................................................................................. 6 
Hình 5 - Toy story 1995 ...................................................................................................... 7 
Hình 6 - Tron 1982 ............................................................................................................ 7 
Hình 7 - Final Fantasy X ..................................................................................................... 7 
Hình 8 - Chuyện hai chiếc bình (2003) ............................................................................... 9 
Hình 9 - Voi và vẹt (2004) .................................................................................................. 9 
Hình 10 - Giấc mơ của ếch xanh (2005) ........................................................................... 11 
Hình 11 - Happy feet (2006 ) ............................................................................................ 15 
Hình 12 - The Simpsons ................................................................................................... 16 
Hình 13 - Wallace & Gromit ............................................................................................ 16 
Hình 14 - Lưu đồ thực hiện ............................................................................................... 17 
Hình 15 – Storyboard ........................................................................................................ 18 
Hình 16 - Hình lục giác và khi kéo dài ............................. ... p 
Nguyễn Thị Thương Huyền – Lớp Công Nghệ Phần Mềm K47 29 
Các gói phần mềm 3D khác nhau thường đưa ra những khuynh hướng sử 
dụng khác nhau về những nguồn sáng cơ bản này cũng như các loại nguồn 
sáng khác đã được bổ sung vào hệ thống 3D của họ. Một vài nguồn sáng có thể 
làm cho các đối tượng có những loại bóng đổ khác nhau. Một số nguồn sáng 
khác đưa ra các ánh xạ kết cấu vô hướng được sử dụng như là các bộ lọc ánh 
sáng để biến đổi cường độ của ánh sáng trên một bề mặt 3D. 
Trong các bộ phim cũng như trong các sản phẩm video, sự xuất hiện cuối 
cùng của các cảnh phim rất phụ thuộc vào cách thức nhà làm phim tạo ánh 
sáng cho cảnh. Và những cách thức chiếu sáng này lại phụ thuộc vào những 
thuộc tính của rất nhiều chất liệu được áp lên bề mặt của các đối tượng trong 
cảnh. 
Bất kỳ một thành phần nào của cảnh cũng đều có thể được biến đổi hình 
dạng để tạo nên sự đa dạng. Trong bộ mô hình hóa, các đối tượng có thể được 
bẻ cong, nén lại, cuộn lại và các thao tác khác để tạo nên các hình dạng phức 
tạp nhưng các kết quả sẽ được gán vào những đặc tính của đối tượng. Trong 
một chương trình dùng để tạo cảnh, các thao tác giống nhau có thể được thực 
hiện khi tạo hình một đối tượng nhưng chúng chỉ được lưu lại khi một trong 
các thao tác đó được chọn. 
Việc điều khiển cách thức chuyển động trong một chương trình tạo cảnh là 
rất quan trọng. Thậm chí là khi các đối tượng không tồn tại trong thực tế, nếu 
chuyển động của chúng không giống thật, mọi người có thể phát hiện ra dễ 
dàng. Nhà làm phim xác định các chuyển động và các giá trị khác thông qua 
các đường cong và các frame chính. Các đường cong chuyển động được thể 
hiện thông qua một đồ thị. Trục ngang của đồ thị thể hiện thời gian để chuyển 
động được thực hiện. Trục đứng của đồ thị thể hiện giá trị về vị trí của chuyển 
động đó. Một đối tượng chuyển động theo ba chiều, quay theo ba trục và sẽ 
yêu cầu không ít hơn 6 đường cong để miêu tả những chuyển động này. Nếu 
đối tượng bị vặn xoắn, uốn cong hay các phép biến đổi khác, cần phải bổ sung 
thêm các đường cong khác. 
Khi chú ý đến việc xử lý chất liệu, màu sắc, sự phản xạ, độ trong suốt và sự 
chiếu sáng sẽ tiết kiệm được thời gian thực hiện cũng như tạo được những hiệu 
ứng như ý muốn. Các loại kết cấu màu sắc, va chạm và vô hướng có thể được 
áp vào các bề mặt tạo các bề mặt mong muốn. Phần lớn các thuộc tính của ánh 
sáng có thể được xử lý qua các tham số về màu sắc, cường độ và khoảng cách 
cường độ giảm dần để tạo ra những hiệu ứng ánh sáng nhấp nháy, sáng chói 
hoặc lung linh. Tất cả những hiệu ứng này, và rất nhiều các hiệu ứng hoạt hình 
khác sẽ được thực hiện với sự tham gia của các đường cong và các frame chính 
thông qua chương trình tạo cảnh. 
 Bộ render 
Một khi dự án đã được xử lý qua chương trình tạo cảnh, công việc của nhà 
làm phim gần như hoàn thành và bộ phim sẵn sàng được render. Quá trình 
Báo cáo thực tập tốt nghiệp 
Nguyễn Thị Thương Huyền – Lớp Công Nghệ Phần Mềm K47 30 
render là một quá trình tự động thông qua các câu lệnh của phần mềm làm 
phim để tính toán mỗi bức ảnh liên tiếp trong phim. Kết quả cuối cùng là một 
dãy liên tiếp các bức ảnh được lưu trữ trong máy tính. Dãy các ảnh này có thể 
được chuyển đổi sang dạng mong muốn. 
Giả sử rằng bộ render sử dụng đưa ra được những kết quả tốt, thì mục đích 
lớn nhất lúc này là tốt độ xử lý. Thời gian là tiền bạc, đặc biệt trong lĩnh vực 
kinh doanh các sản phẩm 3D. Không phải tất cả các công việc liên quan đến 
hoạt hình đều yêu cầu khả năng render với số lượng nhiều và một số công việc 
có thể chỉ yêu cầu render một số cảnh nào đó trong vài phút. Mặt khác, các 
hình ảnh chuyển động giống như trong phim “Truy tìm Nemo” có thể phải yêu 
cầu hàng trăm máy tính có cấu hình mạnh để render trong vòng chỉ vài tuần 
hoặc vài tháng. 
Trên đây chỉ là một số kỹ thuật cơ bản nhất hiện nay trong việc sản xuất 
phim hoạt hình nói riêng cũng như tạo ra các sản phẩm 3D nói chung. Có thể 
thấy rằng hoạt hình 3D không phải dễ dàng thực hiện mà yêu cầu rất nhiều kỹ 
năng kết hợp với nhau cả về kỹ thuật lẫn nghệ thuật. Có thể so sánh làm phim 
hoạt hình 3D giống như việc lái xe. Cần phải biết hàng trăm thứ mới có thể 
điều khiển được nó. Nhưng dù có khó khăn đến đâu, kỹ thuật làm phim hoạt 
hình 3D đã khẳng định được vị trí của mình khi những bộ phim như “Shrek”, 
“Truy tìm Nemo”, “Happy feet” ... lần lượt ra đời. 
3. Phương thức xây dựng những plug-in hỗ trợ cho Maya 
Maya là một phần mềm có khả năng mở rộng. Điều đó có nghĩa là các cá 
nhân hoặc các tổ chức khác có thể thay đổi các thành phần hiện có và thêm 
vào các đặc tính hoàn toàn mới. Maya đã cung cấp hai cách thức thay đổi. 
Cách thứ nhất là sử dụng ngôn ngữ kịch bản. Đây là một cách thức dễ dùng, dễ 
học và tạo ra được những tính năng mạnh mẽ. Phần lớn những thao tác cần 
thực hiện đều có thể được điều khiển thông qua ngôn ngữ kịch bản. Cách thứ 
hai là thông qua API (Application Programmer Interface). Sử dụng API cho 
phép cung cấp một hiệu năng lớn hơn mà ngôn ngữ kịch bản không thể cung 
cấp được (mã nguồn được viết sử dụng API sẽ thực hiện nhanh gấp 10 lần so 
với mã nguồn sử dụng ngôn ngữ kịch bản) và cung cấp khả năng cho phép 
thêm các đối tượng mới vào Maya. 
 Maya API 
Maya API là những API viết bằng C++ cho phép truy nhập vào các thành 
phần bên trong của Maya. Nó đã được đóng gói tạo nên một tập hợp các thư 
viện tương ứng với những thành phần chức năng khác nhau của Maya. Các thư 
viện bao gồm: 
OpenMaya – Thư viện này chứa các lớp cơ bản để định nghĩa các node và 
các câu lệnh, đồng thời còn dùng để kết hợp chúng vào trong một plug-in. 
Báo cáo thực tập tốt nghiệp 
Nguyễn Thị Thương Huyền – Lớp Công Nghệ Phần Mềm K47 31 
OpenMayaUI – Thư viện này chứa các lớp cần thiết để tạo mới các thành 
phần giao diện người dùng như menu ngữ cảnh, các công cụ thao tác, các công 
cụ để định vị vị trí. 
OpenMayaAnim – Thư viện này chứa các lớp để giải quyết các vấn đề về 
tạo hình ảnh động, bao gồm cả việc làm biến dạng và đảo ngược chuyển động. 
OpenMayaFX – Thư viện này chứa các lớp để giải quyết vấn đề với các 
lực động học. 
OpenMayaRender – Thư viện này chứa các lớp để thực hiện các chức 
năng render. 
 Đưa một plug-in vào Maya 
Trước khi bắt tay vào viết một plug-in cho Maya, bạn cần biết cách thức để 
load một plug-in vào Maya.Có hai cách để load và unload một plug-in. Cách 
đầu tiên và là cách dễ nhất là sử dụng Plug-in Manager có sẵn ở Windows -> 
General -> Editors -> Plug-in Manager (hoặc Windows -> Settings/Preferences 
-> Plug-in Manager trong Maya 8.0). Plug-in Manager sẽ sử dụng biến môi 
trường MAYA_PLUG_IN_PATH để định vị những plug-in có thể load. Trong 
UNIX, biến này là một danh sách các thư mục chứa các plug-in được phân 
cách bằng dấu hai chấm “:”. Trong Windows NT, MAYA_PLUG_IN_PATH 
nằm trong registry và những thư mục được ngăn cách bằng dấu chấm phẩy “;”. 
Biến này có thể được thay đổi bằng cách sử dụng MayaEnviroment.exe 
Cách thứ hai là thông qua câu lệnh loadPlugin của MEL như trong ví dụ 
sau 
loadPlugin “hello”; 
Câu lệnh này sẽ tìm kiếm trong danh sách của MAYA_PLUG_IN_PATH 
để tìm file tên là hello.so trong Unix và file tên là hello.mll trong nền NT. Nếu 
được tìm thấy, nó sẽ được load vào Maya như là một plug-in. 
Unload một plug-in trong MEL là một vấn đề đơn giản bằng cách sử dụng 
câu lệnh unloadPlugin kèm theo tên của plug-in đó.Lưu ý rằng một plug-in cần 
phải được unload trước khi nó được biên dịch lại. Trước khi bạn unload một 
plug-in, bạn cần phải xóa hết tất cả các tham chiếu từ các cảnh của Maya đến 
nó. Trong suốt quá trình xóa các node từ các cảnh được định nghĩa bởi plug-in 
cần xóa, cần phải cân bằng các tham chiếu từ các node bị xóa và các câu lệnh 
được thực hiện từ hàng đợi của lệnh undo. Nếu bạn vẫn thực hiện unload một 
plug-in trong khi nó đang được sử dụng, lúc đó bạn không thể load lại được 
các node đã sử dụng plug-in này. Nguyên nhân là do các node đang tồn tại 
trong cảnh sẽ được chuyển sang thành node có dạng “Unknown”. Và cả khi 
plug-in này được unload, bạn cũng không được phép thay đổi kiểu của các 
node đang tồn tại. 
Báo cáo thực tập tốt nghiệp 
Nguyễn Thị Thương Huyền – Lớp Công Nghệ Phần Mềm K47 32 
 Xây dựng một plug-in 
Các bước sau đây áp dụng cho Microsoft Visual C++ 2005 để xây dựng 
plug-in cho Maya. 
Bước 1: Tạo một project Visual C++ 
1. Chọn File -> New 
2. Chọn tab Projects 
3. Chọn tùy chọn Win32 Project 
4. Điền tên plug-in của bạn vào phần Project Name 
5. Điền tên thư mục và đường dẫn nơi bạn muốn project của bạn được 
tạo ra trong trường Location 
6. Click OK 
Một hộp thoại xuất hiện. Chọn tùy chọn Application type là DLL 
Báo cáo thực tập tốt nghiệp 
Nguyễn Thị Thương Huyền – Lớp Công Nghệ Phần Mềm K47 33 
Bước 2: Thêm các file vào project mà bạn vừa tạo ra 
1. Chọn Project ->Add To Project ->Files 
2. Sử dụng hộp thoại để định vị vị trí các file cho plug-in của bạn 
3. Click OK 
Những file này đã được add vào project 
4. Lặp lại với những file thêm vào trong những thư mục khác. 
5. Nếu đây là một plug-in mới, bạn có thể sử dụng File New và lựa 
chọn kiểu file C++ để tạo ra một file C++ mới cho plug-in của bạn. 
Bước 3: Thêm một số thông số và thư mục chứa vào project 
1. Chọn Project -> Plugin Property 
2. Trong box lựa chọn, chọn All Configurations 
3. Trong phần Configuration Properties chọn C/C++ 
4. Trong các mục của C/C++ chọn Preprocessor 
5. Thêm WIN32;NDEBUG;_WINDOWS;NT_PLUGIN vào list của 
Preprocessor Definitions 
6. Trong mục General của C/C++, chọn Additional Include Directories 
7. Thêm đường dẫn thư mục include của Maya vào phần này. Nếu 
plug-in của bạn được đặt trong thư mục C:\Program 
Files\Alias\Maya8.0\devkit\plug-ins, bạn có thể sử dụng cấu trúc 
..\..\include 
Nếu không, bạn cần để cả đường dẫn đầy đủ C:\Program 
Files\Alias\Maya8.0\include 
8. Trong phần CommandLine của C/C++, thêm vào Additional Options 
các tham số sau: /I "C:\Program Files\Alias\Maya8.0\include" 
9. Click OK để lưu lại sự thay đổi 
Bước 4: Thêm các thư viện vào project 
1. Chọn Project -> Plugin Property 
2. Trong box lựa chọn, chọn All Configurations 
3. Trong phần Configuration Properties chọn Linker 
4. Trong mục Input, chọn Additional Dependencies và thêm 
opengl32.lib Foundation.lib OpenMaya.lib OpenMayaUI.lib 
OpenMayaAnim.lib OpenMayaFX.lib OpenMayaRender.lib 
5. Trong mục General, chọn Output File và thay đổi từ .dll thành .mll 
6. Trong mục CommandLine, chọn mục Additional Options và thêm 
vào /LIBPATH:" C:\Program Files\Alias\Maya8.0\lib" 
7. Click OK để lưu lại thay đổi 
Bước 5: Chọn thư viện runtime thích hợp 
1. Chọn Project -> Plugin Property 
2. Trong box lựa chọn, chọn All Configurations 
3. Trong phần Configuration Properties chọn C/C++ 
Báo cáo thực tập tốt nghiệp 
Nguyễn Thị Thương Huyền – Lớp Công Nghệ Phần Mềm K47 34 
4. Trong các mục của C/C++ chọn Code Generation 
5. Trong mục Runtime Library, chọn Multi-threaded DLL (/MD) 
6. Click OK để lưu lại thay đổi 
 Ví dụ xây dựng một plug-in đơn giản 
Khi học một ngôn ngữ mới, chương trình đầu tiên bạn thường thấy là 
chương trình “Hello World”. Theo truyền thống ấy, plug-in đầu tiên là một 
plug-in “Hello World”. Plug-in này đơn giản chỉ là hiển thị dòng “Hello 
World” trên cửa sổ khi Maya được mở. 
Mã nguồn của chương trình 
#include 
DeclareSimpleCommand( helloWorld, "Alias|Wavefront", 
"2.0"); 
MStatus helloWorld::doIt( const MArgList& ) 
{ 
 printf("Hello World\n"); 
 return MS::kSuccess; 
} 
Đoạn chương trình này được lưu trong file tên là helloWorld.cpp. Nó sẽ 
được biên dịch qua các bước như phần 7.3. Sau đó sẽ được load vào Maya như 
hướng dẫn ở phần 7.2. Gõ “helloWorld” vào trong cửa sổ lệnh, dùng phím 
Enter để thực hiện lệnh và trên của sổ output, bạn sẽ thấy “Hello World” được 
hiển thị. Chú ý rằng bạn cần phải unload plug-in một lần nữa trước khi biên 
dịch lại. 
Từ ví dụ trên có thể thấy một số đặc điểm quan trọng như sau: 
MSimple.h Đây là một file header đặc biệt được sử dụng cho những plug-
in có lệnh đơn giản. Nó sẽ phụ trách những công việc cần thiết để đăng ký câu 
lệnh mới với Maya thông qua macro DeclareSimpleCommand. 
MStatus Đây là một lớp được sử dụng bởi API để chỉ rõ sự thành công hay 
thất bại của một phương thức. Phần lớn các phương thức trong các lớp API trả 
về mã trạng thái thông qua MStatus và những thông tin cho mỗi phương thức 
được thể hiện chi tiết qua các giá trị trạng thái được trả về. Để tránh sự đụng độ 
về không gian tên với các mã trạng thái khác, tất cả các giá trị MStatus được 
bắt đầu bằng MS, ví dụ như MS::kSuccess là một mã trạng thái thành công. 
Danh sách đầy đủ được chứa trong MStatus.h. API chỉ sử dụng một số ít các 
mã trạng thái. Tuy nhiên, nếu như lỗi logging được cho phép trong API thông 
Báo cáo thực tập tốt nghiệp 
Nguyễn Thị Thương Huyền – Lớp Công Nghệ Phần Mềm K47 35 
qua MGlobal::startErrorLogging() thì những chi tiết vễ lỗi sẽ được xuất ra file 
error log khi một phương thức trả về một giá trị khác với MS::kSuccess. 
DeclareSimpleCommand Như lưu ý ở trên thì macro 
DeclareSimpleCommand() giúp bạn không phải viết những đoạn mã đăng ký 
để cho phép Maya nhận file của bạn như là một plug-in. Tuy nhiên để làm cho 
đơn giản, nó không cho phép bạn xác định một phương thức undo cho câu lệnh 
của bạn, vì thế bạn không thể tạo ra các câu lệnh có khả năng undo thực sự khi 
sử dụng macro này. Những câu lệnh không cung cấp chức năng undo sẽ không 
thay đổi được trạng thái của cảnh. Chúng có thể được sử dụng để truy vấn 
những thông tin về cảnh nhưng không thể thay đổi được các thông số đó. Nếu 
một câu lệnh không có khả năng undo được lại thay đổi được các thông số, khả 
năng undo của Maya sẽ bị phá vỡ. Macro DeclareSimpleCommand yêu cầu 3 
tham số: tên của class sẽ được sử dụng để thực hiện lệnh, tên của nhà cung cấp 
(hoặc tác giả) của lệnh và version của lệnh. 
MArgList Lớp MArgList cung cấp các chức năng tương tự như các tham 
trị, tham biến vào của một chương trình C hay C++, cung cấp một danh sách 
các đối số cho hàm của bạn. Lớp này cung cấp các phương thức để nhận các 
tham số với các kiểu khác nhau, bao gồm cả integer, double, string, vector... 
Một điểm khác biệt quan trọng giữa việc sử dụng tham biến/tham trị và một 
MArgList là phần tử đầu tiên của MArgList là tham số đầu tiên trong lệnh chứ 
không phải là tên của lệnh như trong một chương trình viết bằng C hay C++. 
Trên đây chỉ là một số đặc điểm cơ bản về cấu trúc khi viết một API cho 
Maya. Để viết được một plug-in hoàn chỉnh thì còn cần rất nhiều kiến thức 
cũng như kinh nghiệm khác nữa. 
Báo cáo thực tập tốt nghiệp 
Nguyễn Thị Thương Huyền – Lớp Công Nghệ Phần Mềm K47 36 
Phần III – Tài liệu và các trang web tham khảo 
 Understanding 3D Animation Using Maya – John Edgar Park 
 Maya at a Glance – George Maestri 
 
ml 
 
aniamtion.273 
  
  
  

File đính kèm:

  • pdfde_tai_tim_hieu_qua_trinh_phat_trien_cua_hoat_hinh_3d_va_cac.pdf