Upcoming Plan for Q4 2018

Upcoming Plan for Q4 2018

It’s been four months since I started my current job as a Software Engineer in the Financial Risk Tech industry and neglected the site… so a quick update for my upcoming plan for Q4 2018!

  1. I’m running out of idea for useful Nuke Tips that has already covered in prior posts or by other Good Samaritan in other websites/forums.
  2. Expect more Python (or MaxScript/MEL Script) tutorials to replace Nuke Tips but relevant for 3DCG VFX artist.
  3. General production pipeline articles for a single artist focusing on Project DQ .

What I’m Working on Now?

Mostly backend stuff writing in Python using the Django REST framework as my day to day job. Occasionally graphic designs work like name cards, banners, and stuff that benefited from my professional 3DCG experience!

Actual job aside, I’m prepping assets for cloth simulations practice in Houdini and maybe revisit Project DQ to brush up on the non-FX assets. Once in a while I’m also working on my very own Assets Browser toolset written in Python which you can follow the development progress over at GitHub.

Also not to forget drawing a Halloween fanart for the month of October!

Finally It’s Here!

Well the last commercial 3DCG project that I’ve work on before my previous workplace change ownership aka CRデビルメイクライ4 (CR Devil May Cry 4).

I’ll be writing up on a summary of the FX tasks for this project in a future post.

This project also marks the beginning of my scripting journey to boost my work productivity in Maya, 3ds Max and After Effects!

Naturally this leads me into the chasm of coding hell and while I see myself as a complete coding beginner (so says the person who’s currently working full time writing Python codes), it makes me wonder what will happen if I were to pursue programming courses instead of creative courses for my tertiary education…

Got a Job Offer related to 3DCG VFX?

Short answer, colour me interested! Do reach me over at LinkedIn or through email which you can find at the resume page.

Long answer, I’m still not satisfied with what I’ve done with my two years of work experience and while Project DQ is my way of learning Houdini, it still doesn’t land me a job after applying to several studios… so don’t follow what I’m doing especially to my dear visitors who’re reading this!

Serious answer, I admit I’m still a greenhorn in the 3DCG VFX industry (I used the term 3DCG since that is commonly use in Japan and I haven’t work on live-action project besides TVC during my internship) and seeking to gain more experience from the industry.

In Conclusion

Nonetheless, there is no other way besides hitting the wall until it breaks to land a job for high-end 3DCG or live action VFX industry!

Actually getting to use Nuke in production is secretly my ultimate goal. The irony of learning Nuke way back in 2010 and ended up using After Effects (and Shake) for production work (not to downplay AE but this site is known for Nuke Tips).

Now if you’ll excuse me so I can get back to modelling in 3ds Max when I should using Maya for modelling! Maybe in the near future…

Nuke Tips – Retrieve File Path List for Read Nodes

Retrieving File Path List for Read Nodes for Anyone

This is more for folks who need to know which renders or footages that they are currently using in their Nuke script.

To run the Python script, simply copy and paste the following codes into the Script Editor panel and execute it!

…fine I’ll show you a step-by-step to ensure it works for you (basically a pet peeve of mine when others wrote scripts but never document a simple idiot-proof guide that actually works).

  1. Launch Nuke.
  2. Copy the script from below (or from my GitHub repo).
  3. Paste it into the Script Editor panel.
  4. Select all the codes and press Ctrl + Enter for Win/Linux or Cmd + Return for Mac.
  5. ???
  6. Profit!

Codes

# Return filepath list for Read nodes in the current Nuke script
# Huey Yeng, 2018, https://taukeke.com/
"""Return filepath list for Read nodes.

Return every Read nodes' filepath. Useful for project cleanup to identify
files that are currently being use in the current script.

Returns:
List of valid filepaths.

Todo:
* Include ReadGeo nodes

"""
import nuke

nodes = nuke.allNodes('Read') # Grab all nodes with the class 'Read'. Valid classes include 'Write', 'ReadGeo', etc
source_list = [] # Initialised empty list

for node in nodes:
path = node["file"].value() # Retrieve value from "file" attribute
name = (path.split("/"))[-1] # Access the last value in array for path after splitting it with "/" delimiter
source_list.append(name) # Add/append name into source_list

result = "\nList of Read nodes:\n"
print(result)

for name in sorted(source_list):
print(name)

Expected Result

# A typical sample from Project DQ
# Result:
List of Read nodes:

TexturesCom_Skies0354_31_M.jpg
fFIR_FireA_v001.%04d.exr
fFIR_FireB_v001.%04d.exr
fFIR_FireC_v001.%04d.exr
fSMK_SmokePlumeA_v001.%04d.exr
fSMK_SmokeSmallA_v001.%04d.exr
fSMK_SmokeSmallB_v001.%04d.exr
s002c002_BG_Beauty_v001.%04d.exr
s002c002_BG_Debris_Beauty_v001.%04d.exr
s002c002_BG_Debris_bgShadow_v001.%04d.exr
s002c002_BG_Mask_v001.%04d.exr
s002c002_BG_WetDock_v001.%04d.exr
s002c002_Comp_0402_v001.mov
s002c002_FX_Droplet_Beauty_v002.%04d.exr
s002c002_FX_Mist_Beauty_v001.%04d.exr
s002c002_FX_Ocean_Beauty_v002.%04d.exr
s002c002_FX_Ocean_bgShadow_v001.%04d.exr
s002c002_FX_Ocean_bgWetmap_v001.%04d.exr
s002c002_FX_Sparks_Beauty_v001.%04d.exr
s002c002_FX_Splash_bgWetmap_v001.%04d.exr
s002c002_FX_SprayMesh_Beauty_v002.%04d.exr
s002c002_FX_SprayMesh_bgShadow_v001.%04d.exr
s002c002_FX_SprayPoints_Beauty_v001.%04d.exr
s002c002_FX_Spray_Beauty_v002.%04d.exr
s002c002_FX_Spray_Depth_v001.%04d.exr
s002c002_FX_Whitewater_Beauty_v001.%04d.exr
s002c002_Proxy_v001.%04d.exr
s002c002_Utility_v001.%04d.exr
s002c002_Utility_v001.%04d.exr
s002c002_Vehicles_Beauty_v001.%04d.exr
s002c002_Vehicles_PanelOnly_v001.%04d.exr
s002c002_Vehicles_bgShadow_v002.%04d.exr

What Should I Do Next?

You can use the result to help identify the read nodes in your script so you can safely move or delete any unused renders from your storage.

Basically there are endless opportunity like discovering the wonder of Python scripting for Nuke, bragging rights to your fellow colleagues or classmates that you have succeeded in running a custom Python script in Nuke and so on!

Nuke Tips – Clamp Node

Clamping the Clamp Node

Update 1st July 2018: Here’s the link to the cabin depth render for your exploration. Credits to http://www.3drender.com/challenges/ for the original model.

The Clamp node is something that you either use a lot or rarely touch it.

If you’re a seasoned compositor, I guess this post will be a nice refresher but if you’re still wondering what it does and how it fits into a typical production comp, read on!

Do not get confused with the famous mangaka group known as CLAMP!

Continue reading