
→スクリプト一覧へ
→「ポップテキスト」スクリプト配布ページへ
使用方法
設定項目
UNPOP_ON_EVENT_NEW_PAGE
UNPOP_ON_EVENT_NEW_PAGE = true
true → 有効 | false → 無効
有効な場合、イベントページが切り替わる際、
そのイベントに表示されているポップテキストを全て削除します。
DEFAULT_FONT_SIZE
DEFAULT_FONT_SIZE = 16
数値で指定
テキスト表示の大きさを設定します。
DEFAULT_FONT_BOLD
DEFAULT_FONT_BOLD = true
true → 太字 | false → 通常
テキスト表示を太字に設定します。
DEFAULT_HALF_WIDTH_RATE
DEFAULT_HALF_WIDTH_RATE = 0.6
0以上、1以下の数値で指定
文字幅の計算に使用する倍率です。
フォントサイズを1とした時に、半角文字の幅はどれぐらいになるのか?を指定します。
半角文字の描画で問題が発生してしまう場合、この値を大きくしてください。
表示方式一覧
名称 | 説明 |
---|---|
default | 基本の表示方式です。キャラクターの頭上に指定文字列を常時表示します。 |
name | defalutとほぼ同じですが、 プレイヤーの近くにいる時だけ指定文字列を表示します。 |
eject | キャラクターの頭上からテキストが飛び出して行き、 一定時間経つと減速しながらフェードアウトします。 |
表示スクリプト
PopText.character(character, text, setup = :default)
引数 | 型 | 説明 |
---|---|---|
character | Game_Character系列 | 表示対象のキャラクター |
text | String | 表示する文字 |
setup | Symbol | 表示方式の名称(省略した場合:default) |
キャラ、文字、表示方式を指定して表示します。
PopText.character($game_player, "プレイヤー")
PopText.player(text, setup = :default)
引数 | 型 | 説明 |
---|---|---|
text | String | 表示する文字 |
setup | Symbol | 表示方式の名称(省略した場合:default) |
プレイヤーに対して、文字と表示方式を指定して表示します。
PopText.player("+324G", :eject)
PopText.event(id, text, setup = :default)
引数 | 型 | 説明 |
---|---|---|
id | Integer | 表示対象のイベントのID |
text | String | 表示する文字 |
setup | Symbol | 表示方式の名称(省略した場合:default) |
指定したIDのイベントに、文字と表示方式を指定して表示します。
PopText.event(0, "イベント", :name)
PopText.unpop(character)
引数 | 型 | 説明 |
---|---|---|
character | Game_Character系列 | 表示を削除するキャラクター |
指定したキャラクターに表示されているテキストを全て削除します。
PopText.unpop($game_player)
PopText.unpop_player
プレイヤーに表示されているテキストを全て削除します。
PopText.unpop_player
PopText.unpop_event(id)
引数 | 型 | 説明 |
---|---|---|
id | Integer | イベントのID |
指定したIDのイベントに表示されているテキストを全て削除します。
PopText.unpop_event(0)
注釈を使用した表示方法

「CraftLib」スクリプトが導入されている場合、テキストを表示したいイベントの
イベントページの一番上に「注釈」を置き、その中で表示を指定することで、
イベントページの読み込み時に自動的にテキストを表示することができます。
(nameの表示などに適しています。)
以下は表示の指定方法です。
PopText[UNPOP]
現在のイベントに表示されているテキストを削除します。
UNPOP_ON_EVENT_NEW_PAGEが無効の場合、イベントページが切り替わっても、
切り替わる前のページで表示されていたテキストは引き続き表示されるため、
異なるテキストを表示する場合には、これを先に使用します。
PopText[UNPOP]
PopText[text, setup = :default]
引数 | 型 | 説明 |
---|---|---|
text | String | 表示する文字 |
setup | Symbol | 表示方式の名称(省略した場合:default) |
現在のイベントに文字と表示方式を指定して表示します。
PopText["冒険者A", :name]
改造方法
「ポップテキスト」スクリプトは、
表示方式の追加や改造が比較的簡単に行える構造となっています。(たぶん)
表示方式は内部的には、以下の二つに分けて管理されています。
モジュール名 | 説明 | 実行タイミング |
---|---|---|
Setup | 指定文字からスプライト・ビットマップを生成する 表示位置の更新に使う変数を用意する、等 |
表示開始時 シーン遷移時*1 |
Control | スプライト・ビットマップの表示や位置決めを行う 表示終了時に自らテキストの削除を行う、等 |
毎フレーム |
これらのメソッドを名称で管理して呼び出しているので、
ユーザー独自で設定した表示方式も簡単に呼び出せます。
文字色の変更

