4.ここで実験プログラム(画像の重ね合わせ表示) 2001Oct.

さてHSPでプログラミングに挑戦すると決めたものの、本当に恋愛SLGに必要なことが自分にできるかどうかはわかりません。まずは恋愛SLGに必要な表示や分岐ができるかどうか試してみなくてはなりません。HSPのプログラミングはとても簡単!との触れ込みですが、マニュアルを見た限りでもいかにも簡単そうですが、自分でやってそう簡単にいくわけがない(←経験則)。
というわけでまずはSLGを作る際、なんとしても必要になる

画像の重ね合わせ

から始めてみたのでございます。これができるとできないでは大違いです。
出来ればゲームの背景画像とその前面に配置する人物の絵(立ちグラフィックという。立ちグラと略すが私は偉そうに略語など使える立場ではない)を別物として作って表示できますが(人物のポーズはそのままで表情だけ動く場面も恋愛SLGでは多々出るので表情部分も別にしたいところ)、もし(自分に)不可能なら人物と背景をくっつけて一枚にした画像をたくさんつくらなくてはなりません。軽く見て200枚といったところでしょうか。つーか表情の分岐を含めたらさらに膨大に。
バカも休み休み言え(←オマエが言ったんじゃ)。
というわけでこれだけはクリアしなくてはなりません。

HSPでの画像表示自体はとても簡単です。まずONION softwareのページでHSPをダウンロードし、専用エディタ「hsed2.exe」を開いてこう記述するだけです(記述のルールは初心者向けマニュアルの一番初めに出ているのでそちらを参考にドウゾ)。

picload "ファイル名.jpg"(←もしくはBMP)
stop

この記述のあとF5キーを押すか、メニューの「HSP」→「コンパイル+実行」を選ぶとプログラムが実行されます。「picload」は画像を読み込みなさいという命令文です。その際「hsed2.exe」と同じフォルダに画像ファイルが入っていること。
「stop」というのは何かというと、名前の通りそこで画面の表示を止めなさいという命令文。これが無いと表示された次の瞬間に画面が消えてちょっと面白いのです(おもしろくありません)。
ね、簡単でしょ? と言いたげに付属のマニュアルには書いてあったのでした。
簡単だね。一枚絵の表示だけなら。しかし重ねて表示となればそうは問屋がおろさないのです。チクショー問屋め。大阪商人あなどりがたし(大阪なのか)。

HSPでプログラミングにこれから挑戦してみようかしらという方はお試しへっぽこゲームのソースコードを参考にご覧下さい。

画像の重ね合わせ表示に関係あるのはオレンジの文字の部分です。ほかの部分が気になる方はHSPを手に入れて初心者用マニュアルを見て下サイ。いや私が自分であとから見てわかるようにやたらに注釈つけているので見なくてもなんとなくわかるかもしれませんが(「;」以下は注釈)。

buffer(バッファ)」は表示画面(スクリーン)の上にさくさく重ねられる仮想画面です。グラフィックソフトでいうところのレイヤー、アニメーションで言うと背景に重ねるセル画のようなものです。それぞれに番号を振って、31枚まで重ねられるようです。誰がそんなに使うというのか(爆)。

というわけでこのバッファに画像を読み込みます。「背景」「キャラ」「表情」の3枚です。よく見ると4枚ありますが今は関係ないのでお気になさらず(死)。buffer命令のあとの数値ですが、左から

バッファの番号>バッファの横幅>同じく縦幅>スクリーンモード(0がフルカラー・1が256色)

を表します。
読み込んだ後、「gcopy」という命令を使って実際に表示します。
HSPではイラスト、音声は読み込み→表示(もしくは再生)という手順を踏むようです。読み込んだだけでは表示されない場合もあるので御注意。
ちなみにgcopy命令のそばにくっついている「pos」というのは画像やボタンの位置を合わせる命令文で、後ろに並んだふたつの数値は、配置する画像の左上の点の位置を示します(左が横からの距離・右が上からの距離)。

これを実行するとこのようになります↓

ぴったり重ねてあるので判りませんが、背景とのっぺらぼうの梧桐さん、表情部分の3枚に分かれています。しかし最初からこのように行くわけがなく


↑流れる。

…ソースのふたつめのオレンジ文字のかたまりの真ん中にgmodeという赤文字がございます。これはgcopy命令とセットで使うもので、gmode0が通常、1が高速表示、2が透明化でございます。gmode2では画像の真っ黒な部分が透明化されるので、

↑この背景が真っ黒な梧桐さんの絵(いやこのページの背景も黒いからわかりませんが)は透けて表示されるはずだったのでした。でも流れる。なんですかこの謎の現象は! マニュアルには何も書いてないよ!! と思い懸命にHSPの関連サイトを探しました。そしてFAQのページで発見しました。

「画像の横幅が4の倍数でない場合、画像が流れたように歪んで表示されます」

慌てて画像の幅を確認したところ174。
というかなぜ。なぜこういう事こそマニュアルに書いてくださらないのですか
ともあれFAQのおかげでなんとかBMP画像(画像保存形式のひとつ。データを圧縮しないでそのまま保存する。当然とても重い)の透明化表示が出来るようになったワタクシ。もしjpg画像(同じく保存形式のひとつ。写真や絵などの保存向き。私の場合BMP形式の1/10以下の容量になる)でこれができれば全体がとても軽くなります。なので試しにjpgにしてみました↓

…やっぱりネ(死)。jpgは写真向き、つまり中途半端な色をなめらかに表示するのが得意なので、もともとは真っ黒だったところも中途半端な色になってしまうというわけなのですネ! てことでjpgはあきらめるほかないようです。何かむずかしいことをすればjpgでの重ね合わせもできるらしいのですが私にそんな技量はないのでございます。こんな技量で大丈夫か。

«back next»