モーション

直線移動<move/amove>

move

「move」コマンドは対象を等速で直線移動します。

例1:

	cg 1 bq01,1,1 100 260
	rdraw
	wait
	cg 1 move 30 400 230 //動作フレーム・目標x座標・目標y座標

このコマンドは@変数を使った相対座標で指定することもできます。
「@」を現在値とし、そこからの増減を指定します。
例1を相対指定すると以下のようになります。

例2:

	cg 1 bq01,1,1 100 260
	rdraw
	wait
	cg 1 move 30 @+300 @-30

amove

加減速(徐々にスピードが上がる/下がる)をつけた「amove」というコマンドもあります。
パラメータはmoveと同じですが、スピードの変化別に、コマンド名の最後に1〜3の数字がつきます。

	cg 1 bq01,1,1 880
	wait
	cg 1 amove1 60 400

	「amove1」(減速)

	cg 1 bq01,1,1 880
	wait
	cg 1 amove2 60 400

	「amove2」(加速)

	cg 1 bq01,1,1 880
	wait
	cg 1 amove3 60 400

	「amove3」(減速→加速→減速)

扇形移動<arc

「arc」は角度と移動距離を組み合わせて扇形移動を指定します。

arcを使用したさまざまな動き

このコマンドは指定により見た目が大きく変わるので、いろいろな例を挙げていきます。
角度や半径の概念は下の図を参考にしてください。

arc

パラメータは、順に「動作フレーム・開始角・終了角・x座標半径・y座標半径」です。

放物線を描くように移動

	cg 1 bq01,1,1 600
	rdraw
	wait

	cg 1 arc 60 0 180 200 100
	\n

図の上半分、0から90を通って180までの半円をなぞるような動きになります。
パラメータの四つ目にある「200」はx軸の半径の指定なので、この例では、倍の400px移動しています。

往復移動

開始点から上下左右いずれかの方向に移動し、また開始点に戻る、という動作をします。

	cg 1 bq01,1,1
	rdraw
	\n

	cg 1 arc 60 180 360 0 40 //y座標のみ指定
	\n

この例は、一度下に向かった後、開始点に戻ります。

上か下に移動する場合はy座標のみ、左か右ならx座標のみを指定します。
斜め方向は指定できません。

一回転

例1:

	cg 1 bq01,1,1
	rdraw
	wait

	cg 1 arc 120 90 450 100 100
	\n

x・y軸を指定しつつ終了角を「開始角+360」にすると、一回転になります。
時計回りに動かしたいときはマイナス値を指定します(この場合は終了角「-270」)。

例1の終了角の指定は、以下のような記述もできます。

例2:

	cg 1 bq01,1,1
	rdraw
	wait

	cg 1 arc 120 90 90+360 100 100 //角度指定に計算式を使用
	\n

二回転以上の指定も簡単に行えます。

例3:

	cg 1 bq01,1,1
	rdraw
	wait

	cg 1 arc 120 90 90+360*2 100 100
	\n

arcコマンドのパラメータの指定には、現在値を指定する「@」は使用できないので注意してください。

加減速付き直線移動

	cg 1 bq01,1,1 600
	rdraw
	wait

	cg 1 arc 60 0 90 400 //半径はxのみに指定
	\n

開始角0・終了角90なので、ちょうど指定した半径分、左方向に移動します。
加速がついた直線移動になるので「amove2」と同じになります。

開始角・終了角の指定について

これまでに挙げた例は、開始角・終了角ともにすべて90度刻みでの指定でした。
実際には任意の角度を指定できます(往復移動を除く)。

	cg 1 bq01,1,1 600
	rdraw
	wait

	cg 1 arc 60 20 200 0 300
	\n

半端な角度を指定することで動きの速度を調整できますが、移動距離の計算は難しくなります。

揺らし<quake

「quake」はイメージを揺り動かすような動きです。
「フレーム・目標x座標・目標y座標」を1グループとして、複数グループを指定します。

以下の点に注意してください。

  1. 目標座標は相対値で指定しますが、「+」は不要です。
    値にプラスしたいときは符号無し、マイナスの場合のみ「−」を入れてください。
  2. 座標の位置は、常にコマンド開始時からの相対値です。
    前グループからのものではありません。
  3. 目標座標への移動は瞬間的に行われます
    フレーム値は、移動にかける時間ではなく移動後に待つ時間を指定します。
  4. 最後のグループの位置まで行くと、最初(コマンド指定時)の位置まで戻ります。
	bg 0 bg51a
	cg 1 bd03,2,1,0,6
	rdraw
	\n

	bg 0 quake 10,0,10 10,0,-10 10,10,0 10,-10,0
	cg 1 quake 10,0,10 10,0,-10 10,10,0 10,-10,0

反復移動<shake

「shake」は同じ距離を同じスピードで反復移動します。

「フレーム値・反復回数・移動距離」を指定します。

	cg 1 bk01,1,1,0,7
	rdraw
	\n

	cg 1 shake 60 20 5 //60フレームで20回、5pxの移動を反復する

上の例では、「開始位置+5px → 開始位置」で1回、「開始位置−5px → 開始位置」で2回です。
移動距離にマイナス値を指定することで、左への移動からスタートします。

スプライン移動<spline

「spline」は現在位置から指定した複数の座標を、スプライン補間を行いながら滑らかに移動します。

パラメータは「フレーム値・目標x座標・目標y座標」で、quakeと同じく複数グループを指定します。

	cg 1 bq01,1,1
	rdraw
	\n

	cg 1 spline 40,60,-10 60,600,75 40,770,480 10,400,230
	例1

	cg 1 spline 40,60,-10 60,600,75 40,770,480 60,400,230
	例2

同じ座標を指定しても、動作フレーム値やそれまでの座標の繋ぎ方によって軌道が変わるので注意してください。

動的な不透明度の変更<fade

イメージの不透明度を変更するコマンドは「blend」ですが、それにフレーム値も指定できるのが「fade」コマンドです。

	cg 1 blend 0
	cg 1 bl01,1,1,2,2,1
	wait
	cg 1 fade 40 0 255

非同期・継続モーションの停止<stop

モーションコマンドには「m2系」と呼ばれる非同期モーションと、「mc系」と呼ばれる継続モーションがあります。
これらの動きを停止させるには「stop」コマンドを使用します。

	cg 1 bc03s,3,0,0,1 400 160
	rdraw
	wait
	\n

	cg 1 mcarc 240 90 90-360 80 20 //クリックするまで動きが継続
	\n

	cg 1 stop
	\n

このコマンドを使用して動きを止めると、瞬時に移動開始前の位置に戻ります。
それを画面上に表示したくない場合は、fade で画像を透明状態にしてからこのコマンドを使用してください。

非同期(m2)モーションと継続(mc)モーション:「モーション系コマンドについて」参照