OK got it figured out. Thanks all for the help.

This is why it didnt work:

i had a node X that acted as a trigger to run my code that modified the
rotoshape like this:

x -> roto -> viewer

This caused the x to evaluate as expected, the roto shape would update
correctly but it failed to redraw no matter what.

solution?

roto -> x -> viewer

tada! now the function evaluates correctly AND redraws the rotoshape
without me having to jump frames.







On Thu, Jul 25, 2013 at 12:39 PM, Gustaf Nilsson <[email protected]>wrote:

> Opening and closing the property bin doesnt work, possibly because the
> rotopaint node is inside a gizmo. Also, seems like a big waste of cpu
> cycles.
>
> Changing frames does work in the sense that i can change it to ANOTHER
> frame and the shape updates correctly, but if i change it back to the frame
> i was on, then i guess nukes clever caching set everything back to black
> again.
>
> Setting visibility doesnt do anything either.
>
> Now, the weird thing is: the frame does actually update correctly by
> itself, something like 5 seconds later. as if some timed redraw of the
> window forces the redraw.
>
> back to the drawing table...
>
>
>
>
> On Wed, Jul 24, 2013 at 10:02 PM, Magno Borgo <[email protected]> wrote:
>
>> **
>> That usually do it.
>>
>> If you don't update the roto node via python, closing it, reopening it on
>> the Properties panel should do it, sometimes you need to change the
>> current  frame to something else.
>> Is that working for you?
>>
>> Sometimes when creating curves from scratch you need to set some
>> properties, like visibility.
>> If you don't do it, you may need to select the curve on the node to see
>> it.
>>
>> Magno.
>>
>>
>>
>> I really really would have loved your answer to have worked, but
>> unfortunately not :(
>>
>> any other ideas?
>>
>>
>> On Wed, Jul 24, 2013 at 12:11 PM, Magno Borgo <[email protected]> wrote:
>>
>>> You need to  use something like this, using the changed() to update the
>>> rotonode:
>>>
>>>
>>> curves = node['curves']
>>>
>>> "your python magic here"
>>>
>>> curves.changed()
>>>
>>>
>>> On Wed, 24 Jul 2013 05:20:19 -0300, Gustaf Nilsson <
>>> [email protected]> wrote:
>>>
>>> hi
>>>
>>> I have a little python script that deletes all layers in a rotopaint
>>> node, then creates a new shape and sets its point values to something
>>> generated by the script.
>>>
>>> problem is that nuke doesnt actually redraw the shape when changing
>>> points programmatically. Understandable maybe as you wouldnt want it to
>>> redraw every time if you change a hundred points but is there anything i
>>> can call to force a redraw once i have set all the points? (other than
>>> changing frames)
>>>
>>> bug(?): clicking the "recalculate image (u)" button doesnt help.
>>>
>>> thanks
>>> G
>>>
>>> --
>>> ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
>>>
>>>
>>>
>>>
>>> --
>>> Magno Borgo
>>> Certified Nuke Trainer
>>> www.boundaryvfx.com
>>> www.borgo.tv
>>> Brasil:Curitiba:GMT= -3
>>>
>>> _______________________________________________
>>> Nuke-python mailing list
>>> [email protected], http://forums.thefoundry.co.uk/
>>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>>>
>>>
>>
>>
>> --
>> ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
>>
>>
>>
>>
>> --
>> Magno Borgo
>> Certified Nuke Trainer
>> www.boundaryvfx.com
>> www.borgo.tv
>> Brasil:Curitiba:GMT= -3
>>
>> _______________________________________________
>> Nuke-python mailing list
>> [email protected], http://forums.thefoundry.co.uk/
>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>>
>>
>
>
> --
> ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
>



-- 
■ ■ ■ ■ ■ ■ ■ ■ ■ ■
_______________________________________________
Nuke-python mailing list
[email protected], http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python

Reply via email to