【ティラノスクリプト】ポポポ音の管理は難しい?(追記)(再追記)

  【ティラノスクリプト】タグ[popopo]

(tyranoscript_v602cで確認)

ゲーム作りにはいろんな要素がありますけど、中でも「音」は重要とも言えるし場合によってはなくても全然問題なかったりもします。
特に初心者が最初から完璧なゲームを目指す必要はないと思っていて、そんな時に省けるのも「音」というケースも多いと思います。
(いきなり音ゲーを作ろうとしない限り)

というわけで個人的にも音関係は最低限しか対応していなかったのですが、少し前に公式で「ポポポ音」が実装されたというので、そのためにバージョンアップをして使ってみました!

ポポポ音って何?

昔のゲームには「ボイス」の代わりにテキストが表示されると「ぽぽぽ・・・」って鳴っていた、アレですね。
「ててててー」みたいなイメージもあるかも。あれ? それはモールス信号?

なくてもゲームは進行できますが、あったら大分雰囲気が変わりますね。
場合によってはうるさい、ない方がいい、とも思われるでしょうから、入れるとなると最低限ON・OFFは選べたほうがいいですね。

タグ[popopo]

詳しいタグの説明は公式のリファレンスを参照していただくとして。

このタグ、いざ使うと日頃の管理を見直さないといけないことがわかりました。

以下あくまで個人のチェック範囲です。

一度呼ぶと永遠に鳴る

そりゃそうだろう。呼んだのだから止めるまでは鳴るもの。
確かにそれでいいんです。

でも凄くややこしいのが、「chara」というパラメーターの存在。

「キャラクター名を指定できます。このキャラクターが話しているときだけ、ポポポ音を適用できます」

キャラごとにポポポ音を設定できて便利ですね。

でもこれややこしいのが、あくまで「#キャラ名」で判断しているんですよね。

だから「#キャラ名」を変えない限りずーっと同じ音が鳴ります。
それも当たり前です。

なんですが、「#」の管理を曖昧にしていると、予期せぬところで鳴ってしまうんですね。

鳴って欲しくないところがある

そもそも「#キャラ名」って、メッセージウインドウにキャラの名前を出す時に使っていると思います。
逆にその必要がないのにわざわざ記述することはないはず。

そしてキャラ名に関係のないテキスト、特に名前表示することのないウインドウを使う時ってまったく意識していなくないですか?

少なくとも私はそうで、例えば「朝になりました」というシステムメッセージを画面の真ん中に出す時は、それ専用のウインドウを用意します。
そこには「キャラ名」を入れる必要がないことが多いです。

なので、「朝になりました」でも#キャラで指定したぽぽぽが鳴ります。

「それもあり」
って処理できるならいいんです。
問題なのは、その手のテキストを「シーン切り替えで見えないうちに準備している」時!
こういうケースって割とよくあることだと思うんですけど、そんな時に画面は出揃ってないのに「ぽぽぽ」って鳴ってしまうんですね。
いわゆる誰が見てもわかる「バグ」になってしまうんです。

ポポポは簡単に止まらない?

じゃあ、ポポポを止めればいいじゃん。
そう、ポポポを止めるタグはあります。

 [popopo type="none"]

ですがこれだけでは#キャラで指定したぽぽぽは止まりません。

[popopo type="none" chara ="キャラ名"]

そう、一度キャラ設定したpopopoは以降、独立したpopopoになる? ので個別の扱いになるんです。

ポポポは止めなくていい

ということは、複数のキャラにそれぞれのpopopoを設定した場合、どのポポポで終わってるかわからないから全popopoを止めないといけないってこと?

って一瞬フリーズしかけたんですが、音を止めるにはもっといい方法があるじゃん!
とやる前に気づきましたw

#キャラを指定しなければいい

キャラを指定しない、というのは曖昧な言葉でティラノスクリプトの場合、一度#キャラ名と書くと何かで上書きしない限りその値は変わりません。

なので「#」で中身をリセットするのです。

そもそも先に例に出した
「朝になりました」
のようなシステムメッセージには「#」を考慮する必要がないまま扱っていました。
だから「#」そのものが変わっていないので、ポポポ音も引き継いで鳴ってしまう。
なのでこういったメッセージにも「#」をつけておけばいいんですね!

ポポポ音を使っていない時よりも処理が増えて、面倒臭さはあるかもしれませんが、
鳴らした音を消したいんだから仕方ない。
でもいちいちキャラ指定して音を止める、なんてする必要はないんだから簡単!!

→注意!この記事を書いた時点では、何回も動作確認して問題なかったのですが、
現時点で再確認したところ「#」でもポポポ音が鳴っています!! 何故!?

#ポポポ音未設定のキャラでも音は鳴らない

すでにキャラ指定がある前提で、指定していない#キャラ名にした場合もポポポ音はなりません。

なので音を設定していないキャラ、#無音って書いて無音にすることもできます。
でも、何かのタイミングで無音が名前のフィールドに出てしまわないとも限らないので、ただ無音にしたいだけなら「#」が無難。
→現在、どんなキャラ名にしても前で指定しているポポポ音が鳴ります。
再追記:その後、挙動が安定した以降上記のようなバグ?は起きていません。
記述は同じなので、何が原因でそうなったのかなどはわかっていません。

管理の方法

あくまで仕様によって変わるので、これだ! って一つに決めることはできないと思いますが、ポポポ音を止めるのはタグよりも「#」で対応するのがいいような気がしています。
→現在止まっていません!

理由はキャラ指定があった場合に、指定しないと漏れる場合があるから。
すべてをきっちり管理するのなら、漏れはないと言えますが、その管理にバグがない、とは言い切れません。

「#」で鳴らしたくないところは鳴らさない、を前提とするとキャラ指定はできるならできるだけしたほうが、安全です。
キャラ指定をするだけで、「音がついてない」「違う音が鳴っている」というバグは防げますから。

でも、モブA、モブBみたいな一言だけしか言わないから同じ音だけどキャラ名は違う、みたいな場合はいちいちキャラ名指定するのは面倒なので、キャラ名は指定せずにポポポ音だけを指定するほうが楽だと思います。

ポポポ音の仕様を把握するまでは、思った通りの動作じゃなくて戸惑ったりしましたけど、ある程度把握できたら「そんなにややこしいものではなかった」ってなりました!

【追記】
この記事を書いた時点では問題なかったのですが、その後なぜか「#」で音を消していた箇所が前のポポポ音を引き継ぐようになっています。

検証には時間がかかるかもしれませんが、また記事にまとめます。
ポポポ音……やっぱり管理難しいかも!!

【再追記】
その後、挙動が元に戻りそれ以降は上記のような状態にはなっていません。
なので多分、大丈夫かなと思って使っています!

Next Post Previous Post
No Comment
Add Comment
comment url