சுருக்கம்
ஒரு Nuke ஸ்கிரிப்ட்டில் அனிமேஷன் விசைகளை அமைக்கும் போது (உதாரணமாக ஒரு Transform node அல்லது Roto mask இன் நிலையை விசையிடுதல்), Python வழியாக அனிமேஷன் வளைவுகளை வரையறுப்பது நிறைய நெகிழ்வுத்தன்மையை அளிக்கும். பயனர்கள் அனிமேஷன் விசைகளை உருவாக்குதல் மற்றும் நிலைநிறுத்துவதை தானியங்குபடுத்தலாம், தங்கள் தேவைகளுக்கு ஏற்ப சரிவுகளை சரிசெய்யலாம் மற்றும் பைப்லைனுக்குள் பயன்படுத்தப்படும் பல்வேறு கருவிகளில் வளைவுகளின் தரவைப் பகிரலாம்.
பைத்தானைப் பயன்படுத்தி அனிமேஷன் விசைகளை எவ்வாறு உருவாக்குவது மற்றும் வளைவு சரிவுகளைப் புதுப்பிப்பது என்பதை இந்தக் கட்டுரை விளக்குகிறது, இதில் சோதிக்கக்கூடிய எடுத்துக்காட்டு ஸ்கிரிப்டும் அடங்கும்.
மேலும் தகவல்
அனிமேஷன் விசைகள் Nuke அமைக்கப்படும்போது ( அனிமேட்டிங் அளவுருக்கள் மூலம்), கீஃப்ரேம்கள் வளைவு எடிட்டருக்குள் வளைவுகளாகக் காட்டப்படும்.
கீழே உள்ள ஸ்கிரீன்ஷாட்டில், ColorCorrect முனையின் கான்ட்ராஸ்ட் குமிழிக்காக, பல்வேறு பிரேம்களில் அமைக்கப்பட்ட அனிமேஷன் விசைகளிலிருந்து உருவாக்கப்பட்ட வளைவை நீங்கள் காணலாம்:

