forked from M1A2C/AviutlDevelopingScripts
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path@ParallelCameraToObj.anm
More file actions
112 lines (96 loc) · 4.07 KB
/
@ParallelCameraToObj.anm
File metadata and controls
112 lines (96 loc) · 4.07 KB
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
--[
=== ParallelCameraToObj ver1.1===========//// by Aodaruma
これはParallelCameraスクリプトの機能を拡張するスクリプトです。
先にParallelCameraを設定しないと動きません。ご了承ください。
●カメラ視線に同期について
「カメラ視線に同期」は、カメラ視線についていくスクリプトです。そのままです。
これはParallelCameraの「座標出力」にチェックを入れていないと作動しません(対策はしていますが、チェックを入れていたほうが早いです)。
ずれXはX座標、ずれYはY座標、ずれZはZ座標にそれぞれカメラ視線の座標と加算させます。
拡大率はオブジェクトの拡大率、仮想バッファはそのスクリプトの上のエフェクトや円形配置などのスクリプトをそのままバッファとして保存し、画像として同期させるようにしています。
エフェクトや複数配置を消したくないというときに使うと便利です。
●情報表示について
「情報表示」は、カメラの位置座標の情報表示に使います。
ParallelCameraの情報表示にチェックを入れていないと作動しません。
また、「カメラ制御の対象」をoffにしていないと、うまく表示されないことがあります。
現在このくらいしか思いつきませんでしたが、近々更新させ、完成させる予定です。
意見や疑問があればTwitterまで。
更新日時: 23:14 2016/07/25
Twitter: @Aodaruma_
更新履歴========
v1.1 - 情報表示に回転も表示させる。パララックス効果機能付与。
v1.0 - ParallelCameraToObj、正式版作成。
]]--
--------------------------------------------------
@カメラ視線に同期
--------------------------------------------------
--track0:変換度%,0,300,100
--track1:ずれX,-3000,3000,0,0.01
--track2:ずれY,-3000,3000,0,0.01
--track3:ずれZ,-5000,5000,0,0.01
--check0:表示,1
--dialog:Seed,local seed=333;カメラの方向を向く/chk,local isToCamera=1;回転ランダム,local angleRand=10;シャドーから対象外にする/chk,local isInvalidShadow=1;座標を加算/chk,local idObj=1;複数obj対応/chk,local isMulti=1;パララックス(0~3),local Pal=0;パララックス座標差, local disPal=1024;
local disX, disY, disZ=obj.track1, obj.track2, obj.track3
local cam=obj.getoption("camera_param")
local af=obj.track0/100
local uf=1-af
local vX, vY, vZ=0
local ddisx, ddisy, ddisz = math.abs(obj.ox+obj.x-cam.x), math.abs(obj.oy+obj.y-cam.y), math.abs(obj.oz+obj.z-cam.z)
local t = math.abs(math.sqrt(ddisx^2+ddisy^2+ddisz^2))
if(obj.check0) then
if(idObj==1) then
vX, vY, vZ=obj.ox, obj.oy, obj.oz
end
if(isMulti==1 and obj.num>1) then
obj.ox=cam.tx*af+obj.ox*uf+obj.rand(-1000,1000,seed,1)*disX*af/100+obj.ox+vX
else
obj.ox=cam.tx*af+obj.ox*uf+obj.rand(-1000,1000,seed,1)*disX*af/100+vX
end
obj.oy=cam.ty*af+obj.oy*uf+obj.rand(-1000,1000,seed,1)*disY*af/100+vY
obj.oz=cam.tz*af+obj.oz*uf+obj.rand(-1000,1000,seed,1)*disZ*af/100+vZ
if(isInvalidShadow==1) then obj.setoption("shadow",0) end
if(isToCamera==1) then
obj.setoption("billboard",3)
else
obj.rx=obj.getvalue("rx")*uf+obj.rand(-1280,1280,seed,1)*angleRand*af
obj.ry=obj.getvalue("ry")*uf+obj.rand(-1280,1280,seed,1)*angleRand*af
obj.rz=obj.getvalue("rz")*uf+obj.rand(-1280,1280,seed,1)*angleRand*af
end
if(Pal==1) then
obj.zoom=obj.zoom*uf+(t/disPal)*af
elseif(Pal==2) then
obj.zoom=obj.zoom*af+math.abs(math.sqrt(ddisx^2))/disPal*uf
elseif(Pal==3) then
obj.zoom=obj.zoom*af+math.abs(math.sqrt(ddisy^2))/disPal*uf
elseif(Pal==4) then
obj.zoom=obj.zoom*af+math.abs(math.sqrt(ddisz^2))/disPal*uf
elseif(Pal==0) then
else
obj.load("パララックス効果が指定できるのは0~4までです。",text)
end
end
--------------------------------------------------
@情報表示
--------------------------------------------------
--track0:表示,0,1,1,1
--track1:fontsize,0,800,100
--track2:CLayer,1,100,1,1
local cam=obj.getoption("camera_param")
local size=obj.track1
local disp=""
local la=obj.track2
obj.setfont("メイリオ",size)
if(PCi[la]==nil) then
obj.load("そのレイヤーにはカメラ制御、\nまたは情報表示にチェックがされていません。")
else
disp="ParallelCamera\ncamX:"..tostring(PCi[la][1])..", camY:"..tostring(PCi[la][2])..", camZ:"..tostring(PCi[la][3]).."\n"
.."cam視線X:"..tostring(PCi[la][4])..", cam視線Y:"..tostring(PCi[la][5]).."cam視線Z:"..tostring(PCi[la][6])
.."\ncam縦回転:"..tostring(PCi[la][7])..", cam横回転:"..tostring(PCi[la][8]).."\ncam視線和:"..tostring(PCi[la][9])
obj.load(disp)
end
obj.effect()
obj.ox=cam.tx
obj.oy=cam.ty
obj.oz=cam.tz
obj.rz, obj.ry, obj.oz=0
obj.cx, obj.cy, obj.cz=0
obj.setoption("blend",0)