ごいしはまぐり

ノベルゲーム制作サークル「ごいしはまぐり」紹介の他、映画紹介やティラノスクリプト等、メンバーの記事を寄せ集めています。

ティラノスクリプト

ティラノスクリプト備忘録49 動きのあるふきだしマクロ

投稿日:2023年7月23日 更新日:



今回の備忘録は動きのあるふきだしを表示して会話をする方法についての記録です。
まずは動画と実際に使用しているコードをご覧ください。
動画は「学園ライト!」より。



実際の動作とコード

会話ではふきだし、地の文はメッセージ枠内で表示


本編始まる前の読み込み部分

;メッセージウィンドウの設定
[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 というように記述してふきだしの動きを決めます。





おわりに

以上となります。
改善の余地は大いにありコード出すのも恥ずかしい完成度なのですが、自身で忘れないように今回書き留めておきました。
今後改善しましたら記事を更新していきたいと思います。



それではまた!



ごいしはまぐりではブラウザでプレイできるノベルゲームも制作しております。
作品一覧はこちらです。

-ティラノスクリプト

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

ティラノスクリプト備忘録37
カメラアップからスタート

 先日、「思ひ出のラプソディ」を公開しましたが、その中で最初からアップの状態からスタートする場面があります。 今回はアップからスタートする方法について説明します。 まずは動画とコードをご覧ください。 ...

ティラノスクリプト備忘録20
ループ処理

 備忘録20回目はループ処理についてご説明します。ティラノスクリプトにはfor文のようなものが無いので、ラベルとジャンプ、ifで代用します。 具体的なコードと動画は以下の通りです。 ループ処理 ループ ...

ティラノスクリプト備忘録33
ルビをふる

 こんにちは!今回はルビのふり方について記載していきます。 まずは動画とコードをどうぞ。 ルビテスト[p] [ruby text="きょう"]今日もいい[ruby text=&qu ...

ティラノスクリプト備忘録41
跳ねるマクロ

 今回は、使ってきた自作マクロを紹介したいと思います。 まずはキャラクターが「跳ねるマクロ」です。 実際に動かしてみた動画とコードをご覧ください。 跳ねるマクロ[p] [chara_show name ...

ティラノスクリプト備忘録4 JavaScriptで乱数

ティラノスクリプト備忘録第4弾は「乱数」。サイコロとか、ダメージ計算、その他色々な運要素を盛り込んだゲームには必須といっても過言ではありません。今回はJavaScriptを使って整数の乱数を発生させま ...

アーカイブ