1010--track6:Z Rotation,-3600,3600,0,0.01
1111--select@s0:Rotation Mode=21,Quaternion=0,Axis Angle=1,XYZ Euler=5,XZY Euler=7,YXZ Euler=11,YZX Euler=15,ZXY Euler=19,ZYX Euler=21
1212--track7:Parent Layer,-100,100,0,1
13- --check0:Use Relative Layer,0
13+ --select@s1: Layer Reference,Absolute=0,Relative=1
1414--value@_0:PI,{}
1515
1616if (obj.getinfo("version") < 2001500) then
@@ -28,18 +28,13 @@ local ry = tonumber(_0.ry) or obj.track5
2828local rz = tonumber(_0.rz) or obj.track6
2929local rot_mode = tonumber(_0.rot_mode) or s0 s0 = nil
3030local parent_layer = math.floor(tonumber(_0.parent_layer) or obj.track7)
31- local use_rel_layer = obj.check0
32- if (type(_0.use_rel_layer) == "boolean") then
33- use_rel_layer = _0.use_rel_layer
34- elseif (type(_0.use_rel_layer) == "number") then
35- use_rel_layer = _0.use_rel_layer ~= 0
36- end
31+ local layer_ref = tonumber(_0.layer_ref) or s1 s1 = nil
3732_0 = nil
3833
3934local lib = obj.module("CameraTransform_K")
4035local cam = obj.getoption("camera_param")
4136
42- local layer = use_rel_layer and math.max(obj.layer + parent_layer, 1) or math.max(parent_layer, 0)
37+ local layer = layer_ref == 1 and math.max(obj.layer + parent_layer, 1) or math.max(parent_layer, 0)
4338local parent = {
4439 type = 0,
4540 x = 0.0,
@@ -160,24 +155,21 @@ local rot = {
160155}
161156
162157local elem = math.min(obj.screen_w, obj.screen_h) * 0.25 * scale
163- local vx = Vec:new(elem, 0.0, 0.0)
164- local vy = Vec:new(0.0, elem, 0.0)
165- local vz = Vec:new(0.0, 0.0, elem)
158+ local dx = Vec:new(elem, 0.0, 0.0)
159+ local dy = Vec:new(0.0, elem, 0.0)
160+ local dz = Vec:new(0.0, 0.0, elem)
166161
167162local cam = obj.getoption("camera_param")
168163local pos = Vec:new(x - cam.x, y - cam.y, z - cam.z)
169- local col = Vec:new( 0xf05050, 0x208020, 0x5050f0)
164+ local col = { 0xf05050, 0x208020, 0x5050f0}
170165
171166local lib = obj.module("CameraTransform_K")
172- local output = lib.rotate(rot, vx, vy, vz)
173-
174- vx = Vec:new(output.x0, output.y0, output.z0) + pos
175- vy = Vec:new(output.x1, output.y1, output.z1) + pos
176- vz = Vec:new(output.x2, output.y2, output.z2) + pos
167+ dx, dy, dz = lib.rotate(rot, dx, dy, dz)
177168
178- obj.setanchor({pos.x, pos.y, pos.z, vx.x, vx.y, vx.z}, 2, "line", "xyz", "color", col.x)
179- obj.setanchor({pos.x, pos.y, pos.z, vy.x, vy.y, vy.z}, 2, "line", "xyz", "color", col.y)
180- obj.setanchor({pos.x, pos.y, pos.z, vz.x, vz.y, vz.z}, 2, "line", "xyz", "color", col.z)
169+ for i, v in ipairs({dx, dy, dz}) do
170+ local t = v + pos
171+ obj.setanchor({pos.x, pos.y, pos.z, t.x, t.y, t.z}, 2, "line", "xyz", "color", col[i])
172+ end
181173
182174local name = obj.getoption("script_name", 1, true)
183175if (name == "Transform@CameraTransform_K") then
@@ -202,18 +194,18 @@ end
202194--infomation:Track${SCRIPT_NAME} ${VERSION} by ${AUTHOR}
203195--label:${LABEL}
204196--track0:Target Layer,-100,100,1,1
205- --check0:Use Relative Layer,0
197+ --select@s0: Layer Reference,Absolute=0,Relative=1
206198--track1:Influence,0,100,100,0.01
207199--value@_0:PI,{}
208200
201+ if (obj.getinfo("version") < 2001500) then
202+ debug_print("AviUtl ExEdit2 beta15 or later is required.")
203+ return
204+ end
205+
209206_0 = _0 or {}
210207local target_layer = math.floor(tonumber(_0.target_layer) or obj.track0)
211- local use_rel_layer = obj.check0
212- if (type(_0.use_rel_layer) == "boolean") then
213- use_rel_layer = _0.use_rel_layer
214- elseif (type(_0.use_rel_layer) == "number") then
215- use_rel_layer = _0.use_rel_layer ~= 0
216- end
208+ local layer_ref = tonumber(_0.layer_ref) or s0 s0 = nil
217209local influence = (tonumber(_0.influence) or obj.track1) * 0.01
218210_0 = nil
219211
223215
224216local cam = obj.getoption("camera_param")
225217local tx, ty, tz = 0.0, 0.0, 0.0
226- local layer = math.max(use_rel_layer and obj.layer + target_layer or target_layer, 1)
218+ local layer = math.max(layer_ref == 1 and obj.layer + target_layer or target_layer, 1)
227219if (layer ~= obj.layer and obj.getvalue("layer" .. layer .. ".x")) then
228220 tx = obj.getvalue("layer" .. layer .. ".x")
229221 ty = obj.getvalue("layer" .. layer .. ".y")
0 commit comments