Anthony Tan
Anthony Tan
  • Видео 42
  • Просмотров 59 974
1x01 - Python for (Nuke) Compers - Single quotes vs double quotes (really, it's a thing)
It's like Taylor Ramos & Tony Zhou over ruclips.net/user/everyframeapainting - I'm back (in a small dose! Unsure for quite how long but it's been bubbling away to do more explain-y train-y teach-y stuff.
The TL;DR - use triple double quotes. It's good for your sanity, and keeps you in line with PEP 257 ( peps.python.org/pep-0257 )
More write up here: www.greenworm.net/2024/11/01/nuke_python_single_quotedocstrings.html
(Don't mind the 1x increment, felt like it was time to create a new "season" as it were)
Просмотров: 279

Видео

Anthony Explains: how a keyswitch matrix layout works
Просмотров 20610 месяцев назад
So a friend was getting into making a keyboard (joystick button box actually) down at the hardware level, and was wondering about wiring and how it copes with multiple keypresses at once. That sorta touches on both how a keyswitch scan matrix works _and_ why we shove in diodes. - we use a matrix because the rate of humans typing is a much slower than the rate at which we can scan keys, so no ne...
Anthony Explains: Cryptomattes
Просмотров 61110 месяцев назад
(Yeah, okay.. so I keep forgetting how small text is.. oops. Didn't want to rerecord so i just scaled up a couple bits. My bad :|) Cryptomattes are pretty much standard things now, but I recall when I first touched them it was a "wait what black sorcery _is_ this" kind of moment? 0:00 - Regular ID mattes 2:10 - Cryptomattes Sample images - see github.com/Psyop/Cryptomatte and that Cryptomatte n...
0x27 - Python for (Nuke) Compers - Digging into nuke's guts
Просмотров 4342 года назад
So normally you just install nuke, go on your merry way and it's this black box that makes pixels. Except, it doesn't have to be! There's quite an amount of stuff there you can play with and look at, let's dive in... 0:00 - a brief refresh on init/menu.py 5:25 - the whole reason I had to dig in 6:00 - looking into nuke's plugin directory.. 10:00 - other stuff - topnode 12:20 - other stuff - nuk...
0x26 - Python for (Nuke) Compers - Knob defaults!
Просмотров 4752 года назад
Welp. That was a mess. Audio/video sync issues, forgetting to output at 4k and instead doing SD (!), but a quick one as I get back into it now summer has well.. desummered. 0:00 - frameranges (don't start at 1) 2:20 - introducing... the root node! 4:30 - exploring knobDefaults - transforms... 9:00 - exploring knobDefaults - ...and the root
0x25.1 Python for (Nuke) Compers - CLI Part 1 - it's a command line!
Просмотров 1,1 тыс.3 года назад
So a lot of the stuff I've pointed at so far relies on doing things in the GUI, but when you want to automate, who's got time for pretty pictures? Let's look at the command line. 00:00 Step 1 - let's build a really boring rig (you can skip this bit if you want) 06:10 Flags and Args - help! 08:30 Let's render a bunch of frames now 10:30 Once more, this time with python 12:40 Open a (nuke) script...
0x25.2 Python for (Nuke) Compers - CLI part 2 - Parameters!
Просмотров 5973 года назад
Assuming you followed the last vid, you're now wondering about feeding in command line parameters so you can write 1 script, 1 python file, and then just merrily kick on with arguments. 00:00 argv - feeding a script with fish, chips, unicorns and chicken 05:00 Mucking around and controlling the nuke template, from arguments! 08:10 Oops. 10:20 Why we save out a script and render from it 14:00 An...
0x24.2 Python for (Nuke) Compers - Error messages II
Просмотров 3953 года назад
After looking at the basic error types, there's a couple more that are worth showing, along with some very specific ways you might trip yourself up in nuke 00:00 - ValueError, TypeError - function abuse 08:00 - Other ways to blow things up 13:00 - look out for NoneType!
0x24.1 Python for (Nuke) Compers - Error messages
Просмотров 6633 года назад
So those somewhat obtuse words you see in the console when things break? There is a rhyme to them which can help you snout out roughly what's gotten busted 00:00 - SyntaxErrors 02:30 - Key and IndexError 05:50 - AttributeError 07:45 - NameError (two ways!) 11:20 - Variable reuse
0x23 Python for (Nuke) Compers - Python dictionaries
Просмотров 5613 года назад
By now you'll have all seen/done/tried using a dictionary. It's a fundamental data structure that you'll find handy and I wanted to run through this to cover off on some of the common questions you might have. 0:00 - making a lookup of camera terms to start with 5:00 - building a colour swatch picker using switches and a dropdown 10:20 - doing the same, with all the logic/lookup centralised 14:...
0x22 Python for (Nuke) Compers - Cascading Pulldown Knobs! (Enumerations)
Просмотров 2,4 тыс.3 года назад
Getting back into it, thought I'd demonstrate some stuff around making knobs via python, plus the annoying case with nuke.SAVE_MENU on dropdown. (the echo is 100% due to an audio misconfig. oops.) 0:00 - making one of these things 4:40 - getting information out of these things 8:00 - do you want the index? or the value? 10:20 - why is the return value a float? :P 11:30 - nuke.SAVE_MENU and stra...
0x21.2 Python for (Nuke) Compers - making a curvetool, but slower!
Просмотров 6283 года назад
Bonus! Supplemental material for 0x21.1 if you were curious about the rig/thing we're using to demonstrate slowness. 00:00 Our reference 01:22 Using a NoOp (null) as a reference, sampling 07:15 Sample regions - take 1 10:30 Luminance! And how to NOT demonstrate something. 12:30 Sampling the image, pixel by pixel (a loop refresher) 17:45 Testing this against the reference 20:33 How slow *is* thi...
0x21.1 Python for (Nuke) Compers - Progress Indicators!
Просмотров 8613 года назад
It's often cited that the average artist spend over 27.32% of their time staring at progress indicators during the day. Let's see if we can get that up to 30%! Wait a second.. 00:00 Me not realising the camera is on 00:04 Dumping stuff to the terminal 04:45 Basics: Adoring kittens 07:00 Basics: Progress % progress time 10:50 Basics: Cancelling 13:20 Doing this for realz 15:30 Updating the UI (b...
0x20 Python for (Nuke) Compers - Testably True things, touching on Ternary operators (in TCL too!)
Просмотров 2853 года назад
Okay. So I may have gone silly with the title... it is kinda accurate though, here I'm just exploring the idea of things that aren't literally True, but evaluate to be True. 0:00 - Truthyness 5:12 - Using the none value as an example 8:14 - the 'or' operator and a 'default' value 10:20 - a gotcha! (use 'is None' instead) 11:24 - the ternary operator (TCL and Python) 14:50 - lemme (not) break it...
Brazen squirrel eyeballs peanut-scented bag. The things you see while out practicing on quads :P
Просмотров 933 года назад
To be fair, my bag has contained peanuts so it probably smells delicious... but it's still my bag. Cheeky bloody rodent. (also proof I don't *just* spend my time on the computer making videos :P)
0x19 Python for (Nuke) Compers - List Comprehensions
Просмотров 6543 года назад
0x19 Python for (Nuke) Compers - List Comprehensions
0x18 Python for (Nuke) Compers - to infinity and wait.. what?
Просмотров 8263 года назад
0x18 Python for (Nuke) Compers - to infinity and wait.. what?
0x17 Python for (Nuke) Compers - knobChanged callbacks
Просмотров 2 тыс.3 года назад
0x17 Python for (Nuke) Compers - knobChanged callbacks
0x16 Python for (Nuke) Compers - Callbacks (an intro)
Просмотров 1,2 тыс.3 года назад
0x16 Python for (Nuke) Compers - Callbacks (an intro)
0x15 Python for (Nuke) Compers - poking at the menu system
Просмотров 8623 года назад
0x15 Python for (Nuke) Compers - poking at the menu system
0x14 Python for (Nuke) Compers - remaking topnode and recursion
Просмотров 1,4 тыс.3 года назад
0x14 Python for (Nuke) Compers - remaking topnode and recursion
Nuke's Shuffle2 - a minor gotcha with the UI and getting odd pixels
Просмотров 2733 года назад
Nuke's Shuffle2 - a minor gotcha with the UI and getting odd pixels
0x13 Python for (Nuke) Compers - Let's add a python button?
Просмотров 2,7 тыс.3 года назад
0x13 Python for (Nuke) Compers - Let's add a python button?
0x12 Python for (Nuke) Compers - Regexes
Просмотров 7043 года назад
0x12 Python for (Nuke) Compers - Regexes
0x11 Python for (Nuke) Compers - Clones :(
Просмотров 8793 года назад
0x11 Python for (Nuke) Compers - Clones :(
0x10 Python for (Nuke) Compers - Walking the tree, with inputs and dependencies
Просмотров 2 тыс.3 года назад
0x10 Python for (Nuke) Compers - Walking the tree, with inputs and dependencies
0x09 Python for (Nuke) Compers - Anatomy of a function. Sorry this is kinda long :|
Просмотров 1,1 тыс.3 года назад
0x09 Python for (Nuke) Compers - Anatomy of a function. Sorry this is kinda long :|
0x08 Python for (Nuke) Compers - A quick diversion to the script editor
Просмотров 1,2 тыс.3 года назад
0x08 Python for (Nuke) Compers - A quick diversion to the script editor
0x07 Python for (Nuke) Compers - More loops, and a (very) brief look at some error handling
Просмотров 1,4 тыс.3 года назад
0x07 Python for (Nuke) Compers - More loops, and a (very) brief look at some error handling
0x06 Python for (Nuke) Compers - Groups. Ugh.
Просмотров 2,2 тыс.3 года назад
0x06 Python for (Nuke) Compers - Groups. Ugh.

Комментарии

  • @MMMMeeeeMMMM
    @MMMMeeeeMMMM Месяц назад

    Cheese is back !

  • @herdiansaputra6948
    @herdiansaputra6948 Месяц назад

    stumbled upon this like 3-4 weeks ago and found the solution to this issue the hard way (took me 3 days scratching my head on why it happened)

  • @nicolasgrondin1768
    @nicolasgrondin1768 Месяц назад

    Cheese is back !

  • @RorrixPirrorrix
    @RorrixPirrorrix 4 месяца назад

    AMIGO SE VE EPICARDOOOOOO, TAN SOLO CON ESTE CAPITULO YA SE NOTA QUE ES GOOOOOOOOOOD EPICARDO PAPU!!!!!

  • @yzoro9358
    @yzoro9358 7 месяцев назад

    uhh a little bit of a silly question maybe but, is this tailored towards people who already know Python? or people who doesn't know anything about python at all. Thank you!

    • @tanantish
      @tanantish 7 месяцев назад

      Not a silly question at all! Back when i started these I was focusing more on general concepts in the context of nuke - I was assuming that people would have some basic python so I don't think i cover very well (at all) core things like python's syntax and what I think of as "housekeeping" like modules, classes, and things like that. Unfortunately I don't know what it feels like to not know python anymore (if that makes any sense) - if you have a poke at the first two vids and it's completely "WTaF is going on??!" could you see if you can explain what you're missing? It might be time for me to carve something up that'll try take someone from the don't know anything about python _at all_ level and that could give me some hints at what i should target.

  • @aeliusdawn
    @aeliusdawn 7 месяцев назад

    Ah a fellow montrealer!

    • @tanantish
      @tanantish 7 месяцев назад

      There's dozens of us, dozens i say! (well, okay, more than dozens :D)

  • @lovethegamer45
    @lovethegamer45 10 месяцев назад

    Please help i got syntax error

  • @roy_tanmoy
    @roy_tanmoy Год назад

    thanks for the tutorial, but i was searching if there's any way to change the color of the button, not the label

  • @ocdvfx
    @ocdvfx Год назад

    Oh this series is gold!

  • @vikaskaushalrajput6464
    @vikaskaushalrajput6464 Год назад

    Watching the whole series. Day by day i am exploring nuke in more depth. Thanks for the valuable information.

  • @sajjadpirbodaghi1778
    @sajjadpirbodaghi1778 Год назад

    hey Anthony, thanks for creating such great videos, is it possible to create a more useful, touchable, and less technical tutorial for those who do not have any ideas about stuff behind the scene?

    • @tanantish
      @tanantish Год назад

      When you say less technical, what kind of level were you imagining? There's a threshold at which things sort of break down, but since my brain is wired to think in code my assumption of what a 'minimum' level of technical might be a bit higher than is really necessary XD

    • @sajjadpirbodaghi1778
      @sajjadpirbodaghi1778 Год назад

      @@tanantish hey thanks for reaching out, I am sure you have been at great studios, if it's possible creat some tutorials on the pipeline these studios are specializing for themselves, they use python and I think I need to see python in actual real world, thanks again

  • @sajjadpirbodaghi1778
    @sajjadpirbodaghi1778 Год назад

    heeey Anthony, thanks for such perfect videos, I have been digging since here and I am sure you have been to big studios, can you create a more practical tutorial on what studios are doing? like minor and major versioning, also scale your videos a bit, I am testing and watching on a laptop, and the screen is not so big, thanks again

  • @Serena416
    @Serena416 Год назад

    Thank you so much for the video, I just didn't know where to start and this really helps

  • @mcrxsi
    @mcrxsi Год назад

    cool!

  • @mcrxsi
    @mcrxsi Год назад

    Thanks! so good videos

  • @marioCazares
    @marioCazares Год назад

    Thank you! This helped me with trying to do stuff to nodes within backdrops and such and it worked :D

  • @TheLinAndre
    @TheLinAndre Год назад

    Is there a way to add the callback locally, seems like the callback in nuke in the company I work for is reverted every new instance of nuke

    • @tanantish
      @tanantish Год назад

      Depends on how it's set up, you could pop something in your personal .nuke init/menu.py that'd run - it theoretically is the last thing so it could override stuff but if your facility has some general setup it might not be wise to fight it as there's likely reasons (we had callbacks to ensure things worked on farm properly, or when things got shipped to farm one of the things inaccessible might be a user's home folder). If there's a local TD you can poke, they might be able to shed some light on why things are the way they are and give you an idea of what's safe to do locally.

  • @TheLinAndre
    @TheLinAndre Год назад

    Thanks for making this, this is very helpful

  • @cerl7237
    @cerl7237 Год назад

    dude you rule

  • @megakaputmacher
    @megakaputmacher Год назад

    damn thank you so much for doing this series, it has helped me a great deal in getting started on this topic:)

  • @advfx9535
    @advfx9535 Год назад

    # Result: Traceback (most recent call last): File "<string>", line 1, in <module> TypeError: 'str' object is not callable getting this error on typing = "the_node = nuke.selectedNode()"

  • @NachoHoyos
    @NachoHoyos Год назад

    Thanks for all these tutorials Anthony, really appreciate it! :)

  •  Год назад

    Hi man, great videos, very helpful, thanks a lot. 1 question: how would you make it to be able to go to the topNode but instead of always follow the b stream or input 0, to follow the active input in a switch, if there is one on the way. thanks again!

    • @tanantish
      @tanantish Год назад

      If you want to give it a shot in python, the main change is the logic about where to go - instead of always going this_node.input(0) you would need to insert some picker logic. For active input, it'd be something like this (in pseudocode) if this_node.class(Switch): the_input_to_follow = this_node.input(this_node.knob(which).value()) else: the_input_to_follow = this_node.input(0) That same logic could force it to always walk down say, a mask input if there is one, or do all sorts of other fancy things.

    •  Год назад

      @@tanantish hey Anthony, thanks a lot, and thanks for the videos, you are doing a big service here, cheers!

  • @lionlee19hk
    @lionlee19hk Год назад

    Watched all videos in 2 days. Awesome tutorials . Can't believe it is free !

  • @lionlee19hk
    @lionlee19hk Год назад

    12:00 I think it s better to use "finally" instead of "except" you want to exit the group no matter if there s error

    • @tanantish
      @tanantish Год назад

      Yep, you're right there - "finally" will always be called no matter what so if there's things that must be done that's the right place for them, while "except" would be where you stash the 'oh no, it broke?' code :D

  • @tahersasta2019
    @tahersasta2019 Год назад

    Hey, Anthony Loved your content. Your Content helped me gain a lot of experience. Would love an additional series where you end up teaching how to create a particular pipeline tool that is commonly used or something in that realm. Your way of explaining is a gem

  • @tahersasta2019
    @tahersasta2019 Год назад

    Thank You So much . Such Great Content

  • @DDProductionOfficialAG
    @DDProductionOfficialAG 2 года назад

    Hi Anthony, thanks for your sharing, it's so amazing and helpful. I'm also a passionate compositor and I have started learning Python for Comp for one month. Could I have your contact (like Facebook, Discord, Telegram, etc) and ask some questions I meet in my learning process. Hope you could reply me!

  • @PowerLlama
    @PowerLlama 2 года назад

    Not sure if you're taking requests for videos, but I was curious if you could dig into (or if you know about) generating OCIO configs through python. Or OCIO configs in general?

    • @tanantish
      @tanantish 2 года назад

      Been a bit swamped with backlogs, i can tryyyy look at OCIO but that's something i've never generated from scratch before. Lemme see :D

  • @PowerLlama
    @PowerLlama 2 года назад

    Ha, the print("AArrgghh ") is definitely not something you did. In my update plugin tcl as well.

    • @tanantish
      @tanantish 2 года назад

      ahaahaha.. okay, glad to know :D

  • @danilodelucio
    @danilodelucio 2 года назад

    Never thought to use a bait node to select the top one, really interesting. Thanks Anthony!!

  • @ronreyes395
    @ronreyes395 2 года назад

    Anthony Tan!!! you are awesome! thank you for sharing this!! i will always like and subscribe your videos

  • @leunam3955
    @leunam3955 2 года назад

    Nice to see you back Anthony, always super interesting to hear from someone as experienced like you! Please keep the good work going, there is so much to learn from! Thank you!

  • @halendraentertainment.1571
    @halendraentertainment.1571 2 года назад

    GOOD JOB SIR

  • @ashkaneefa
    @ashkaneefa 2 года назад

    Great Job Keep Going Like This

  • @luanhtuan15
    @luanhtuan15 2 года назад

    Thank you so much Anthony Tan for sharing the experience TD in Nuke! if you have a course online i will support

  • @dariospinelli6800
    @dariospinelli6800 2 года назад

    Hey! thanks for this one and the rest of precious contents you are doing :) do you have any idea why 'nuke.knobDefault('ScanlineRender.motion_vectors_type', '0')' does not work? but if I do a normal setValue same knob same value it works, no clue about

    • @tanantish
      @tanantish 2 года назад

      That is indeed a good question :| I just poked and it looks like the default on the scanlinerender for motion vectors is 1.0 as well... so you're not going insane. I er.. have no idea to be honest.

    • @tanantish
      @tanantish 2 года назад

      What in the absolutle flip?? I did a quick dig - does nuke.knobDefault('ScanlineRender.output_motion_vectors_type', 'off') work for you? If it does, and it's not just me I will handwave a bit more. But ugh. If that works that's just.. grr. (ie. setting the default on the OUTPUT_motion_vectors_type knob)

  • @PowerLlama
    @PowerLlama 2 года назад

    Anthony's back!

  • @htmldigger5261
    @htmldigger5261 2 года назад

    Thanks for your new video, glad you came back.

  • @joyce.777
    @joyce.777 2 года назад

    its good to see you back..

  • @rajeshanbu2310
    @rajeshanbu2310 2 года назад

    Thanks for making this Python tutorial video...

  • @golankbueno9655
    @golankbueno9655 2 года назад

    Nice video, glad you're uploading again!

    • @tanantish
      @tanantish 2 года назад

      It'll be a slow burn methinks, but i'm still floating around and will be putting stuff up as i go, thanks for the support! :D

  • @bondell1840
    @bondell1840 2 года назад

    Hi anthony can you do a pyhton tutorial on how to create a shuffle breakout in nuke?

    • @tanantish
      @tanantish 2 года назад

      Can you describe what you mean by a shuffle breakout? (usually if in studio i'd just roll the chair over and ask to make sure i don't have the idea all wacky)

    • @tanantish
      @tanantish 2 года назад

      @@bondell1840 Aaaah, gotcha - lemme send out a note to the original video author and check in. No promises, but lemme see if i can do a breakdown as it were.

  • @firatcicek9885
    @firatcicek9885 2 года назад

    Your videos are really great. There are not many TD related channels that cover building tools with Python.

  • @adler192
    @adler192 2 года назад

    Thanks! Very useful content

  • @abdoshawcket1890
    @abdoshawcket1890 2 года назад

    hi Anthony Tan I have a problme with nuke project i work on it much time and when i open it i see meesage(missing close - brace) and all data was missing . please if you know how can i fix it you could help me

    • @tanantish
      @tanantish 2 года назад

      Ah, yeah, that one is the result of a corruption on save (or the file got mangled) - unfortunately there's not generally an automagic way to fix that, it's something to open the file up and try salvage bits of it unfortunately - unless it's super important generally it's a case of rolling back to backups :(

    • @abdoshawcket1890
      @abdoshawcket1890 2 года назад

      @@tanantish thank you Anthony

  • @chainjohn94
    @chainjohn94 2 года назад

    very usefull video . keep rock bro 💯

  • @bondell1840
    @bondell1840 2 года назад

    OMG YES!

  • @vidhun
    @vidhun 2 года назад

    I have learned a lot watching from your videos, I hope you continue the series in future :). This python training is kinda unparalled to all others available on RUclips.

  • @sebastianbrandow914
    @sebastianbrandow914 2 года назад

    Such a great series, thanks for sharing!