【ウディタ】立ち絵表示コモンを作る(差分対応版)②


前回の続きよ。

画像を登録するためのユーザーDB、立ち絵表示を実行するためのコモンの入力設定およびセルフ変数の用意までを解説したんだったわね。

後はコモンの中身を作っていくだけね。がんばっていきましょう。

コモンの作成:イベントコマンドの入力


最初に、入力設定でセルフ文字列格納された各値をセルフ変数に写し数値変換するわ。まずはピクチャ番号から。
⇒■変数操作: CSelf20[ベースPN.]~CSelf23[差分3PN.] = CSelf5[ピクチャNo.] + 0

※入力設定で使ったコモンセルフ5~8番は、数値用の入力が1~4じゃ足りないから借りただけであって、本来は文字列を格納するものだからね。当然そのままじゃ使えないから、セルフ変数に写してあげて数値変換してげないといけないのよ。


とりあえず差分のピクチャ番号用の変数にもまとめて格納してしまって、


その後で1ずつズラしてあげましょう。
⇒■変数操作: CSelf21[差分1PN.] += 1 + 0
⇒■変数操作: CSelf22[差分2PN.] += 2 + 0
⇒■変数操作: CSelf23[差分3PN.] += 3 + 0


同様に座標と倍率もセルフ変数へ数値変換
⇒■変数操作: CSelf40[ベースX]~CSelf43[差分3X] = CSelf6[位置X] + 0
⇒■変数操作: CSelf60[ベースY]~CSelf63[差分3Y] = CSelf7[位置Y] + 0
⇒■変数操作: CSelf30[縦拡大率]~CSelf31[横拡大率] = CSelf8[倍率%] + 0

※同じく差分用のセルフ変数にもまとめて格納しちゃうけど、座標調整は後で行うからとりあえずこのままでいいわ。


次は左右反転表示の場合の対応。前回「左右反転する場合は倍率にマイナスを入力する」と解説したわよね? だから入力された倍率がマイナスの場合は縦拡大率だけ整数に変換して戻してあげるのよ。
⇒■条件分岐(変数): 【1】 CSelf30[縦拡大率] が 0 未満
⇒-◇分岐: 【1】 [ CSelf30[縦拡大率] が 0 未満 ]の場合↓
⇒|■変数操作: CSelf30[縦拡大率] *= -1 + 0
⇒◇分岐終了◇

旧立ち絵コモンで解説済みだけど、横拡大率のみをマイナス変換すればピクチャを左右反転して表示することができるわ。


次はキャラ選択で「消去」を選択している場合のピクチャ消去処理よ。ベース+差分3種の画像を消去してコモンを終了させるわ。
⇒■条件分岐(変数): 【1】 CSelf0[キャラ] が -1 以下
⇒-◇分岐: 【1】 [ CSelf0[キャラ] が -1 以下 ]の場合↓
⇒|■ピクチャ消去:CSelf20[ベースPN.] ~ CSelf23[差分3PN.] / 0(0)フレーム
⇒|■イベント処理中断
⇒◇分岐終了◇


※ピクチャ番号を範囲指定してあげれば、連番のピクチャを複数同時に操作することができるのよ。


以降は立ち絵を表示する処理よ。まずはベース画像をセルフ文字列にDB読込
⇒■DB読込(ユーザ): CSelf9[画像] = ユーザDB[ 立ち絵(差分対応) : CSelf0[キャラ] : ベース画像 ] (19 : – : 0)


※セルフ変数でDB項目を指定して、セルフ文字列9番にファイル名を読み込むのよ。


そして、読み込んだベース画像をピクチャ表示してね。
⇒■ピクチャ表示:CSelf20[ベースPN.] [中心]ファイル(CSelf9[画像]) X:CSelf40[ベースX] Y:CSelf60[ベースY] / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 CSelf31[横拡大率]xCSelf30[縦拡大率]% / カラー R[100] G[100] B[100]


各入力箇所には変数呼出値(16000XX)で入力して、セルフ変数およびセルフ文字列を指定するのよ。拡大率を縦横で別々にするのも忘れないでね。

これでベース画像のピクチャ表示はOK。


