Là một Artist, bạn có thể nghĩ rằng kỹ năng lập trình không đặc biệt quan trọng. Tuy nhiên, kinh nghiệm của tôi giữa các hãng phim lớn, vừa và nhỏ tôi nhận thấy rằng việc có thể phát triển bộ công cụ của riêng bạn là rất quan trọng và mang lại một số lợi thế cho công việc của chính bạn.

Lần đầu tiên tôi tiếp xúc với lập trình khi tôi là một nhiếp ảnh gia, tôi cần tạo một bộ sưu tập ảnh. Tôi không đủ khả năng thuê một lập trình viên. Vì vậy, tôi đã nói chuyện với một người anh em họ, người đã giới thiệu tôi với "phe" coder. Cô ấy dành thời gian hướng dẫn code tôi code HTML và CSS trong 1 ngày, và tôi có thể tạo một trang web để giới thiệu bộ sưu tập ảnh của mình. Điều đó đã mở ra 1 nhận thức mới cho tôi, như trở thành 1 artist của thế hệ mới - artist có thể code.

Đầu tiên, cô ấy đã cho tôi khả năng giải quyết vấn đề của riêng tôi và thứ hai, cô ấy đã cho tôi sự tò mò ban đầu để phát triển code. Cô ấy đã cho tôi thấy rằng nếu một phần mềm không có sẵn, bạn có thể tạo ra 1 phần mềm cho chính mình.

Trên thực tế, đó chính xác là những gì xảy ra khi bạn làm việc trong ngành công nghiệp đồ họa. Có một số người đang cố gắng phát triển và tạo ra các công cụ cho các artist; công cụ tuyệt vời và làm việc cực kỳ tốt Sẽ luôn có lúc bạn không có công cụ chính xác để giúp bạn thực hiện mục tiêu cụ thể của mình. Khi bạn gặp một tình huống như vậy, bạn  sẽ cần tạo một công cụ để hoàn thành công việc.

Vì CG là một ngành công nghiệp dựa trên công nghệ, tôi tin rằng ngay cả với tư cách là một artist bạn cần có niềm đam mê code.

Có khi nào bạn nhìn thấy 1 hiệu ứng trên phim và chợt nhận ra rằng với các công cụ sẵn có trong Maya dù có cố gắng tổ hợp thế nào cũng không thể tạo ra hiệu ứng đó? Lúc này, bạn hoàn toàn có lý do nghi ngờ rằng, để làm được điều đó bạn cần tìm kiếm nó ở thế giới của lập trình.

Loại bỏ sự đơn điệu bằng code

Khi tôi đang hoàn thành bộ phim cho luận án tốt nghiệp, tôi đã hợp tác với hai artist lớn hơn, một trong số họ là họa sĩ hoạt hình và người còn lại là họa sĩ FX. Vai trò của tôi là trong phần cuối cùng sản xuất với tư cách là người sáng tác. Tuy nhiên, chúng tôi đã rất tham vọng và bộ phim ngắn của chúng tôi dài khoảng 04:50. Khi thời hạn đến gần, tôi nhận ra rằng có quá nhiều giai đoạn thủ công lặp đi lặp lại và như vậy chúng tôi sẽ không bao giờ hoàn thành được trong thời gian ngắn. Tôi đã phải tối ưu hóa quy trình làm việc của mình.

Để làm điều này, tôi quyết định tạo ra một bộ công cụ cho phép tôi tập trung nhiều hơn vào khía cạnh nghệ thuật thay vì thủ công nhàm chán.Trong quy trình làm việc chúng tôi, sau khi hoàn thành các hiệu ứng, các phân cảnh, cô ấy đã chuyển chúng cho artist FX để anh ấy có thể làm việc trên mô phỏng vải và tóc. Sau đó, tôi phải xuất tất cả các đối tượng trong bộ nhớ cache vào một tập tin chứa thông tin ánh sáng mà tôi đã sử dụng để áp dụng các vật liệu và tạo các layers. Điều này rất thủ công và không hiệu quả vì tôi phải mất một vài giờ chỉ để dọn dẹp các tập tin và sắp xếp các cảnh trước khi tôi bắt đầu chiếu sáng. Giải pháp của tôi lúc này là tạo ra một số công cụ để xử lý vấn đề này và giảm thời gian làm việc của chúng tôi, chúng tôi dùng rất nhiều công cụ và trong đó là Alembic caches.

Tôi đã rất thận trọng về các quy ước đặt tên file, tên dữ liệu và điều đó thực sự tốt trong khi lập trình với MEL. Về cơ bản tôi đã chọn các ký tự và các đối tượng hoạt hình (tóc và vải) và xuất chúng dưới dạng Alembic caches. Một vài cú nhấp chuột là xong.

