-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSet_project.py
138 lines (100 loc) · 6.41 KB
/
Set_project.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import nuke,os,ConfigParser
def Set_project():
if os.path.exists(os.path.join(os.path.expanduser("~"),".nuke","Set_project.ini")):
pass
else:
f = ConfigParser.ConfigParser()
f.add_section("Set_project")
f.set("Set_project", "width", "1920")
f.set("Set_project", "height", "1080")
f.set("Set_project", "pixel aspect", "1")
f.set("Set_project", "fps", "24")
f.set("Set_project", "Write channels", "rgb")
f.set("Set_project", "Write node codec", "ap4h")
f.set("Set_project", "Write mov write time code", "False")
f.set("Set_project", "Viewer full_frame_processing", "False")
f.set("Set_project", "Read raw data", "False")
f.set("Set_project", "Write raw data", "False")
f.set("Set_project", "Retime automatically output to the project start frame", "False")
f.set("Set_project", "Rendering automatically create a rendering path", "False")
f.write(open(os.path.join(os.path.expanduser("~"),".nuke","Set_project.ini"),"w"))
f = ConfigParser.ConfigParser()
f.read(os.path.join(os.path.expanduser("~"),".nuke","Set_project.ini"))
size = [f.get("Set_project", "width"),f.get("Set_project", "height"),"0","0",f.get("Set_project", "width"),f.get("Set_project", "height"),f.get("Set_project", "pixel aspect"),f.get("Set_project", "width")+"*"+f.get("Set_project", "height")]
nuke.knobDefault("Root.format"," ".join(size))
nuke.knobDefault("Root.fps",f.get("Set_project", "fps"))
nuke.knobDefault("Write.channels",f.get("Set_project", "Write channels"))
nuke.knobDefault("Write.mov.meta_codec",f.get("Set_project", "Write node codec"))
nuke.knobDefault("Write.mov.mov64_write_timecode",f.get("Set_project", "Write mov write time code"))
nuke.knobDefault("Viewer.full_frame_processing",f.get("Set_project", "Viewer full_frame_processing"))
nuke.knobDefault("Read.raw",f.get("Set_project", "Read raw data"))
nuke.knobDefault("Write.raw",f.get("Set_project", "Write raw data"))
nuke.knobDefault("Write.raw", f.get("Set_project", "Retime automatically output to the project start frame"))
if panduan(f.get("Set_project", "Retime automatically output to the project start frame")):
nuke.addOnUserCreate(auto_retime)
if panduan(f.get("Set_project", "Rendering automatically create a rendering path")):
nuke.addBeforeRender(chuangjian)
menubar = nuke.menu("Nuke");
m = menubar.addMenu("Set the project default")
m.addCommand("Set the project default", Set_project_ui)
def Set_project_ui():
f = ConfigParser.ConfigParser()
f.read(os.path.join(os.path.expanduser("~"), ".nuke", "Set_project.ini"))
Write_channels = ["all","rgb","rgba","alpha"]
Write_channels.remove(f.get("Set_project", "Write channels"))
Write_channels.insert(0,f.get("Set_project", "Write channels"))
Write_codec = {"Apple_ProRes_4444": "ap4h",
"Apple_ProRes_4444_XQ": "ap4x",
"Apple_ProRes_422": "apcn",
"Apple_ProRes_422_HQ": "apch",
"Apple_ProRes_422_LT": "apcs",
"Apple_ProRes_422_Proxy": "apco",
"Component_Video": "yuv2",
"H.264": "avc1",
"MPEG-4_Video": "mp4v"
}
p = nuke.Panel("Set the project default")
p.addSingleLineInput("width",f.get("Set_project", "width"))
p.addSingleLineInput("height", f.get("Set_project", "height"))
p.addSingleLineInput("pixel aspect", f.get("Set_project", "pixel aspect"))
p.addSingleLineInput("fps", f.get("Set_project", "fps"))
p.addEnumerationPulldown("Write default channels"," ".join(Write_channels))
p.addEnumerationPulldown("Write MOV default encoding"," ".join(sorted(Write_codec.keys())))
p.addBooleanCheckBox('Write MOV automatically check "write time code"',panduan(f.get("Set_project", "Write mov write time code")))
p.addBooleanCheckBox('Viewer automatically check "full_frame_processing"',panduan(f.get("Set_project", "Viewer full_frame_processing")))
p.addBooleanCheckBox("Read raw data",panduan(f.get("Set_project", "Read raw data")))
p.addBooleanCheckBox("Write raw data",panduan(f.get("Set_project", "Write raw data")))
p.addBooleanCheckBox("Retime automatically output to the project start frame", panduan(f.get("Set_project", "Retime automatically output to the project start frame")))
p.addBooleanCheckBox("Rendering automatically create a rendering path",panduan(f.get("Set_project", "Rendering automatically create a rendering path")))
if p.show() :
f = ConfigParser.ConfigParser()
f.add_section("Set_project")
f.set("Set_project", "width", p.value("width"))
f.set("Set_project", "height", p.value("height"))
f.set("Set_project", "pixel aspect", p.value("pixel aspect"))
f.set("Set_project", "fps", p.value("fps"))
f.set("Set_project", "Write channels", p.value("Write default channels"))
f.set("Set_project", "Write node codec", Write_codec[p.value("Write MOV default encoding")])
f.set("Set_project", "Write mov write time code", str(p.value('Write MOV automatically check "write time code"')))
f.set("Set_project", "Viewer full_frame_processing", str(p.value('Viewer automatically check "full_frame_processing"')))
f.set("Set_project", "Read raw data", str(p.value("Read raw data")))
f.set("Set_project", "Write raw data", str(p.value("Write raw data")))
f.set("Set_project", "Retime automatically output to the project start frame", str(p.value("Retime automatically output to the project start frame")))
f.set("Set_project", "Rendering automatically create a rendering path", str(p.value("Rendering automatically create a rendering path")))
f.write(open(os.path.join(os.path.expanduser("~"), ".nuke", "Set_project.ini"), "w"))
def panduan(a):
if a == "False":
return False
else:
return True
def chuangjian():
file = os.path.dirname(nuke.filename(nuke.thisNode()))
if os.path.exists(file):
pass
else:
os.makedirs(file)
def auto_retime():
nuke.knobDefault("Retime.output.first_lock", "true")
nuke.knobDefault("Retime.output.first", str(int(nuke.Root()["first_frame"].value())))