あとは差分パーツの表示ね。こちらは入力値が0の場合は非表示0より大きい場合は表示することになるから、まずは条件分岐を作成
⇒■条件分岐(変数): 【1】 CSelf1[差分1] が 0 超 【2】 CSelf1[差分1] が 0 と同じ
⇒-◇分岐: 【1】 [ CSelf1[差分1] が 0 超 ]の場合↓
⇒-◇分岐: 【2】 [ CSelf1[差分1] が 0 と同じ ]の場合↓
⇒◇分岐終了◇


「1より大きい場合」の分岐には差分1の表示を入力。ベースと同様に画像を読み込んで、
⇒■DB読込(ユーザ): CSelf9[画像] = ユーザDB[ 立ち絵(差分対応) : CSelf0[キャラ] : CSelf1[差分1] ] (19 : – : -) 


※やり方はベース画像の時と一緒よ。


そうそう、差分の場合は表示座標の調整も必要だったわね。調整する値をDBから読み込んでセルフ変数に反映させましょう。
⇒■DB読込(ユーザ): CSelf41[差分1X] += ユーザDB[ 立ち絵(差分対応) : CSelf0[キャラ] : 差分1調整X ] (19 : – : 8)
⇒■DB読込(ユーザ): CSelf61[差分1Y] += ユーザDB[ 立ち絵(差分対応) : CSelf0[キャラ] : 差分1調整Y ] (19 : – : 9) 


※差分のXY座標用セルフ変数にはベースの座標がすでに格納されているから、差分のXY座標をDBからセルフ変数に加算(+=)することで位置調整が行えるわ。


そして差分画像をピクチャ表示
⇒ |■ピクチャ表示:CSelf21[差分1PN.] [中心]ファイル(CSelf9[画像]) X:CSelf41[差分1X] Y:CSelf61[差分1Y] / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 CSelf31[横拡大率]xCSelf30[縦拡大率]% / カラー R[100] G[100] B[100]


※やり方はベース画像の時と一緒だけど、ピクチャ番号とXY座標のセルフ変数が変わっているから注意してね。


あとは、セルフ1が0の場合(差分1は非表示)の分岐ピクチャ消去を入力。
⇒■ピクチャ消去:CSelf21[差分1PN.] / 0(0)フレーム

これで差分パーツ1の表示/消去の処理はOKよ。


あとは差分2と3の処理だけど、やり方は差分1と同じだからコピペでサクッと作っちゃって頂戴。各種指定を差分2と3に合わせて修正するのを忘れないようにね。
⇒※コマンド分も省略。

これで立ち絵表示コモン(差分対応)の作成は完了よ。お疲れ様でした。

立ち絵表示コモン(差分対応)のテスト


それじゃ実際に立ち絵を表示してみましょうか。↑のように指定して実行すると、


こうなれば成功。指定通りに表示されたかしら?


差分パーツを表示したくない場合は0を選択すれば、


……。

このように不要な差分は非表示にできるわ。


今度は隣に立ち絵をもう1体、左右反転して左側にも立ち絵を表示してみましょう。ピクチャ番号を重複しないようにズラしてあげて、XY座標を修正して倍率をマイナスにしてあげれば、


同時にもう1体、左右反転させた立ち絵をが出現したわ。

※ピクチャ番号は1つの立ち絵でベース+差分の4つ使用するから、複数表示する場合は番号を4以上離して実行してね。


最後に立ち絵の消去。キャラ選択で-1~-3の「消去」を選択して、消去したい立ち絵のピクチャ番号を指定してね(その他の項目は入力不要よ)。


指定した立ち絵が消えれば成功。うまく動作したかしら?


※今回は当コモンをウディタ公式サイトのコモン集にもアップしておいたわ。もしうまく動作しなかった場合はそちらからダウンロードして使うなり比較するなりしてみてね。

というわけで今回の解説は以上よ。前にも言ったけど、立ち絵以外にも背景だったり差分あり1枚絵のイベントCGだったりと色々使えると思うから、よろしければご活用下さいね。

※あとコモンに不具合があるとかその他要望などあれば教えてね。