//
// Aj[VҏW for AviUtl by ۂ
//

XNvgǂݍœҏWvOCłB
WFȂǂ̃p[^Ƀt[ԍ܂ސLqł̂
Ȃǂ\ł܂B

ǂݍݓ̃tH_animation.txt쐬ALqƃXNvg
ɏ]ďsȂ܂B
animation.txtҏẂAēǍȂǂȂĂf܂B

vOC͉摜panimate_v.aufƉpanimate_a.auf܂B
ݒt@C͂ǂt@Cgp܂B

VC++2005̃^CKvɂȂ̂ŁAĂȂΕtvcredist_x86.exe
să^CCXg[ĂB


͓ɂ 
DirectShow͂͐mȈʒũt[擾łȂƂ̂łȂׂ
gȂłB
͓Huffyuv + PCMȂǂ̃t[ԈkȂR[fbN
ԏo͂ĂقǂłB
MPEGnȂǂ̃t[ԈksȂR[fbN̓t[PʂŃfR[h
oȂߏɒxȂ܂B

Ⴆ΁AőL[t[Ԋu300MPEGnł͍ň̏ꍇA1t[
摜擾̂300t[̉摜fR[hȂ΂ȂȂƂ܂B
copyframe()̏x̘bȂ̂copyframe()gpȂꍇ͂̌
@ł͂܂B

͓悪o͓ZĂ animation.txt ͈͎̔wŃt[
ǉ邱Ƃo܂B
fނ͈{̓ɂ܂Ƃ߂ĂāA͈͎wŕKvȕo͂悤
gɂȂƎv܂B


ݒ
ݒʂł̓}`Xbh̃Xbhƕ\obt@ݒł܂B
XbhCPŨRA^Xbhɂ킹ĉB

\Buf̃XC_[𓮂Ɗeobt@̓emFł܂B
ʏ0ݒ肵ĂĂB

ݒʂϐa,b,c,d,u,v,x,y,zݒł܂B
XC_[͈̔͂0`4096ɂȂ܂B


͈͎w
t[͈͎̔w([Jn-I])
̋Lqȍ~͈͂̔͂ɑ΂ďsȂBIt[͏ȗ\B
It[t[傫ꍇ͑t[ǉ܂B

t[ԍ0n܂܂AAviUtl̏Ԃł+11
\悤ɂȂĂ܂B
VXeݒ0\悤ɐݒ肷邱Ƃo܂B


֐(Video) 
sȂXN[buf[0]`buf[9]܂ŗpӂĂAbuf[0]o
摜Abuf[1]`buf[9]͍Ɨp̈ꎞ摜uɂȂ܂B
obt@Ԃŏ֐͓obt@ŏOƏ̗̈悪dȂ
ꍇ͐퓮삵܂BW͗̈OłȂɏ܂B
Ȃׂʂ͕ʃobt@ɒucopy()swapbuf()Ȃǂŏ߂ĂB

copyframe(buf, frame, x0,y0,w,h, x1,y1)
	t[Rs[
	frameŎw肵ԍ̃t[bufɃRs[܂B
	framȅ_ȉ͐؂̂āB
	Rs[Fx0,y0,w(),h()
	Rs[Fx1,y1

swapbuf()
	obt@ւ
	buf[0]buf[1]ւ܂B
	|C^̓ւȂ̂ŏ͑łB
	buf[0]buf[1]AviUtl̕ҏẄłB
	buf[2]`buf[9]̓vOC̕ҏẄȂ̂ŃvOCŏ܂
	e͕ێ܂B

dispsize(w,h)
	摜TCYύX
	摜TCYݒ肵܂B
	St[ɌŒl蓖ĂȂƐo͂ł܂B
	AviUtl̎ۂ̃XN[TCY̓VXeݒ̐ݒlłB
	ɗLȉ摜TCY蓖ĂĎgp܂B
	̂ߕ\͈͊Oɂ摜u܂B

color(buf, x,y,w,h, Y0,Cb0,Cr0, Y1,Cb1,Cr1)
	Fϊ
	(Y, Cb, Cr) = (Y*Y0+Y1, Cb*Cb0+C1, Cr*Cr0+C1) ɕϊ܂B
	Px(Y)͈́F0`4096
	F(Cb)͈́F-2048`2048
	F(Cr)͈́F-2048`2048
	gptB^ɂĂ͔͈͊Õf[^݂邱Ƃ܂B

color_rgb(buf, x,y,w,h, R0,G0,B0, R1,G1,B1)
	Fϊ(RGB)
	(R, G, B) = (R*R0+R1, G*G0+G1, B*B0+B1) ɕϊ܂B
	ԐF(R)͈́F0`4096
	ΐF(G)͈́F0`4096
	F(B)͈́F0`4096
	gptB^ɂĂ͔͈͊Õf[^݂邱Ƃ܂B

fill(buf, x,y,w,h, Y,Cb,Cr)
	hԂ
	(Y,Cb,Cr)̐FœhԂ܂B

fill2(buf0,buf1, x0,y0,w,h, Y0,Cb0,Cr0, x1,y1, Y1)
	hԂ
	buf0ɑ΂buf1}XN摜ƂēhԂs܂B
	buf1Y1ȉ̐F͓ߐFƂĈ܂B

ellipse(buf, x0,y0,a,b, Y,Cb,Cr)
	ȉ~hԂ
	S(x0,y0), xa a, ya b
	
mkmask(buf0,buf1, x0,y0,w,h, x1,y1, Y0,Cb0,Cr0, Y1,Cb1,Cr1, Y2,Y3)
	}XN쐬
	buf0̉摜buf1Ƀ}XN摜쐬܂B
	(Y0`Y1,Cb0`Cb1,Cr0`Cr1)͈̔͂̐F(Y2,0,0)ȊO(Y3,0,0)
	̐Fɕϊ܂B
	͈͎wF(Y0,Cb0,Cr0) < (Y1,Cb1,Cr1)
	N}L[p̃}XN쐬ȂǂɎg܂B

mkmask_rgb(buf0,buf1, x0,y0,w,h, x1,y1, R0,G0,B0, R1,G1,B1, Y2,Y3)
	}XN쐬(RGB)
	buf0̉摜buf1Ƀ}XN摜쐬܂B
	(R0`R1,G0`G1,B0`B1)͈̔͂̐F(Y2,Y2,Y2)ȊO(Y3,Y3,Y3)
	̐Fɕϊ܂B

copy(buf0,buf1, x0,y0,w,h, x1,y1)
	̈Rs[
	buf0buf1ɗ̈Rs[܂B

copy2(buf0,buf1, x0,y0,w,h, x1,y1, Y0)
	̈Rs[
	buf0buf1֗̈Rs[܂B
	buf0Y0ȉ̐F͓ߐFƂĈ܂B
	ebv̑}Ȃǂɕ֗B

copy3(buf0,buf1,buf2, x0,y0,w,h, x1,y1, x2,y2, Y2)
	̈Rs[
	buf0buf1ɗ̈Rs[s܂B
	buf2}XN摜ƂY2ȉ𓧉ߐFƂĈ܂B
	N}L[ȂǂɎg܂B

alpha(buf0,buf1, x0,y0,w,h, x1,y1, alpha)
	At@
	buf0buf1ɔŏdˍ킹sȂ܂B
	xalphaF0`1(`s)

alpha2(buf0,buf1, x0,y0,w,h, x1,y1 ,alpha, Y0)
	At@
	buf0buf1ɔŏdˍ킹sȂ܂B
	buf0Y0ȉ̋Px͓ߐFƂĈ܂B
	ebvȂǂ̍Ɏg邩B

alpha3(buf0,buf1,buf2, x0,y0,w,h, x1,y1, x2,y2, alpha, Y2)
	At@
	buf0buf1ɔŏdˍ킹sȂ܂B
	buf2}XN摜ƂY2ȉ̋Px͓ߐFƂĈ܂B

alpha4(buf0,buf1,buf2, x0,y0,w,h ,x1,y1, x2,y2)
	At@
	buf0buf1ɔŏdˍ킹sȂ܂B
	buf2}XN摜ƂĊef̋PxY𓧉ߗƂĈ܂B
	PxYF0`4096(`s)

flipv(buf0,buf1, x0,y0,w,h, x1,y1)
	㉺]
	buf0̏㉺]摜buf1ɍ쐬܂B

fliph(buf0,buf1, x0,y0,w,h, x1,y1)
	E]
	buf0̍E]摜buf1ɍ쐬܂B

resize(buf0,buf1, x0,y0,w0,h0, x1,y1,w1,h1)
	TCY
	buf0̃TCY摜buf1ɍ쐬܂B
	TCYƉ]̓oCjA⊮Ă܂B

rotate(buf0,buf1, rad, x0,y0,w,h ,x1,y1)
	]
	buf0̉]摜buf1ɍ쐬܂B
	pxFrad
	]Əc͂ݏo܂A͂ݏo`悵܂B

mosaic(buf0,buf1, x0,y0,w,h, x1,y1, nw,nh)
	UCN
	buf0̃UCN摜buf1ɍ쐬܂B
	fFnw
	cfFnh
	ubNTCYnw~nh̉摜ɂȂ܂B

defocus(buf0,buf1, x0,y0,w,h, x1,y1, nw,nh)
	ڂ
	buf0̂ڂ摜buf1ɍ쐬܂B
	fFnw
	cfFnh
	nw~nh̃TCYŃoCjATvO܂B
	fnw~nh͈̔͂̕ϒlvẐŏdłB

diffuse(buf0,buf1, x0,y0,w,h,x1,y1, nw,nh)
	fgU
	ef̈ʒunw~nh͈̔͂ɊgU܂B

gamma(buf, x,y,w,h, Y_g,Cb_g,Cr_g)
	K}␳
	K}l(Y_g,Cb_g,Cr_g) l1.0Ō摜ƓB

posterize(buf, x,y,w,h, nY,nCb,nCr)
	|X^CY
	K𐧌܂B
	nY,nCb,nCrFKB

posterize_rgb(buf, x,y,w,h, nR,nG,nB)
	|X^CY(RGB)
	K𐧌܂B
	nR,nG,nBFKB

font("fname" ,size ,bold, italic, uline, Y,Cb,Cr)
	tHgݒ
	fnameF tHgi"lr "Ȃǁj
	sizeFtHgTCYij boldF 0:ʏ 1:
	italicF 0:ʏ 1:Α̕
	ulineF 0:ʏ 1:t
	Y,Cb,CrF tHg̐F

text(buf, x,y, align, "text")
	eLXgo
	align: 0:l 1: 2:El
	textŎw肵`悵܂B
	tHgfont()Őݒ肵ĂB
	L'"''\"'A'\''\\'ƒuďĂB


֐(Audio) 
t[PʂŏsȂ܂B

a_copyframe(buf, frame)
	t[Rs[
	bufframẻf[^Rs[܂B
	framȅ_ȉ͐؂̂āB

a_copyframe2(buf, sframe,eframe)
	ϑt[Rs[
	bufsframeeframe܂ł̃t[1t[̒ɂăRs[܂B
	sframeeframe͎lB

a_copy(buf0,buf1)
	buf0buf1ɃRs[܂B

a_blend(buf0,buf1)
	buf0̉buf1ɉZ܂B

a_volume(buf, vol1,vol2, LR)
	buf̉vol1vol2܂(t[Jn玟t[Jn܂)ω܂B
	vol1,vol2F{
	LR(0=L+R,1=L,2=R)ɑ΂ďs܂B

a_swap(buf)
	LR̓ւ܂B

a_mono(buf, LR)
	m܂B
	LR(0=L+R,1=L,2=R)

a_reverse(buf0,buf1)
	buf0tĐbuf1ɃRs[܂B

a_noise(buf, vol)
	zCgmCY쐬܂B
	vol(0`1)
	uU[vƂB

a_tone(buf, Hz, shape, vol)
	g[M쐬܂B
	gFHz
	g`Fshape 0:g,1:`g
	ʁFvol(0`1)
	us[vƂ1000Hz炢ȁH

a_voicechg(buf, hz)
	{CX`FW[
	ghzŕϒ܂B


ɂ 
ȉ̕ϐEZqE֐g܂B

ZqF+ - * / % ^ ( )
֐@Fceil floor abs sqrt exp log log10 sin cos tan
@@@@asin acos atan sinh cosh tanh asinh acosh atanh
@@@@j0 j1 y0 y1

    * ϐ
          o f:t[ԍ
          o s:I͈͊Jnt[ԍ
          o e:I͈͏It[ԍ
          o g:I͈͓t[ԍ(f-sƓ)
          o n:I͈͓t[(e-s+1Ɠ)
          o m:t[
          o p:~
          o w:\ʕ
          o h:\ʍ
          o i:ҏWʕiVXeݒlj
          o j:ҏWʍiVXeݒlj
          o a,b,c,d,u,v,x,y,z:ݒʂ̐ݒl

LȊO̕ϐ A`ZAa`z ̓XNvgŐݒ肪o܂B


̏ɂLibFormulag킹Ă܂B

Formula Library
http://www.vector.co.jp/soft/unix/prog/se214395.html

XV
2007.11.05 ver0.9 a_voicechg()ǉAposterize(),posterize_rgb()C
2007.10.31 ver0.8 ellipse(),posterize(),posterize_rgb(),color_rgb(),mkmask_rgb()ǉAtext()C
2007.10.28 ver0.7 ϐɑł悤ɂ
2007.10.25 ver0.6 a_copyframe2(),font(),text()ǉAdiffuse()Cق
2007.10.23 ver0.5 ݒʂɕϐǉق
2007.10.21 ver0.4 gamma(),diffuse()ǉ
2007.10.18 ver0.3 }`XbhΉAdefocus(),a_noise(),a_tone()Cق
2007.10.08 ver0.2 mkmask()ǉ
2007.10.08 ver0.1 J
