Link Search Menu Expand Document

** 内容はSRC2.2.33のものです **

PaintPictureコマンド

画像を表示

書式

PaintPicture file dx dy [dw dh sx sy sw sh options]

指定項目説明

file表示する画像ファイル名またはデータ名

dx表示領域のX座標(ピクセル)

dy表示領域のY座標(ピクセル)

dw表示領域の幅(ピクセル)

dh表示領域の高さ(ピクセル)

sx原画像の使用領域のX座標(ピクセル)

sy原画像の使用領域のY座標(ピクセル)

sw原画像の使用領域の幅(ピクセル)

sh原画像の使用領域の高さ(ピクセル)

options表示方法を示すオプション

解説

file の画像をマップウィンドウに表示します。

表示指定可能なファイル形式としてサポートしているのはビットマップファイル(.bmp)、JPEGファイル(.jpg)、GIFファイル(.gif)、PNGファイル(.png)です。RLE圧縮がかけられたビットマップファイルもサポートしています。

JPEG形式は画像圧縮の際に色が変化してしまうため、透過表示できません。

画像ファイルはファイル名、データ名の両方で指定可能です。ファイル名にスペースが含まれている場合は画像ファイル名を「”」で囲ってください。

ファイル名で指定した場合は、

シナリオのあるフォルダ\Bitmap

Src.exeのあるフォルダ\Bitmap

シナリオのあるフォルダ\Bitmap\Event

シナリオのあるフォルダ\Bitmap\Cutin

シナリオのあるフォルダ\Bitmap\Pilot

シナリオのあるフォルダ\Bitmap\Unitt

シナリオのあるフォルダ\Bitmap\Map

ExtDataPathで設定されたフォルダ\Bitmap\Event

ExtDataPathで設定されたフォルダ\Bitmap\Cutin

ExtDataPathで設定されたフォルダ\Bitmap\Pilot

ExtDataPathで設定されたフォルダ\Bitmap\Unit

ExtDataPathで設定されたフォルダ\Bitmap\Map

ExtDataPath2で設定されたフォルダ\Bitmap\Event

ExtDataPath2で設定されたフォルダ\Bitmap\Cutin

ExtDataPath2で設定されたフォルダ\Bitmap\Pilot

ExtDataPath2で設定されたフォルダ\Bitmap\Unit

ExtDataPath2で設定されたフォルダ\Bitmap\Map

Src.exeのあるフォルダ\Bitmap\Event

Src.exeのあるフォルダ\Bitmap\Cutin

Src.exeのあるフォルダ\Bitmap\Pilot

Src.exeのあるフォルダ\Bitmap\Unit

Src.exeのあるフォルダ\Bitmap\Map

の順で検索されて使用されます。

なお、フォルダ名を含めたパス名で指定することもできます。

Pilot\Hyp_AlexisDelicat(19).bmp

フォルダ名を含めた方がファイル検索が高速に行えるため、描画処理自体も高速になります。

画像ファイルとして地形画像を指定した場合、以下のディレクトリも検索対象になります。

(「画像ディレクトリ」は画像ファイル名から「数字.bmp」の部分を除いたもの(例:plain))

シナリオのあるフォルダ\Bitmap\Map\画像ディレクトリ

ExtDataPathで設定されたフォルダ\Bitmap\Map\画像ディレクトリ

ExtDataPath2で設定されたフォルダ\Bitmap\Map\画像ディレクトリ

Src.exeのあるフォルダ\Bitmap\Map\画像ディレクトリ

画像をデータ名で指定した場合は下の順番でデータが検索され、該当するデータの画像が使用されます。

パイロット名称

パイロット愛称

非戦闘員名称

非戦闘員愛称

ユニット名称

dx dy には画像を表示する座標を指定します。座標に「-」(半角文字)を指定すると、それぞれの座標の中心に画像が表示されます。マップウィンドウのサイズは480×480です。

後述する背景オプションを使って画像を描画する場合、座標はマップウィンドウでの位置ではなく、マップ全体から計算された位置となります。例えばマップのマス(1,2)に描画を行いたい場合はマップウィンドウで表示されているマップの位置に関係なく (0,32)を指定します。画像のセンタリングも画面中央に対してではなく、マップ中央に対して行われるようになります。

dx dy で指定された座標は描き込み先画面の左上隅が(0,0)になるように計算されますが、システム変数BaseX,BaseYの値を変更することで基準位置を変更することが可能です。詳しくは変数のページを参照してください。

画像の拡大・縮小を行うには dwdh を指定してください。「-」(半角文字)を指定したり、指定を省略した場合は元のサイズのままで表示されます。

原画像の一部の領域のみを描画したい場合はsx sy sw shを全て指定してください。原画像の sx sy を左上隅とした幅 dw、高さ dhの領域が描画する画像として使用されます。

PaintPictureコマンドで描画した画像はそのままでは表示されません。Refreshコマンドを用いて画面を更新し、表示してください(背景オプションを指定した場合はRedrawコマンド)。これはPaintPictureコマンドやPaintStringコマンドを連続して使用したときに画面の更新を一度で済ませ、画面のちらつきを防ぐための仕様です。

PaintPictureコマンドで描画した画像を消すには

ClearPictureコマンドで描画した画像を消去する

Redrawコマンドでマップを再描画する

Clsコマンドでマップウィンドウの表示内容全てを消去する

の3種類の方法があります。通常はClearPictureコマンドを使って下さい。