警告などを表すために文字色を変更したい場合があると思います。
その場合の改造例を紹介します。
まずは標準の表示方式「default」をコピーし、これを元に編集しましょう。
スクリプト本体にある「上級者向け設定」の項目にある、
module Setup → def default の所に定義されています。
module PopText module Setup def default # 基準サイズの設定 @size = DEFAULT_FONT_SIZE # スプライト・ビットマップの作成 create_graphic # フォントの設定 font = @bitmap.font font.size = @size font.bold = DEFAULT_FONT_BOLD # テキストの描画 draw_text_defalut # 位置の設定 @sprite.ox = @bitmap.width / 2 @sprite.oy = 32 + @bitmap.height + 2 @sprite.z = 1000 # コントロールの設定 @control = :control_default end end end
これに対して以下の変更を行います。
- メソッド名の変更 default → warning
- fontの色を再設定(文字色を赤、縁の色を白に)
module PopText module Setup # ☆ メソッド名の変更 def warning # 基準サイズの設定 @size = DEFAULT_FONT_SIZE # スプライト・ビットマップの作成 create_graphic # フォントの設定 font = @bitmap.font font.size = @size font.bold = DEFAULT_FONT_BOLD # ☆ fontの色を再設定 font.color.set(255, 0, 0, 255) font.out_color.set(255, 255, 255, 224) # テキストの描画 draw_text_defalut # 位置の設定 @sprite.ox = @bitmap.width / 2 @sprite.oy = 32 + @bitmap.height + 2 @sprite.z = 1000 # コントロールの設定 @control = :control_default end end end
これを以下の注釈などで呼び出します。
PopText["警告!", :warning]
これで、先ほどのような赤文字・白縁取りの警告が表示されます。
表示位置の変更

キャラの名前に加えて「武器屋・防具屋・アイテム屋」など、
特殊な役割を持つキャラクターに対して、更に文字を表示したい場合があると思います。
しかし、そのまま二つのテキストを表示すると、テキストは重ねて表示されてしまいます。
そのため、テキストの位置をずらして表示するための改造例を紹介します。
まず、「文字色の変更」でやったことと同じように、defaultをコピーして用意します。
module PopText module Setup def default # 基準サイズの設定 @size = DEFAULT_FONT_SIZE # スプライト・ビットマップの作成 create_graphic # フォントの設定 font = @bitmap.font font.size = @size font.bold = DEFAULT_FONT_BOLD # テキストの描画 draw_text_defalut # 位置の設定 @sprite.ox = @bitmap.width / 2 @sprite.oy = 32 + @bitmap.height + 2 @sprite.z = 1000 # コントロールの設定 @control = :control_default end end end
テキストの位置は、この中の「# 位置の設定」にて行われています。
@sprite.ox, @sprite.oyは、それぞれスプライトの原点を表し、
位置を決めるための基準の位置、といったところでしょうか。
これをずらすことによって、テキストの位置を調整しています。
@sprite.oy = 32 + @bitmap.height
この式内の値は以下の情報を表しています。
- 32 → キャラのスプライトの高さ
- @bitmap.height → テキストの縦幅
原点が下にずれると実際の表示は上にずれます。
今回はキャラの名前の上に役職を表示したいので、
もう一行分、テキストの縦幅分ずらしたいというわけです。
それを踏まえた上で、以下の改造を行います。
- メソッド名の変更 defalut → name_job
- 計算式変更 @sprite.oy
- (おまけ)文字色変更 白 → 緑
- (おまけ)コントロールの変更 :control_default → :control_name*2
module PopText module Setup # ☆ メソッド名の変更 def name_job # 基準サイズの設定 @size = DEFAULT_FONT_SIZE # スプライト・ビットマップの作成 create_graphic # フォントの設定 font = @bitmap.font font.size = @size font.bold = DEFAULT_FONT_BOLD font.color.set(0, 255, 0, 255) # ☆ 文字色変更 # テキストの描画 draw_text_defalut # 位置の設定 @sprite.ox = @bitmap.width / 2 @sprite.oy = 32 + @bitmap.height * 2 # ☆ 計算式変更 @sprite.z = 1000 @control = :control_name # ☆ コントロールの変更 end end end
これで以下の注釈で設定すれば、冒頭の画像のようになります。
PopText["[アイテム屋]", :name_job] PopText["アイ", :name]
更新処理の改造

