Files
archived-osu-wiki/wiki/Storyboard/Scripting/Commands/ja.md
2021-08-30 00:52:39 +02:00

10 KiB

outdated
outdated
true

Storyboard Scripting Commands

それぞれのオブジェクトの宣言は1つ以上のコマンドに従っています。これらはオブジェクトに何をさせるかを表示しており、それはeventと呼ばれて移動させたり、色を変化させたりなどをさせます。各コマンドはオブジェクトに影響を与える変数と考えることができ、1つのコマンドが終われば別のコマンドが発生するまで現状維持をします。コマンドが指定されていない設定についてはデフォルトの数値が使用されます。

コマンドの宣言は以下のようになります:

_(event),(easing),(starttime),(endtime),(params...)

where:

  • _ はスペースの代わりにアンダーバーとして表示しています。
  • (event)は後述のコマンドに対応する文字/ペアです。
  • (easing)は動作を"加速"させるかどうかを決めています。有効な値は以下の通り
    • 0 - 加速なし
    • 1 - 最初は早く、しかし終わりに近づくにつれてスピードが下がっていきます。(Easing Outとも)
    • 2 - 最初は遅く、しかし終わりに近づくにつれてスピードが上がっていきます。 (Easing Inとも)
  • (starttime) と (endtime)はコマンドの開始と終わりを指定する。単位はミリセカンド(ms)。
  • (params..) は変数で(event)で指定された値の間の数値が当てはまります。

オブジェクトは最後のコマンドのタイムを過ぎるまではアクティブなままとなります。それを過ぎれば消滅します。オブジェクトを画面内に留めておきたいと考えるならば、Fade(F)の透過を利用してください。 Setting a(n) sprite/object with their commands to do (Event).

基本コマンド

これは様々なオブジェクト向けの基本的なコマンドです。コマンドを利用するのは簡単で、少しの計算ができれば可能です。

Fade (F) 透過 コマンド

_F,(easing),(starttime),(endtime),(start_opacity),(end_opacity)

影響 値の記述 デフォルトの数値
オブジェクトの透明度 (どのように透過するか). 0から1まで、少数も可能です。0は不可視、1は可視状態になります。 1

where:

  • (start_opacity) は開始時の数値
  • (end_opacity) は終了時の数値

例えば(ビートマップが開始してから)1秒(1000ms)でオブジェクトがフェードインし、2秒間(2000ms)半透明状態(透過率50%)を維持した後、1秒(1000ms)でフェードアウトする場合は以下のように記述します。

Sprite,Pass,Centre,"Sample.png",320,240
_F,0,1000,2000,0,0.5
_F,0,4000,5000,0.5,0

簡単にコードを解説すると: 1行目は対象ファイルの記述とその画像と座標の取り方関しての設定。

2行目は最初のエフェクトが起こるタイム1000と、その最初のエフェクトが消えるまでのタイム2000を指定。その0から0.5へと透明度が変化。

3行目は2つ目のエフェクトが起こるタイム開始4000と終了5000を指定。そして0.5から0へと透明度が変化。

2秒間何も起こること無くただ表示させたい場合は以下のように記述させることができます。

Sprite,Pass,Centre,"Sample.png",320,240
_F,0,1000,3000,1,1

2行目は1000で透明度1、3000を透明度1で画像を表示させる記述。

実質的に1000と3000で画像に変化がありません。

よって以下のようにさせることでこの行を短縮させられます。

_F,0,1000,3000,1

Move (M) 移動コマンド

M,(easing),(starttime),(endtime),(start_x),(start_y),(end_x),(end_y)

影響 値の記述 デフォルトの数値
プレイエリアにおけるオブジェクトの位置。 (x,y) 座標で、小数以下の数値は使用できません。 デフォルトでの(x)、(y)はオブジェクトの宣言(1行目)に従っています
  • (start_x),(start_y)は開始時の数値
  • (end_x),(end_y) は終了時の数値

例えばオブジェクトをスクリーンの左上から右下に移動させる場合は以下の様な記述になります。(画像は200ピクセルより小さいと仮定します。それより大きい場合は画面外に出ます。)

Sprite,Pass,Centre,"Sample.png",320,240
_M,0,1500,6000,-110,-100,740,580

要するに

  • x座標: (320は次の数値によって上書きされています) -110 -> 740
  • y座標: (240は次の数値によって上書きされています) -100 -> 580

Move X (MX) X軸のみの移動コマンド

移動のようですが、X座標のみを変更します。Y座標のものも同様です。例えば右から左へオブジェクトを移動させる場合:

Sprite,Pass,Centre,"Sample.png",320,240
_MX,0,1500,6000,-110,740

なので

  • x座標: (320は次の数値によって上書きされています) -110 -> 740
  • y座標: 240

