【コピペで作る】表情の変化を実装する。【伺か・yaya】
ukagaka前回
今回すること
- 表情差分を変更できるようにする。
- 差分の別名を登録して管理しやすくする。
必要なもの
- 差分画像(適量)
- やる気 大さじ一杯
表情差分を用意する。
適当な表情差分を用意してsurfaceN.pngにリネームしてsurface0.pngと同じフォルダに入れて下さい。
こちらの例では曜日Tシャツ的な差分を用意してsurface1.pngからsurface7.pngまでを作成してみました。
それから、surface0.pngをコピーしてsurface501.pngを作成しておいてください。
…いい加減な画像ですが、わかりやすくていいでしょう?
追加後のファイル構成
└─shell
└─master
descript.txt
menu_background.png
menu_foreground.png
menu_sidebar.png
surface0.png
surface1.png
surface2.png
surface3.png
surface4.png
surface5.png
surface6.png
surface7.png
surface501.png
surfaces.txt
実際に表情に変化をさせる。
今回は撫で反応でsurface1.pngに変化するようにしてみましょう。
dic_MouseStroke.ukaを開きMouseStroke_0Head関数の中身をこのように変更します。
//頭部撫で
MouseStroke_0Head {
"\s[1]えへへ"
}
環境によりバックスラッシュだったり円マークだったり変わりますがどちらも同じです。
保存したらゴーストを呼び直して撫でてみてください。
表情の変化の実装はここまで
先ほど実装した501を呼び出す。
下記のようにして何度か撫でると、501が呼ばれるでしょう。
//頭部撫で
MouseStroke_0Head {
"\s[1]えへへ"
"\s[501]501だよー"
}
501が表示されると、撫でられなくなったんじゃないでしょうか?
現状501には頭部判定がありません。
surfaces.txtを修正して問題を解決します。
surfaces.txtを確認する。
以前下記のように実装しました。
これは、surfaceの0から500番までこの当たり判定で実装する。という内容です。
surface0-500 {
//優先度:座標が被っても低いほど優先される。
//collision優先度,座標横,座標縦,座標横,座標縦
collision300,47,17,175,79,Head
}
修正案としてこのように書き換えてみてください。
surface0-500 {
collision300,47,17,175,79,Head
}
surface501 {
collision300,47,17,175,79,Head
}
もしくはこのようにしても大丈夫です
surface0-501 {
collision300,47,17,175,79,Head
}
もし追加した画像が、0-500番までとポーズが違ったりするなら適切な座標を指定してください。
これで当たり判定の修正は完了です。
ファイル管理を少しだけ簡単にする
surfaceを呼び出す際、番号の頭についた連続した0は無視されます。
なので、下記のようにファイル名を変えても今まで通り呼び出すことができます。
名前順でファイルをソートする際はこちらの方が快適です。
└─shell
└─master
descript.txt
menu_background.png
menu_foreground.png
menu_sidebar.png
surface000.png
surface001.png
surface002.png
surface003.png
surface004.png
surface005.png
surface006.png
surface007.png
surface501.png
surfaces.txt
surfaceを番号以外で管理する。
表情の変化を実装できるようになりましたが、このままでは非常に管理がしにくいです。
いつだって下記の表を手元に置いておくのは面倒でしょう。
surface番号 | 内容 |
---|---|
0 | 何もなし |
1 | 月曜 |
2 | 火曜 |
別名・エイリアスを登録する。
surfaceに別名を付けて呼び出せるようにします。
surfaces.txtをこのように書き換えてみます。
GetuyouなどはEgaoやWaraiなどわかりやすいように適時変更してください。
charset,UTF-8
descript {
version,1
}
//別名の登録
sakura.surface.alias {
//別名,[surface番号]
Getuyou,[1]
Kayou,[2]
}
surface0-500 {
//優先度:座標が被っても低いほど優先される。
//collision優先度,座標横,座標縦,座標横,座標縦
collision300,47,17,175,79,Head
}
surface501 {
collision300,47,17,175,79,Head
}
dic_MouseStroke.ukaを編集し、MouseStroke_0Headをこのように書き換えてみます。
MouseStroke_0Head {
"\s[Getuyou]月曜だよ"
"\s[Kayou]火曜だよ"
}
問題なく動作しましたか?
これで快適に表情の変化管理できるようになりましたね。
次回
今回は画像そのものの差し替えで変化をさせましたが、
次回ではパーツごとの追加や乗せ換えができるように変更する予定です。
【コピペで作る】伺か・ゴーストの差分画像を福笑い形式で変更する。【YAYA】