optionsにオプションを指定し、画像の表示方法を変更することができます。指定可能なオプションは以下のものです。オプションは複数同時に指定可能です。

これらのオプションを使う場合、画像のサイズは4の倍数でないといけません

透過画像を透過画像として表示します。

透過色を指定していない場合は白色(RGB値が(255,255,255))が透過色として使用されます。

#rrggbb透過画像の透過色を白以外にする場合に指定します。

黒色を透過色にして描画

PaintPicture alice.bmp - - 128 128 透過 RGB(0,0,0)

RGB関数を使うかRGB16進(HTMLでの色指定方法と同じ)で色を指定して下さい。

このオプションを使うと透過処理が複雑になるため描画速度は若干低下します

色を変化させる他のオプションと組み合わせた場合、色変化の結果、元々透過色でなかった部分が透過されてしまう事があります

背景画像をマップ背景として書き込みます。

背景オプションを指定して書きこんだ画像はマップの画像と同等に扱われ、

ChangeMapコマンドでマップを変更するか、

Nightコマンド等でマップの表示色を変更するまで消去されません。

背景オプションを使って書き込んだ画像はRedrawコマンドを使うまで表示されません。

背景オプションを使う場合、画像の書き込み座標は画面上での位置ではなく、

マップ上での位置になるので注意してください。

また、背景に描画した画像は中断データからの再開時に消去されてしまうため、

再開イベントを使って再描画するようにして下さい。

保持画像をClearPictureコマンドで消えないようにして描画します。

アニメーション表示時の背景等を描画する時に使います。

保持オプションを使って描画された画像はRedrawコマンドCenterコマンド等によって

マップウィンドウが再描画される際に消去されます。

白黒画像を白黒にして表示します。

セピア画像をセピア色にして表示します。

上下反転画像を上下反転して表示します。

左右反転画像を左右反転して表示します。

右回転 角度画像を指定した角度だけ右回転して表示させます。

画像は元の画像の範囲内で回転されるため、回転表示させる場合は画像の四隅が

背景色になるようにすることをお勧めします。

左回転 角度画像を指定した角度だけ左回転して表示させます。

上半分画像の下半分を背景色で塗りつぶします。

下半分画像の上半分を背景色で塗りつぶします。

右半分画像の左半分を背景色で塗りつぶします。

左半分画像の右半分を背景色で塗りつぶします。

右上画像の左下半分(対角線で区切った三角形)を背景色で塗りつぶします。

左上画像の右下半分を背景色で塗りつぶします。

右下画像の左上半分を背景色で塗りつぶします。

左下画像の右上半分を背景色で塗りつぶします。

画像を明るくして表示します。

画像を暗くして表示します。

シルエット背景部分を白、それ以外を黒で表示します。

ネガポジ反転ネガポジ反転して表示します。

夕焼け画像を赤っぽくして夕焼け風に表示します。

水中画像を青っぽくして水中風に表示します。

フィルタ 「フィルタ フィルタ色 不透明度」の書式で指定を行い、

指定色による半透明描画で画像の色を塗りつぶして表示します。

PaintPicture Test.bmp - - フィルタ RGB(255,0,0) 75%

透過色とフィルタ色を同時に指定したい場合は、

「透過」の直後に透過色、「フィルタ」の直後にフィルタ色を指定して下さい。

なお、一つの引数に複数のオプションを指定することが出来ます。

変数optに”透過 白黒”を代入しておき、PaintPictureコマンドの引数にoptを指定する。

SRCは表示した画像をバッファに保存しておき、同じ画像の描画の際に流用することで描画の高速化を行っています。dx dy に「480 480」を指定するとこの機能を利用して画像を描画する前にあらかじめ画像を画像バッファにロードしておき、ロードが完了した時点で一度に表示する事で見た目の表示速度を向上させる事が出来ます(例2)。この際、dx dy 以外の引数は後で実際に画像表示する際の引数と一致させてください。なお、本手法は画像がバッファリングされることが前提であるため、Src.iniのImageBufferNum及びMaxImageBufferSizeによる画像バッファのサイズ設定によっては画像がバッファリングされず、描画の高速化が行われない事があるので注意して下さい。

#MIDIファイルDream Goes On.midの演奏を開始
StartBGM Dream Goes On.mid
#同期処理を開始
Wait Start
#10秒経過時まで待つ
Wait Until 100
#フォントサイズを22ptにして文字列「キャスト」を画面中央に表示
Font 22pt
PaintString - - キャスト
Font
#画面を更新
Refresh
#17.6秒経過時まで待つ
Wait Until 176
#さくらの絵とメッセージを表示
PaintPicture ShinguSakura.bmp ((32 \* 15 - 128) \ 2 + 100) 100 128 128
PaintString 新宮さくら 50 100
Font 14pt
PaintString 横井祥子 50 130
Font
#画面を更新
Refresh

例2

#あらかじめカットイン画像をロード&バッファリング

For i = 1 To 8

PaintPicture Cutin\SuporKickCutin$(i).bmp 480 480 - - 透過

Next

#同期処理を開始

Wait Start

For i = 1 To 8

#画面をクリア

ClearPicture

#カットイン画像を表示

PaintPicture Cutin\SuporKickCutin$(i).bmp 480 480 - - 透過

#画面を更新

Refresh

#一定時間経過するまで待つ

Wait Until (0.5 * i)

Next