クエストを受けることの出来るキャラクターなど、
より一層強調してテキスト表示を行いたい場合、
文字自体にアニメーションを追加する方法があります。
今回はプカプカと水の上に浮いてるかのような、
控え目に主張するアニメーションを追加する改造例を紹介します。
まずは下準備として、
PopText::Setupにfloating、PopText::Controlにcontrol_floatingを用意します。
module PopText module Setup def floating end end module Control def control_floating end end end
処理の仕様を考えます。
- 基本的な文字の描画はdefaultと全く同じ
- 一定速度で、一定範囲内を行ったり来たりする
1.に関しては、defaultと全く同じであるなら
新たに用意したfloatingメソッド内で、そのままdefaultを呼び出すことが可能です。
2.に関しては、「一定速度」で「一定範囲内」を「行ったり来たり」を実現するために、
Setupでいくつかの変数を用意する必要がありそうです。
そこで、実際に用意する変数が以下の通りです↓
名称 | 説明 |
---|---|
@offset | 現在の移動量 |
@max | @offsetの上限 |
@min | @offsetの下限 |
@speed | 1フレームに移動する量 |
@rise | 上昇中/下降中の判定フラグ |
Setupのメソッドは、メニューを開くなどしてシーンが遷移するたびに呼び出されますが、
メニューが開く度にこれらの経過がリセットされてしまうと、おかしなことになってしまいます。
そのため、これらの変数は一度設定したらリセットされないように、
値が存在しない場合にのみ設定するようにします。
Controlのメソッドは、
control_defaultがキャラクターの位置を基準にテキストの位置を設定してくれるメソッドなので、
これを元に、後から@offsetの分だけ座標を調整する仕組みにしようと思います。
以上を踏まえたコードが以下のものになります。
module PopText module Setup def floating default @control = :control_floating unless @offset @offset = 0 @max = 2 @min = -2 @speed = 4 / 40.0 @rise = false end end end module Control def control_floating control_default @rise = true if @offset <= @min @rise = false if @offset >= @max if @rise @offset += @speed else @offset -= @speed end @sprite.y -= @offset end end end
floatingでdefaultを実行して基本的な文字の描画・位置設定を済ませたのち
各種変数のセットアップを行っています。
更新処理にはcontrol_floatingを使うので、
@control = :control_floating として上書きしています。
そして、実際の更新処理では、
現在の移動量@offsetの値が上限・下限に触れているかを判定し、
触れているならば、@riseを切り替えるという処理をした後、
@offsetに@speedを@riseによって加算または減算し、
最後にスプライトのY座標 @sprite.y から@offsetを減算しています。
これらの改造を追加したのち、以下のように注釈を用いるなどすることで、
冒頭の画像のような表示が可能になります。
PopText["QUEST", :floating]
メソッド・変数の詳細
ポップテキストで内部的に使用しているメソッドや変数を解説します。
これらのメソッドと同名のメソッドや変数をSetup・Controlで使用してしまうと、
不具合が発生してしまうので注意してください。
インスタンス変数
@text
表示するテキストが入っています。
文字列への変換はされていないので、必要に応じてto_sを呼び出すなどしてください。
@sprite
スプライトが代入される変数です。
シーン遷移時やunpop時、自動的にdisposeが呼び出されます。
@bitmap
ビットマップが代入される変数です。
シーン遷移時やunpop時、自動的にdisposeが呼び出されます。
@width
ビットマップの幅が代入される変数です。
create_graphicの前に値を設定しておけば、生成されるビットマップの幅を指定することができます。
@height
ビットマップの高さが代入される変数です。
create_graphicの前に値を設定しておけば、生成されるビットマップの高さを指定することができます。
@size
フォントのサイズを代入しておく変数です。
@width, @heightを自動計算する場合に使用されます。
@setup
セットアップ用のメソッドの名前が代入される変数です。
@control
更新用のメソッドの名前を代入しておく変数です。
@remove
テキストの削除判定です。
removeメソッドが実行された際にtrueになります。
削除時は@removeをtrueにする以外にも様々な処理を介しているので、
この変数の値を自分で変更することは非推奨です。
メソッド
PopText.viewport
@spriteに設定する用のviewportを返します。
create_graphic
スプライトとビットマップを生成し、それぞれ@spriteと@bitmapに代入します。
@spriteには自動的にPopText.viewportが設定され、
@bitmapのサイズは、@width, @heightの指定がない場合、@sizeを元に自動計算されます。
これらの指定がきちんと行われないまま呼び出されるとクラッシュします。
default_width
@widthの自動計算用メソッドです。
default_height
@heightの自動計算用メソッドです。
draw_text_default
@bitmapにdraw_textを実行します。
幅いっぱいに@textを中央寄せで描画します。
@textの改行には非対応です。対応する予定もないです。
refresh
@setup, @controlに登録されたメソッドを呼び出します。
update
@controlに登録されたメソッドを呼び出します。毎フレーム自動的に呼び出されます。
このメソッドを自ら呼び出すことは非推奨です。
dispose
@bitmap, @spriteを解放します。
このメソッドを自ら呼び出すことは非推奨です。
remove
表示中のテキストを削除します。Setup, Controlから自ら呼び出すことが可能です。
まとめ
→スクリプト一覧へ
→「ポップテキスト」スクリプト配布ページへ
この説明を読んで、もし不明な点などがあれば、コメントなどから是非ご質問ください。
また、改造する場合に関しては、ツクール本体のマニュアルや、
スクリプト自体を読み込むことも役に立つと思います。
さて、残りは余談。
このスクリプトはPopTextとかいう名前だけど、改造次第ではテキスト以外にも、
画像とか色々表示できたりしちゃう優れものー・・・いや優れては無いか。
しかし、こんな改造前提みたいな面構えのスクリプトで
良かったんだろうかという話はあったりする。
改造とか普通の人はしないし不具合の原因になるだけじゃないかじょのいこって。
更にどうでもいいですが、こういうドキュメントを作るのはゲロ大変ですね…。
もうやりたくねー(ォィ