Dùng Code Editor Ngoại Vi Cho Houdini

Thường khi dùng các phần mềm 3D mà ở mức kỹ thuật, hiện nay cần biết qua về ngôn ngữ expression/script riêng của phần mềm, như Maya thì có Mel Script, 3DS Max có Max Script và Houdini thì có VEX. Trong giao diện phần mềm 3D, vị trí ứng dụng biên tập các đoạn mã này sẽ không thoải mái như đang dùng trên các trình biên tập mã thực sự.

giao diện Maya bên trái, và 3DS Max bên phải, thông thường là chương trình biên tập văn bản cơ bản. Tương tự với Houdini, Blender, …

Các giao diện biên tập văn bản này sẽ thiếu rất nhiều tính năng để thực hiện việc code được nhanh và hiệu quả cao hơn. Đa phần các artist/technical thường hay sử dụng các phần mềm biên tập code bên ngoài nếu dòng code nhiều hơn 10 dòng, các bạn có thể tra cứu Google để tìm hiểu về dùng trình biên tập ngoài (External Editor) cho phần mềm 3D mong muốn.

Theo việc mô tả lập trình VEX trong Houdini thì CGWiki có chia sẻ:

There’s a few stages to learning Houdini; getting into nodes and proceduralism is one, dynamics is another, vops is another. But the one that can seem the most daunting is learning vex.

CG WIKI - Joy Of Vex

Tức nếu ai chưa biết lập trình thì dĩ nhiên học VEX để tiếp cận Houdini là vật vã và dễ làm nản chí nhất. Với số lượng 20 30 node nhưng với Vex có thể chỉ mất vài dòng code. Và dĩ nhiên scene của bạn cũng nhanh hơn vì việc thực thi mã không thừa, còn bản thân các node sẽ đem theo nhiều tham số, attribute khởi tạo mà bạn thường sẽ chỉ dùng một vài tham số nào đó.

Dĩ nhiên còn nếu chỉ biết lập trình thôi thì cũng khó có thể làm đẹp (design/art) được, Bạn phải làm cả hai, tùy bạn sẽ muốn thiên về bên nào. Vex có thể khó hay dễ với tùy mỗi người, tùy điều kiện tiếp cận. Tuy nhiên bài viết này sẽ giúp bạn viết VEX thoải mái hơn chứ không gò bó trong cái ô nhỏ tí của Wrangle. Bài viết này chia sẻ dùng Sublime Text cho Houdini để viết được code VEX.

Phần Mềm Biên Tập Mã (Code Editor)

Giao diện code editor Sublime sau khi đã được cài đặt vào Houdini.

Đầu tiên hết các bạn cần tải về phần mềm Sublime nếu chưa có, link tải Sublime ở đây (miễn phí).

Phần mềm biên tập mã Sublime này có khả năng hiển thị rất đa dạng cả tư liệu truy cứu về cú pháp, hàm, hiển thị cú pháp, hàm, các đặc trưng thuộc về một ngôn ngữ nhất định.

Đặc điểm của Sublime có khả năng tự save tạm, tức nếu đang code, bạn đóng phần mềm thì Sublime sẽ không mất file đó, nếu đang sử dụng Github để thực hiện các thao tác Source Safe đoạn code, thì khả năng cao bạn sẽ không mất đi các đoạn mã do vô ý quên lưu.

Sublime Text có giao diện màu tối (Dark), và rất nhiều color scheme màu đi theo, nếu bạn muốn làm giao diện kiểu hacker với nền đen, chữ xanh lá cây cũng có luôn, nói chung không phải lúc nào cũng màn hình trắng nhìn vừa chói mắt, mệt mỏi khi làm lâu mà cũng không thân thiện dễ nhìn.

Như hình ảnh dưới đây sẽ cho thấy các phần mở rộng phổ biến được Sublime text hỗ trợ, các bạn có thể truy cập vào menu dưới chân góc phải để thấy thông tin các tập mở rộng này, phần mở rộng đang hiển thị chỉ là phổ biến nhất được liệt kê, nhiều hơn cũng có thể dễ dàng tìm thấy khi vào “Open All …”

thông tin các phần mở rộng được hỗ trợ

Hiệu Chỉnh File Houdin.ENV

Để sử dụng được Sublime Text hiển thị mã Vex, các bạn cần chỉnh thông tin file Houdini.env là tập tin chứa các thông tin cấu hình chỉ định (configuration) cho phần mềm này hoạt động trước khi load hoàn toàn.

Ở phần houdini.env tương ứng với version Houdini của bạn thông thường sẽ được chứa tại thư mục:

  • Windows. %HOME%/houdiniX.X/houdini.env.
  • Mac. ~/Library/Preferences/houdini/X.X/houdini.env.
  • Linux. ~/houdiniX.X/houdini.env

Nếu bạn dùng Windows thì chỗ %Home% sẽ chính là một folder tên Houdini và phiên bản đang dùng nằm trong My Document.

Bạn dùng bất cứ chương trình biên tập văn bản nào, như Sublime Text cũng được để hiệu chỉnh file houdini.env này.