- முக்கிய மதிப்புகள் என்பது பயனர் கான்ட்ராஸ்ட் குமிழியில் ஒரு புதிய மதிப்பைச் சேர்த்த இடமாகும்.
- வளைவு திருத்தி ஒரு XY வரைபடத்தைப் பயன்படுத்துகிறது, அங்கு X சட்ட வரம்பைக் காட்டுகிறது மற்றும் Y மாறுபாடு குமிழ் மதிப்புகளைக் காட்டுகிறது.
- பயனரால் தேர்ந்தெடுக்கப்பட்ட கீஃப்ரேம் 1.16 மதிப்புடன் கூடிய பிரேம் 351 ஆகும்.
- தேர்ந்தெடுக்கப்பட்ட கீஃப்ரேம், சாய்வை வரையறுக்கும் அதன் தொடுகோடுகளையும் காட்டுகிறது. சாய்வை கையாளுவது, கீஃப்ரேம்களுக்கு இடையேயான வளைவுகளின் வடிவத்தைத் தனிப்பயனாக்கி, அதை மிகவும் மென்மையாகவோ அல்லது நிலையானதாகவோ மாற்றும்.
- தேர்ந்தெடுக்கப்பட்ட வளைவு மென்மையான இடைக்கணிப்பைப் பயன்படுத்துகிறது.
- வெளிப்பாடு புலம் அதன் வெளிப்பாடு வளைவு என்பதைக் காட்டுகிறது, இதன் பொருள் அனிமேஷன் வளைவு எடிட்டரில் உள்ள வளைவால் கட்டுப்படுத்தப்படுகிறது.
பைத்தானைப் பயன்படுத்தி கீஃப்ரேம்களை அமைத்தல்
பைதான் ஸ்கிரிப்ட் வழியாக கீஃப்ரேம் அனிமேஷன்களை உருவாக்கும்போது, ஒவ்வொரு விசைக்கும் பல பண்புக்கூறுகளை அமைக்க வேண்டும்.
இவற்றில் பின்வருவன அடங்கும்:
- x - புள்ளியின் கிடைமட்ட நிலை (சட்ட மதிப்பு)
- y - புள்ளியின் செங்குத்து நிலை (குமிழ் மதிப்பு)
- இடைக்கணிப்பு - முதல் விசையின் இடது சாய்வு மற்றும் கடைசி விசையின் வலது சாய்வு தவிர அனைத்து சரிவுகளையும் கணக்கிடப் பயன்படுகிறது.
- எக்ஸ்ட்ராபோலேஷன் - இடது-கடைசி மற்றும் வலது-கடைசி சரிவுகளைக் கணக்கிடுகிறது.
தனிப்பயன் இடைக்கணிப்பை அமைக்க, பின்வரும் பண்புகளை அமைப்பதன் மூலம் உருவாக்கப்பட்ட ஒவ்வொரு விசையின் தொடுகோடுகளையும் நீங்கள் தனித்தனியாக திருத்தலாம்:
- lslope - புள்ளியின் இடதுபுறத்தில் உள்ள வழித்தோன்றல்
- r சாய்வு - புள்ளியின் வலதுபுறத்தில் உள்ள வழித்தோன்றல்
- la - இடது 'பைகுபிக்' மதிப்பு
- r a - சரியான 'பைகுபிக்' மதிப்பு
இங்கே ஒரு கீஃப்ரேமின் தொடுகோடுகளைக் காண்பிக்கும் ஒரு ஸ்கிரீன்ஷாட் உள்ளது, lslope மற்றும் rslope ஐ முன்னிலைப்படுத்துகிறது:
Python AnimationKey வகுப்பைப் பற்றியும், இடைக்கணிப்பு மற்றும் எக்ஸ்ட்ராபோலேஷன் பண்புக்கூறுகளுக்கு நீங்கள் எந்த விருப்பங்களைப் பயன்படுத்தலாம் என்பதையும் பற்றி மேலும் அறிய, தயவுசெய்து Nuke Python API குறிப்பு வழிகாட்டியின் AnimationKey பகுதியைப் பார்க்கவும்.
எடுத்துக்காட்டு ஸ்கிரிப்ட்
கீஃப்ரேம் அனிமேஷன் வளைவை எவ்வாறு தானியக்கமாக்குவது என்பதைக் காட்டும் பைதான் ஸ்கிரிப்ட்டின் உதாரணத்தை நீங்கள் இணைக்கப்பட்டுள்ளீர்கள். இது Nuke ஸ்கிரிப்ட் எடிட்டரில் செயல்படுத்தப்படும்போது, அது அனிமேஷன் செய்யப்பட்ட வண்ண குமிழியுடன் ஒரு நிலையான முனையை உருவாக்கும்.
ஸ்கிரிப்டை மதிப்பாய்வு செய்ய, இணைக்கப்பட்ட கோப்பை ( CurveTest.py ) Nuke இன் ஸ்கிரிப்ட் எடிட்டர் அல்லது உரை எடிட்டிங் மென்பொருளில் (PyCharm, Sublime Text, Notepad++ போன்றவை) பதிவிறக்கம் செய்து திறக்கவும் .
ஸ்கிரிப்டை NUKE ஆயுதத்தில் பயன்படுத்துதல்
Nuke க்குள், CurveTest.py கோப்பை இறக்குமதி செய்வதன் மூலமோ அல்லது அதன் உள்ளடக்கத்தை ஸ்கிரிப்ட் எடிட்டரில் நகலெடுத்து/ஒட்டுவதன் மூலமோ, பின்னர் அதை இயக்குவதன் மூலமோ ஸ்கிரிப்டை சோதிக்க முடியும்.
ஸ்கிரிப்ட் செயல்படுத்தப்பட்டதும், அது வண்ண குமிழியில் அனிமேஷன் விசைகளுடன் ஒரு நிலையான முனையை உருவாக்கும்.
ஒரு முனையைத் தேர்ந்தெடுத்து அதை கர்வ் எடிட்டரில் பார்ப்பது அதன் அனிமேஷன் விசைகளை ஆய்வு செய்து உருவாக்கப்பட்ட வளைவைப் பார்க்க உங்களை அனுமதிக்கும்.
கர்வ் எடிட்டர் தாவலில் நீங்கள் ஆய்வு செய்யக்கூடிய ஸ்கிரிப்ட்டின் வெளியீடு கீழே உள்ளது:
விசைகளை கைமுறையாகக் கையாள முடியும். ஒரு விசையைத் தேர்ந்தெடுப்பது அதன் தொடுகோடுகளைக் காண்பிக்கும், அவற்றை மேலும் கையாளலாம்.
மேம்பட்ட குறிப்புகள் மற்றும் செயல்முறைகள் உட்பட வளைவுகளைத் திருத்துவது பற்றிய கூடுதல் தகவலுக்கு, தயவுசெய்து Nuke ஆவணத்தின் எடிட்டிங் வளைவுகள் பகுதியைப் படிக்கவும்.
ஸ்கிரிப்ட் விளக்கம்
CurveTest.py பைதான் ஸ்கிரிப்ட், ஒவ்வொரு செயல்பாடும் என்ன செய்கிறது மற்றும் அது ஏன் ஸ்கிரிப்ட்டில் பயன்படுத்தப்படுகிறது என்பதை விளக்கும் கருத்துகளை உள்ளடக்கியது. சில செயல்பாடுகள் மற்றும் கருத்துகளின் உயர் மட்ட கண்ணோட்டம் கீழே சேர்க்கப்பட்டுள்ளது:
அனிமேஷன் வளைவு மாறிகளை அமைத்தல்
அனிமேஷன் வளைவை வரையறுக்கப் பயன்படுத்தப்படும் தரவின் துவக்கத்துடன் ஸ்கிரிப்ட் தொடங்குகிறது.
இந்தத் தரவை அமைப்பதற்கான ஒரு வழி, விசையின் சட்டகம், மதிப்பு மற்றும் தொடுகோடு தகவல்களை பைதான் அகராதி பொருளுக்குள் வைத்திருப்பது, பின்வருமாறு:
# Curve data stored in dictionary object
curve_data = {1: {'val': 1, 'in_slope': 0.0}, 30: {'val': 10, 'in_slope': 0.0}, 50: {'val': 5, 'in_slope': -56.957}, 60: {'val': 0, 'in_slope': -14.341}, 70: {'val': 5, 'in_slope': 56.957}, 80: {'val': 5, 'in_slope': -77.891}, 90: {'val': 5, 'in_slope': 0.0}}
புதிய அனிமேஷன் கீஃப்ரேம்கள் அகராதி பொருளுடன் சேர்க்கப்படுகின்றன, பின்னர் ஒவ்வொரு விசையையும் அனிமேஷன் வளைவில் சேர்ப்பதன் மூலம் அகராதி சுழற்றப்படுகிறது.
செயல்பாட்டைப் பயன்படுத்துதல்
மற்ற ஸ்கிரிப்டுகளில் வளைவை திறமையாகவும் மீண்டும் பயன்படுத்தக்கூடியதாகவும் மாற்ற, அனைத்து செயல்பாடுகளும் ஒரு def (செயல்பாடு) இல் வைக்கப்படுகின்றன. அனைத்து வரையறையும் சார்ந்திருப்பதால், இதை மற்ற பைதான் ஸ்கிரிப்டுகளுடன் எளிதாக ஒருங்கிணைக்க முடியும், இது அகராதி பொருளால் கொடுக்கப்பட்ட 'வளைவு_தரவு' ஆகும்:
def create_curve(curve_data):
முனை மற்றும் குமிழியை அமைத்தல்
ஸ்கிரிப்ட்டின் உதாரண வழக்கில், நாம் ஒரு நிலையான முனையை உருவாக்கி, அதன் வண்ணக் குமிழியில் வளைவு அனிமேஷன் தரவைச் சேமிக்கிறோம். இந்த அமைப்பை வேறு முனை மற்றும் குமிழிக்கு நீங்கள் பயன்படுத்த விரும்பினால், கீழே உள்ள வரிகளில் அவற்றின் பெயரை மாற்றலாம்:
node = nuke .createNode('Constant')
attr = node['color']
attr.setAnimated()
அனிமேஷன் செய்யப்பட்ட குமிழியில் பல விசைகளைச் சேர்க்க, குமிழி கூடுதலாக 'அனிமேஷன்' ஆக அமைக்கப்பட வேண்டும்.
தனிப்பயன் இடைக்கணிப்பு
AnimationKey ஆவணத்தில் விவரிக்கப்பட்டுள்ளபடி, nuke .USER_SET_SLOPE அமைக்கப்பட்டால், இடைக்கணிப்பு மற்றும் எக்ஸ்ட்ராபோலேஷன் புறக்கணிக்கப்பட்டு, அதற்கு பதிலாக பயனர் உருவாக்கிய டேன்ஜென்ட்கள் பயன்படுத்தப்படும்.
பைதான் ஸ்கிரிப்ட்டில் 55வது வரியைப் பார்த்தால், changeInterpolation() செயல்பாடு 'nuke.USER_SET_SLOPE' என அமைக்கப்பட்டுள்ளது, அதாவது அனிமேஷன் வளைவு தனிப்பயன் இடைக்கணிப்பு தொடுகோடுகளைப் பயன்படுத்துகிறது.
curve.changeInterpolation(keys, nuke .USER_SET_SLOPE)
நீங்கள் ஒரு அச்சு அறிக்கையைச் சேர்த்தால்:
curve.changeInterpolation(keys, nuke .USER_SET_SLOPE)
print (curve.toScript())
பின்னர் ஸ்கிரிப்ட் எடிட்டரில் ஸ்கிரிப்டை இயக்கவும், வளைவிலிருந்து பின்வரும் தனிப்பயன் இடைக்கணிப்பு தகவலைப் பெறுவீர்கள்:
{curve l x1 1 s0 x30 10 s0 x50 5 s-56.957 x60 0 s-14.341 5 s56.957 5 s-77.891 5 s0}
தனிப்பயன் உருவாக்கப்பட்ட அனைத்து தொடுகோடுகளும் அனிமேஷன் வளைவில் வெற்றிகரமாக சேர்க்கப்பட்டுள்ளன, மேலும் அவை உங்கள் கான்ஸ்டன்ட் முனையின் வண்ண குமிழியில் தோன்றும்.
நீங்கள் curve.changeInterpolation(keys, nuke .USER_SET_SLOPE) உடன் எடுத்துக்காட்டு ஸ்கிரிப்டை இயக்கினால், கருத்து தெரிவித்து, அதே அச்சு அறிக்கையைச் சேர்த்தால்:
#curve.changeInterpolation(keys, nuke .USER_SET_SLOPE)
print(curve.toScript())
வளைவு இயல்புநிலை தரவை இவ்வாறு காண்பிக்கும்:
{curve x1 1 x30 10 x50 5 x60 0 5 5 5}
குறிப்பு: புதிதாக உருவாக்கப்பட்ட அனிமேஷன் வளைவின் விசைகளைக் கையாளுவது, Nuke பைதான் API குறிப்பு வழிகாட்டியின் அனிமேஷன் கீ பிரிவில் விவரிக்கப்பட்டுள்ளபடி, வளைவு இடைக்கணிப்பை இயல்புநிலை நிலைக்கு மீட்டமைக்கும்.
We're sorry to hear that
Please tell us why