プレーンの基本
CS2システムには、基本的な画面構造である画像イメージのほかに、「プレーン」と呼ばれる概念があります。
使用しなくてもシーンスクリプトでの演出は可能ですが、最低限の使用でも表現の幅が広がります。
※プレーンのサイズやVRAM領域は、作品ごとにVRAM定義ファイル「vram.xml」で設定されます。
説明の中では、以下のサイズを想定しています。
- 画面表示領域(ウィンドウサイズ):800×600
- VRAM領域:2048×1536
- 通常プレーンサイズ:1024×680
プレーンとは
CS2で画像を読み込むと、一度プレーンに配置してから表示されます。
プレーンは、画像イメージを貼り付ける透明な板と言えます。
セル画のセル、photoshopのレイヤーにも似ています。
CS2には標準でその板がいくつかあり、それらを重ねるように表示しています。
一枚の板に複数の画像を貼り付けることも、複数の板に画像を一つずつ貼り付けることも可能です。
プレーンの特徴
イメージを読み込んだプレーンは、オブジェクトタイプ「pl」として、イメージとほぼ同じように扱えます。
さらに以下のような特徴があります。
- 専用のコマンド
- コマンドの中には、プレーンのみを対象とするものがあります。
このことから、プレーンの使用で演出の幅が広がると言えます。 - 指定の簡略化
- 1枚のプレーンに複数の画像がある場合、プレーンに対してコマンドを指定することで、複数の画像に一度にコマンド指定したのと同じになります。
- 軽く滑らか
- 同じモーションコマンドでも、イメージではなくプレーンに指定することで、軽く、美しい動きになります。
これは大きな画像で比較すると顕著に表れます。
プレーンの使用
プレーンへの描画
各イメージのデフォルト描画プレーンは、VRAM定義ファイル「vram.xml」で設定されています。
ここでは描画するプレーンを画像読み込み時に指定します。
bg 0 bg01a0 //背景画像はプレーン0に cg 1 bd02,1,1,0,5 200 @ 0 //プレーン0のx座標200に読み込み cg 2 be01,1,2,3,3 600 @ 0 //プレーン0のx座標600に読み込み rdraw 同じプレーン cg 1 bd02,1,1,0,5 400 @ 1 //プレーン1のx座標中心(400)に読み込み cg 2 be01,1,2,3,3 400 @ 2 //プレーン2のx座標中心(400)に読み込み pl 1 pos 200 //プレーンで位置を指定 pl 2 pos 600 //同上 rdraw プレーン分け
【画面表示】
プレーン状態確認モードで表示
【左:同じプレーン】/【右:プレーン分け】
pl 0〜2に分けて描画しても、pl 0だけに描画したときとまったく同じ画面表示になります。
「同じプレーン」は、各イメージを1枚のプレーン上の希望の位置に直接描画しています。
一方「プレーン分け」では、中心にイメージを描画した各プレーンをずらして位置を決定をしています。
●プレーン状態確認モード
プレーンの状態を見るためには「P」キーを使用し、デバッグ機能の一つ「プレーン状態確認モード」にします。
プレーンへのコマンド適用
arcコマンドを使用して、pl 0に頷くような動きをつけます。
bg 0 bg01a0 cg 1 bd02,1,1,0,5 200 cg 2 be01,1,2,3,3 600 rdraw 同じプレーン pl 0 arc 60 180 360 0 30 プレーン0にモーション(1)//※1 cg 1 bd02,1,1,0,5 400 @ 1 cg 2 be01,1,2,3,3 400 @ 2 pl 1 pos 200 pl 2 pos 600 rdraw プレーン分け pl 0 arc 60 180 360 0 30 プレーン0にモーション(2)//※2
(実行例は省略します)
「※1」のarcコマンドでは、pl 0に描画されているイメージすべて(bg 0・cg 1・cg 2)が一緒に動きます。
プレーン分け後の「※2」は、pl 0に描画されているbg 0だけが動くことになります。
同じ処理をしたいイメージを一つのプレーンにまとめ、そこにコマンドを指定することで、一度に複数のイメージに適用できます。
VRAM領域
画像を読み込める領域を「VRAM領域」といいます。
Pキーを使用して移行する「プレーン状態確認モード」は、現在読み込まれている画像も確認できることから「VRAM状態確認モード」ともいいます。
画面表示領域(ウィンドウサイズ)とプレーンサイズ
※この例では、「VRAM領域:2048×1536」が4枚入るように分けた「1024×680」を通常サイズとしています。
プレーン状態確認モードで見ると確かに読み込まれているのに、ゲーム画面上では見切れていて表示されない部分があります。
これは、額縁の中に額縁より大きな絵を入れ、表からは見えないところがある状態です。
画面表示領域は800×600なので、通常サイズプレーンは一部表示されない部分があります。
※この例での、画面表示領域に対する通常プレーンサイズ
左右余剰分:各112、上下余剰分:各40/プレーンは画面表示領域の中央に表示)
プレーンを画面表示領域のどこに配置するかは、プレーンの pos で指定します。
プレーンの pos は、プレーンの base を画面表示領域のどこに表示するか、という指定です。
イメージタイプの位置指定
イメージタイプの表示位置指定はプレーンの左上(0,0)からの座標を指定しています。
プレーンと違い、画面表示領域の0,0点からではありません。
しかし前述の例では、x座標に400を指定して正しく画面中央に表示されていました。
これはVRAM定義ファイルの設定で、プレーンに描画するイメージタイプの位置を自動で「x+112・y+40」するようになっているためです。
したがって、プレーンの0〜3に画像を読み込む場合は、プレーンの余剰分を考えることなく位置指定が可能です。
このことを「シフト」、その値を「シフト分」と呼びます。
よりも大きいプレーンを通常サイズプレーンとして使用する場合、このシフト値の設定は必須といえます。