Đây là đoạn mã bạn cần để vào (ví dụ này để Sublime Text 2, bạn dùng đường dẫn là Sublime Text của bạn đã tải về sau khi cài đặt):


VISUAL = “”C:\Program Files\Sublime Text 2\sublime_text.exe” -w”

Cấu Hình Hiển Thị Cú Pháp và Tài Liệu

Bạn sẽ cần truy cập vào thông tin của GitHub repository được chia sẻ bởi Teared.

Ở đây sẽ chứa bộ tư liệu về cách sử dụng VEX component (như kiểu một plugin) cho phần mềm Sublime. Bạn không cần tải gì ở đây, chủ yếu vào đây coi hướng dẫn dùng, Sublime Text có khả năng kết nối internet và tải về bộ thư viện cần dùng.

Tại tài liệu của Teared, bạn sẽ thấy phần chỉ hướng dẫn cài đặt khi kéo xuống, link tới phần Setup. Tức ở chỗ này đang nói bạn mở Sublime Text ra, làm theo tuần tự menu của Sublime Text:

Preferences → Package Control → gõ vào “Install Package” → gõ vào “VEX”

Như vậy trong một lúc chừng 1 phút, bạn sẽ có phần mở rộng VEX ngay trong giao diện của mình, mọi đoạn mã bạn mở lên là VEX đều hiển thị cú pháp, thông tin có đánh màu theo dòng, đặc biệt là với Sublime Text bạn có thể phóng to nhỏ chữ cho dễ nhìn (dùng Control + dấu cộng/dấu trừ), cũng như có hỗ trợ Word Wrap, tức hiển thị xuống dòng để dễ nhìn, khác với môi trường của node Wrangle trong Houdini, phần mã chạy luôn tuồn, khó nhìn.

Để hiển thị được tư liệu tại vị trí con trỏ ở mỗi hàm, bạn sẽ cần thiết lập, tại phần giao diện Sublime Text, vào menu và làm theo:

Tools → Command Pallette → gõ vào “VEX: Show Documentation for Function Under Cursor”

Để hiển thị ra tư liệu, bạn di chuyển con trỏ lại vị trí hàm và nhấn combo phím Control+Alt+D.

Sử Dụng Sublime Text Và Houdini

Ngay trong giao diện code Wrangle của Houdini, bạn nhấn combo text Alt + E + E, nếu chỉ một lần Alt + E thì bạn sẽ có giao diện gõ code được bung ra, 2 lần chữ E sẽ đem bạn tới qua Sublime Text.

Khi code xong nhấn Control + S để lưu, tắt file Sublime Text (Control+W), tự động bên trong Houdini sẽ được cập nhật ngay tức thì, khi đang code trong Sublime Text mà chưa save, Houdini sẽ treo không cho phép bạn biên tập, tránh mất đứt kết nối giữa file đang biên tập mã và mã đã có sẵn trong Wrangle.

Đây là giao diện khi chỉ nhấn một lần Alt + E, phần để code Vex sẽ bung ra để bạn làm việc có nhiều khoảng không, phải nhấn Accept thì mới thực thi biên dịch code, khác với giao diện Node Wrangle Parameter, chỉ cần nhất Control+Enter là biên dịch.

giao diện code VEX với Alt+E

Code Được Liên Tục

Một trong những tool các bạn không nên bỏ quá khi cần sử dụng code ngoại vi là công cụ Houdin Expression Tool
, công cụ này giúp biên tập code nó ngay tức thời cập nhật vào Houdini chứ không cần phải đóng trình biên tập.
Cách cài đặt khá đơn giản, bạn chỉ cần tải về và bung nén vào trong thư mục Houdini bạn có trong Document (nếu là Windows).

Các file gồm có:

  • $HOME/houdiniXX.X/scripts => scripts (thư mục)
  • $HOME/houdiniXX.X// => PARMmenu.xml
  • $HOME/houdiniXX.X// => MainMenuCommon.xml
  • $HOME/houdiniXX.X// => OPmenu.xml

Nếu đã có những file XML thì chọn MERGE chứ không phải là Replace

Sau khi chép xong, khởi động lại Houdini, vào code node Wrangle chọn click phải

Sau khi chọn vào External Expression Editor, màn hình sẽ hỏi yêu cầu chọn một phần mềm biên tập mã ngoại vi, bạn truy cập vào folder chứa Sublime Text để kích hoạt. Hoặc bạn có thể làm điều này ở Menu Houdini theo “Edit => Preferences => Set External Expressions Editor”, file cấu hình này được lưu vào: $HOME/houdiniXX.X/ExternalEditor.cfg

Khi sử dụng, bạn sẽ không nhấn Alt + E + E như trên, mà click phải chọn External Expression Editor trên code node Wrangle. Khi code xong bạn không cần đóng cửa sổ, chỉ cần lưu lại là tự động node được cập nhật nội dung mới.

Lưu ý nếu bạn có dùng comment tiếng Việt có dấu, sẽ không thể truy cập được trình biên tập mã. Lúc này chỉ có thể dùng Alt E E và chấp nhận màn hình Houdini treo trong khi đang code, code xong thì đóng màn hình mới được cập nhật qua Houdini.

Chúc bạn VEX vui

Post Author: Vu Pham