サーフィスエリアスは、ひとつのサーフィスIDに複数のサーフィスID(ランダムサーフィス)を指定したり、\hや\uで異なるサーフィスを表示したい時に 使用します。
surface=22:22 surface=37:23 surface=38:24 alias=[sakura.22=37|38] alias=[kero.22=37|38]
概念的には、伺かゴーストで使われているサーフィスエリアスと同質のものです。
書式
sakura.22=37|38
- 頭の[sakura.]により、さくら側のサーフィスに対してエリアスを割り当てます。
- うにゅう側に対してエリアスを割り当てる時は[kero.]を指定します。
- [22=37|38]により、サーフィス22が、サーフィス37またはサーフィス38のランダムサーフィスになります。
- サーフィスエリアスは「サーフィスID→サーフィスID」でエリアスするので、実際に表示される絵は 各サーフィスに割り当てられているスプライト23あるいはスプライト24になります。
- 同じフォーカス・同じサーフィスIDには、サーフィスエリアスはひとつしか割り当てられません。(後が優先)
- 上記の例では、サーフィス22に割り当てられているスプライト22が表示されることはありません。 但し、サーフィスエリアスに対応しないツールではそのままスプライト22が表示されますので、 なんらかの絵を割り当てておかなければなりません。
シーケンシャルスプライトは、ひとつのスプライトIDに複数の絵を割り当てることで、パラパラアニメーションを表示する機能です。
surface=30:30 sequential=[30=31>>32>>33>>34>>*]
例えば「くるっと回る」「テレポートで居なくなる」「変身する」などといった1枚のスプライトでは表現しきれないサーフィスを表現する時に使用します。
書式
30=31>>32>>33>>34>>*
- 左辺であるスプライト30番に、右辺のシーケンシャルスプライトを割り当てます。
- 左から順に、31→32→33‥‥と表示します。
- 「>」がセパレータです、ひとつが約50ミリ秒の間隔(注:ツール依存)となります。
- シーケンシャルアニメ内で指定するスプライトIDに、さらにシーケンシャルスプライトが適用されることはありません。
- シーケンシャルアニメ内のスプライトIDには、絵の番号以外に以下の3つの数値・記号を指定することができます。
「-1」 消える \s[-1]と同じく、空のスプライトとなります。
「-2」 終了する 現在表示している絵のままアニメを終了します。通常では省略されています。
「1>2>3」と「1>2>3>-2」は等価です。この場合、どちらも最終的には3の絵で停止します。「*」 最初へ戻る 即座に、アニメの先頭に戻ります。絵は最初のスプライトが表示されます。
「1>2>3>*」は、「1>2>3>1>2>3>1‥‥」というループアニメになります。- シーケンシャルスプライトは、「スプライトID→スプライトID」の割り当てなので、 サーフィスIDにそのスプライトIDを割り当てない限り表示されません。。
- 同じスプライトIDには、シーケンシャルスプライトはひとつしか割り当てられません。(後優先)
- 上記の例の場合、スプライト30の「絵」が表示される事はありません。 但し、シーケンシャルスプライトに対応しないツールではスプライト30がそのまま表示されますので、 なんらかの絵を描いておかなければなりません。
注意点
- シーケンシャルスプライトは、あくまで補助的な機能です。
元のゴーストがもつSERIKOアニメーションを完全に再現する機能ではないことにご注意ください。
- マバタキなどのSometimesにあたる、ランダムのタイミングで動くアニメは再現できません。AlwaysとRunonceのみを提供します。
- SERIKOアニメーションはElementやOverlay、Moveなど、パーツ単位で高性能なアニメができます。
一方、シーケンシャルアニメは1フレームにつき常に絵が1枚必要です。
そのため、複雑なアニメをするゴーストは、厳密に再現すればするほどSVGが肥大化します。- シーケンシャルスプライトは重い機能なので、小型で軽量というSVG本来の意義が無くなる可能性があります。
そのため、SVGを使うツール側では「アニメしない」オプションを実装すべきですし、SVGを作る側も 「アニメが使えない」状態を意識するようにしてください。