基本操作
基本的な操作方法を解説します。
基本操作
座標の指定
まずは画像を配置してみることにします。
以下のように入力すると、画像のX座標=200の位置に画像が配置されます。
obj.ox = 200
※なおここで使われている「=」は数学的に等しいという意味のイコールではなく、右辺を左辺に代入するという意味です。
数学的なイコールは「==」(=を二つ重ねたもの)を使用します。
オブジェクトの移動
次に画像を移動させてみたいと思います。
以下のように入力すると、オブジェクトの時間が進むごとにX座標の数値が大きくなっていき、結果、画像は右に進んでいきます。
obj.ox = obj.time*10
画像のX座標 → オブジェクトの時間(秒)×10
X座標だけでなく、拡大率や透明度、回転なども変化させることが出来るので、実際にいろいろと試してみることをお勧めします。
TIPS
注意事項
スクリプト入力においては全て半角で入力する必要があります。全角スペースも不可です。
なお、日本語や全角文字を使用する時は「""」で囲む必要があります。
定義
スクリプト内では適当なアルファベットで数値や式を「定義」することができます。
例えば、スクリプト内で「x = obj.ox + obj.time*10」と記載すると、「x」は「obj.ox + obj.time*10」のことを意味するようになります。
同じ式を繰り返し使用する場合や、スクリプトを見やすくしたい場合に使用します。
【定義した数値を確認するケース】※テキストオブジェクトで使用
<?
t=obj.time*10
mes(t)
?>
計算記号
+ | 加算 |
- | 減算 |
* | 乗算 |
/ | 除算 |
% | 割り算の余り |
^ | べき算 |
%は割り算の余りを表すので、これを利用して一定の数値をループさせることも出来ます。
【10をループするケース】
math.floor(obj.time)%10
関係演算子
a < b | aはbより小さい |
a > b | aはbより大きい |
a <= b | aはbより小さいか等しい |
a >= b | aはbより大きいか等しい |
a == b | aはbと等しい |
a ~= b | aはbと異なる |
論理演算子
a<10 and b<50 | a<10 かつ b<50 |
a<10 or b<50 | a<10 または b<50 |
if文の中で使うことが多いかもしれません
a=5 b=10
if(a<10 and b<50) then
obj.zoom=obj.zoom*2
end
連結子
「 .. 」(スペース..スペース)で前後の文字などを繋げることができます。
例えば、テキストと変数などをつなげたい時に便利。
obj.setfont("MS UI Gothic",34)
obj.load("text","現在" .. math.floor(obj.time) .. "秒です。")
コメント
半角ハイフンを二つ重ねることで(--)、スクリプト中にコメントを記載することが出来ます。
スクリプトの式に影響しないため、補足説明をする場合に使ったりします。
【一行の場合】
--補足説明などを記載
【複数行の場合】
--[[補足説明などを
複数行で記載]]
戻り値
通常、関数は「"obj.rand(0,100)"→30」といったように、一つだけ数字が"戻って"きます。
ただ、obj.getpixel関数のように戻り値が複数のケースがあります。
このときは、いったん下のようにwとhを定義してから、以降はwやhを使用することとなります。
w,h = obj.getpixel()
よく右辺に記述される"obj.ox"って?
"="というのは、右辺を左辺に代入するという意味なので、例えば、
obj.ox=100
obj.ox=-200
と書いた場合、2行目でobj.oxが"-200"で上書きされ、画像の座標は(-200,0)となりますが、
obj.ox=100
obj.ox=obj.ox-200
と書いた場合、2行目でobj.oxが"100-200"と計算され、画像の座標は(-100,0)となります。
特にアニメーション効果を複数重ねがけしたときなど、右辺にobj.oxがないと、二つ目の座標計算で一つ目のアニメーション効果の座標計算が上書きされ、一つ目のアニメーション効果がちゃんと適用されなくなる可能性があります。
F5による再読み込み
スクリプトファイル(.anmなど)の内容を変更した場合、キーボードの「F5」で再読み込みすると、変更を反映することが出来ます。
ただし、新しいスクリプトの追加までは反映されないので、その場合はAviUtlの再起動が必要になります。
- 最終更新:2012-03-04 10:32:11