今回の備忘録は動きのあるふきだしを表示して会話をする方法についての記録です。
まずは動画と実際に使用しているコードをご覧ください。
動画は「学園ライト!」より。
実際の動作とコード
本編始まる前の読み込み部分
;メッセージウィンドウの設定
[position layer="message0" left=100 top=485 width=1080 height=210 page=fore visible=true]
[position layer="message1" frame="f_right.png" left=470 top=150 width=400 height=220 page=fore visible=true]
[position layer="message2" frame="f_left.png" left=420 top=150 width=400 height=220 page=fore visible=true]
[position layer="message3" frame="f_left.png" left=750 top=150 width=400 height=220 page=fore visible=true]
;文字が表示される領域を調整
[position layer=message0 page=fore margint="45" marginl="50" marginr="70" marginb="60"]
[position layer=message1 page=fore margint="20" marginl="50" marginr="70" marginb="60"]
[position layer=message2 page=fore margint="20" marginl="70" marginr="50" marginb="60"]
[position layer=message3 page=fore margint="20" marginl="70" marginr="50" marginb="60"]
;メッセージウィンドウの表示
[layopt layer=message0 visible=true]
[layopt layer=message1 visible=false]
[layopt layer=message2 visible=false]
[layopt layer=message3 visible=false]
;ふきだし用キーフレーム
[keyframe name="fukidashi_start"]
[frame p=0% scale=0]
[frame p=90% scale=1.2]
[frame p=100% scale=1]
[endkeyframe]
[keyframe name="fukidashi_end"]
[frame p=0% scale=1]
[frame p=10% scale=1.2]
[frame p=100% scale=0]
[endkeyframe]
ふきだしマクロ部分
;--------------------------------------------------------------
;ふきだしマクロ(ふきだし用キーフレームを読み込んでおくこと)
[macro name=fukidashi]
;次にふきだしが来るか判定
;ふきだしを文字を表示した後 なにもしない 開くのみ 閉じるのみ 開く閉じる 4パターン fuki=0 1 2 3
;ふきだし表示の次が メッセージウィンドウ 会話 2パターン next=0 1
[if exp="mp.fuki==1||mp.fuki==3"]
[layopt layer=message0 visible=false]
[wait time=300]
[current layer=%layer]
[layopt layer=%layer visible=true]
[kanim layer=%layer keyframe="fukidashi_start" time=300]
[wait time=300]
[endif]
;セリフ表示
[text val=%text]
[p]
[if exp="mp.fuki==2||mp.fuki==3"]
[kanim layer=%layer keyframe="fukidashi_end" time=300]
[layopt layer=%layer visible=false]
[wait time=200]
[endif]
[if exp="mp.next==0"]
[current layer=message0]
[layopt layer=message0 visible=true]
[endif]
[endmacro]
;--------------------------------------------------------------
実装方法(動画部分の全コード)
[playbgm storage=nichijou.ogg]
秋の気配を感じる心地良い風が[r]
教室を通り抜けた。[p]
優しい日差しが教室を照らしている。[p]
[chara_show name="yokokawa" time="1000"]
[fukidashi text="田中は今日も<br>来ていないみたいだな" layer=message3 fuki=3 next=0]
#
担任の横川は出席確認をしていた。[p]
[chara_mod name="yokokawa" face="ikari"]
普段はいかにも優しいといった顔立ちをしている横川は、[r]
怪訝そうな表情に変わった。[p]
横川は出席簿に目を落とした。[p]
田中の欄には欠席を表す[r]
『欠』の字が並んでいた。[p]
[chara_hide name="yokokawa"]
青葉の隣に座る卯月汐里(うつきしおり)は[r]
横川に気づかれないようにこっそりと青葉に話かけた。[p]
[chara_show name="utsuki" time="1000" left=800]
[fukidashi text="田中くん<br>元気だったのに" layer=message1 fuki=1 next=1]
[fukidashi text="いきなり来なくなっちゃったね" layer=message1 fuki=0 next=1]
[fukidashi text="どうしちゃったんだろ" layer=message1 fuki=2 next=0]
[chara_show name="yamamine" time="1000" left=200]
#
山峰青葉(やまみねあおは)は外を眺めていた。[p]
汐里の方向に振り返り答えた。[p]
[chara_mod name="yamamine" face="akire" reflect="true"]
[fukidashi text="さぁ" layer=message2 fuki=1 next=1]
[fukidashi text="学校に通う意味を<br>見出せなくなったんじゃないかしら" layer=message2 fuki=2 next=1]
[chara_mod name="yamamine" face="default"]
#
[fukidashi text="将来、美術大学に進学して絵描きになりたいって" layer=message1 fuki=1 next=1]
[fukidashi text="頑張っていたのに" layer=message1 fuki=0 next=1]
[fukidashi text="急に来なくなる人、最近多くない?" layer=message1 fuki=0 next=1]
[chara_mod name="utsuki" face="kanashimi"]
[fukidashi text="隣のクラスでも何人かいるみたいだし" layer=message1 fuki=0 next=1]
[fukidashi text="うちのクラスでも三人目" layer=message1 fuki=0 next=1]
[fukidashi text="まだまだ増えるのかな。来なくなる人" layer=message1 fuki=2 next=1]
[chara_mod name="yamamine" face="akire" reflect="true"]
[chara_mod name="utsuki" face="default"]
[fukidashi text="数人くらい、欠席者が出るときだってあるわ" layer=message2 fuki=1 next=1]
[fukidashi text="気にしないことね" layer=message2 fuki=2 next=1]
[chara_mod name="utsuki" face="kanashimi"]
[fukidashi text="そうかなぁ" layer=message1 fuki=3 next=0]
#
汐里は眉を八の字にして天井を見た。[p]
コードの説明
本編始まる前の読み込み部分でふきだし画像と”ふきだし用キーフレーム”でふきだし画像の動きを記述しています。
message1~3はふきだしが表示される場所を決め打ちで入力しています。
ふきだしを表示する場所によって使い分けます。
ふきだしマクロ部分では
ふきだしを表示したり、
表示したときは通常の下部メッセージウィンドウを非表示にしたり、
message1~3の区別を付けたり、
ふきだし非表示にするときはメッセージウィンドウを表示したり、
ふきだしに表示する文字を設定したりします。
実装は、
[fukidashi text="そうかなぁ" layer=message1 fuki=3 next=0]
というように、textで表示文字、layerで表示場所、
fukiで文字を表示した後
0 なにもしない
1 開くのみ
2 閉じるのみ
3 開く閉じる
の上記4パターンを fuki=0 というように記述してふきだしの動きを決めます。
おわりに
以上となります。
改善の余地は大いにありコード出すのも恥ずかしい完成度なのですが、自身で忘れないように今回書き留めておきました。
今後改善しましたら記事を更新していきたいと思います。
それではまた!