Với mỗi lần chụp, tôi chỉ dành khoảng ba hoặc bốn phút với các công cụ này thay vì một giờ rưỡi để thực hiện thủ công. Đây chỉ là một ví dụ về cách tôi tìm thấy việc xây dựng các công cụ của riêng bạn thực sự có thể giúp tăng tốc độ sản xuất. Các công cụ tùy chỉnh của bạn không chỉ có thể tối ưu hóa quy trình làm việc của bạn mà còn cho phép bạn tập trung vào phần nghệ thuật. Một kịch bản khác tôi muốn xây dựng các công cụ cho là tạo Gizmo. Tôi thích tạo ra các Gizmos của riêng mình để chuẩn hóa quy trình của tôi và tránh lặp lại 1 công việc mãi.

Trong hầu hết các studio tôi từng làm việc, họ sẽ tạo ra những Gizmos này và tích hợp chúng vào hệ thống của họ. Ví dụ: nếu bạn sử dụng Gizmo yêu cầu một bộ AOVs hoạt động để tổng hợp, sẽ nhanh hơn nhiều khi tạo một công cụ sẽ tải các dữ liệu cần thiết để tạo ra kết quả mong muốn cho bạn. Đó chỉ là một lý do tại sao các artist trong ngành công nghiệp VFX và hoạt hình cần các kỹ năng để code và tối ưu hóa các quy trình. Điều quan trọng là làm việc với code và cố gắng phát triển tư duy phân tích về quy trình của riêng bạn. Bạn nên luôn luôn nghĩ về những cách bạn có thể làm công việc của bạn nhanh hơn và gọn gàng hơn.

Viết code là một nghệ thuật

Tôi nhớ lần đầu tiên tôi nhận ra code là một hình thức nghệ thuật đó là học kỳ đầu tiên của tôi ở trường và tôi đã tham gia một lớp lập trình cho các artist. Tôi đã hy vọng có được cái nhìn sâu sắc về cách tôi có thể sử dụng code cho một mục đích cụ thể.

Lớp học về một ngôn ngữ nguồn mở cho phép các artist tạo ra hình ảnh thú vị từ code. Các artist sử dụng code theo cách giống như các artist cổ điển vẽ. Họ tư duy rất sáng tạo và phân tích về sự sáng tạo của họ sau đó mô tả lại bằng code. Tôi tin rằng một phần quan trọng để các CG Artist thể hiện ý tưởng của riêng họ tốt hơn hơn khi nỗ lực tạo ra các tools (công cụ) riêng cho chính họ.

Khi tôi tạo ra một công cụ, cảm giác giống như chuẩn bị bức tranh cho tác phẩm nghệ thuật của mình. Nó giúp tôi nghĩ làm thế nào tôi có thể giải quyết các vấn đề tôi sẽ gặp phải. Có lẽ đó chỉ là cách suy nghĩ cá nhân nhưng tôi thích điều này và với tôi mỗi ngày trôi qua, ranh giới giữa lập trình và đồ họa ngày càng mờ dần đi.

Code giúp sáng tạo

Lời khuyên của tôi là hãy cố gắng sáng tạo nhất có thể với code của bạn. Cố gắng tạo các công cụ dùng để xây dựng sưk sáng tạo của bạn đồng thời tối ưu hóa công việc của bạn. Đây là lý do tại sao tôi yêu thích code và là lý do mà tôi nghĩ artist nên có kỹ năng lập trình.

Nó không chỉ để khắc phục các vấn đề kỹ thuật mà còn để phát triển các kỹ thuật mới,  tạo ra một cái gì đó sẽ giúp bạn trong việc hình thành một cái mới. Theo kinh nghiệm, tôi nhận ra rằng phần lớn những tiến bộ thú vị nhất trong ngành xuất phát từ những suy nghĩ này.

Họ là những người luôn không ngừng tạo ra các công cụ mới và hướng xa hơn để trở thành 1 technical artist.

Có rất nhiều ngôn ngữ lập trình phù hợp cho 1 artist, có thể bạn cần tiếp xúc với C++, Python ... mỗi loại ngôn ngữ đều có tính năng, độ khó và mục đích khác nhau. Tùy vào hướng tiếp cận mà bạn có thể lựa chọn 1 ngôn ngữ để học tập và làm việc với nó. Bạn có thể lựa chọn Python dễ học nhất, và có thể thử áp dụng ngay vào các phần mềm như Maya, 3ds Max hoặc C++ khó khăn hơn cho tiếp cận nhưng lại có hiệu năng tốt hơn cho các tác vụ phức tạp. Nhưng dù gì, chúng ta cũng phải học hỏi từng ngày và đối mặt với mọi thứ để tiến xa hơn.