Move Y (MY) Y軸のみの移動コマンド

移動のようですが、Y座標のみを変更します。X座標のものも同様です。例えば上から下へオブジェクトを移動させる場合:

Sprite,Pass,Centre,"Sample.png",320,240
_MY,0,1500,6000,-100,580

従って

  • x座標: 320
  • y座標: (240は次の数値によって上書きされています) -100 -> 580

応用コマンド

これらはオブジェクトに使用するエキストラコマンドです。これらのコマンドは高度なものであるため、他のプレイヤーに助けを求めたり、使用する前に試すことを勧めます。

Scale (S) スケール コマンド

_S,<easing>,<starttime>,<endtime>,<start_scale>,<end_scale>

影響 値の記述 デフォルトの数値
オブジェクトの元々のサイズ(画像の大きさ)に対しての大きさの補正。例えば元が100x100ピクセルの画像で、それに対し2の補正をすることで200x200ピクセルに変化させることができます。スケールの変更はオブジェクトの原点位置に影響されます。(中央、左上など) 0以上のオブジェクトに依存した数字。少数も可能。 1

where:

  • (start_scale)は開始時の大きさの数値
  • (end_scale)は終了時の大きさの数値

5倍にオブジェクトを大きくさせたい場合は以下の様な記述になります

Sprite,Pass,Centre,"Sample.png",320,240
_S,0,36500,37000,0,5
  • 要するに画像を100x100と仮定すると、500x500に拡大されます。

Vector Scale (V) ベクトル コマンド

S(スケール)と同じで。X、もしくはY方向の一方への拡大をしたものがこれになります。

_V,(easing),(starttime),(endtime),(start_scale_x),(start_scale_y),(end_scale_x),(end_scale_y)

オブジェクトをオリジナルサイズ比較で横に2倍し、縦には半分にする場合:

Sprite,Pass,Centre,"Sample.png",320,240
_V,0,36500,37000,1,1,2,0.5
  • 100x100と画像を仮定した時、200x50に変化します。

Rotate (R) 回転 コマンド

_R,<easing>,<starttime>,<endtime>,<start_rotate>,<end_rotate>

影響 値の記述 デフォルトの数値
オリジナルの画像を時計回りに単位はラジアンで回転させます 実数で、負の値に設定をした時は反時計回りに、正の値の時は時計回りに回転します 2πを超えた時は何回も回転させることができます。 0

where:

  • (start_rotate)は開始時の数値
  • (end_rotate) は終了時の数値

-45から45度(45度 = 0.785ラジアン)まで回転させる場合:

Sprite,Pass,Centre,"Sample.png",320,240
_R,0,47210,47810,-0.785,0.785

4回オブジェクトを反時計回りに開店させる場合 (4回転 = 8*π ラジアン = 25.133 ラジアン):

Sprite,Pass,Centre,"Sample.png",320,240
_R,0,47210,47810,0,-25.133

Color / Colour (C) カラー コマンド

_C,(easing),(starttime),(endtime),(start_r),(start_g),(start_b),(end_r),(end_g),(end_b)

影響 値の記述 デフォルトの数値
オブジェクトの仮想の色を変更します。オブジェクト上の色は減算形式で決定します。 色は3つの進数から決定します。最初の数値は赤(R)、次は緑(G)、最後に青(B)。それぞれの数値は0から255の間で変動します。(0,0,0)は黒く、(255,255,255)は白(補正なしの元の画像の色)を表示します。なお透明度に関しては影響を受けません。 (255,255,255)

where:

  • (start_r),(start_g),(start_b) は開始時の色の数値
  • (end_r),(end_g),(end_b) は終了時の色の数値

オブジェクトを黒く、影のように見えるようにし、それをオリジナルの色へ戻す:

Sprite,Pass,Centre,"Sample.png",320,240
_C,0,58810,59810,0,0,0,255,255,255

エクストラコマンド

Parameter (P) パラメータ コマンド

_P,(easing),(starttime),(endtime),(parameter)

ここでの(parameter)はいずれかのものが当てはまります。

  • "H" - 画像を水平に反転 (オブジェクトを180度回転させた状態と同じではありません。[Horizontal Flip]
  • "V" - 画像を垂直に反転 [Vertical Flip]
  • "A" - アルファブレンドの代わりに加法的な色を使用

例えば通常の状態に戻る前に水平方向と垂直方向にそれぞれ2秒間反転させる場合:

Sprite,Pass,Centre,"Sample.png",320,240
_P,0,60000,62000,H
_P,0,60000,62000,V

複合的コマンド

単体では動作をしない複合的なコマンドが存在します。代わりに対象ページに書かれている他のイベントが起きる条件が揃えば、セットで書かれているコードが動作するようになります。