ミリノルト 2023/04/08 22:08

【ウディタ】会話イベント中にロードする

ごぎげんようなのです。
無料プランの名前をしれっと見直しました、ミリノルトです。

今回は技術発信!

前置き

ウディタは自由度が高い一方で、いわゆる中級者向けのノウハウが中々共有されづらいと私は感じています。
そこで、私の辿った問題点とその解決方法を記録して、備忘録兼同じようなことをしたい方向けの何かになればと思いこの記事を書いています。

結論

自作メッセージ表示コモンを使うことで、会話イベント中でも「呼び出しのみ」でコモンを起動できる。

結論から書こうとはよく言ったものですが、見出しの名前まで結論にしている方は中々見かけない気がしますので、やってみました。ふふふ。

何がしたいのか

奏翼譚歌アンサラーver0.12体験版ααをプレイしてくださった方や、私のtwitterを注意深く観ていた方は、気付いたと思います。
そう、このゲーム、会話イベント中にセーブやロードができます。

ノベルゲームを思い浮かべてみてください。だいたい常に会話をしていますよね。
その中でもセーブやロードができますよね。
あれと同じことをやりたいのです。何せ本作は「ノベルパート」と「バトルパート」に分かれた構成となっています。話しているか戦っているかなのです。
プレイ中にロードできなくてもプレイに支障はありません。しかし、できたほうが遊びやすさは断然上がる!上げたい!

こうして、会話イベント中にVキーでメニューを開いてそこからロード画面を出せるようにしました。

問題点

それは、ウディタver3への移行を進めていた際のこと……。
描画する座標を書き換え、ロードのテストをしたのです。すると……

緑帯ことエラーメッセージが!
(スクショを撮っていたと思っていたのですが探してもありませんでした……)

先述の通り、現在の本作のシステムでは、文章の表示中にVキーを押すことでメニューを出し、セーブ/ロード画面に移行する仕様となっています。
そのメニューを出す際に、並列実行を使っていたのです。

以前からウディタの言語仕様において、並列実行中のロードは非推奨とされていました。低確率でクラッシュの危険があるためだそうです。
私はそのことを知らずに使ってしまっていたのです。
それがウディタver3で正式に「実行できないこと」として定められました。
しかし並列実行を使わないと、「文章の表示」をしている最中にVキーを受け付けることはなくなってしまいます。
シナリオファイルを別のコモンイベントの途中から呼び出して使っているので、「イベントの予約」も使えないと来ました。

これを解決するため、私はあることを決めたのです。

解決方法

自作メッセージ表示コモンを作ることで解決しました。


画像は実際のコモンイベントです。特に複雑なことはしていません。簡単だからこそこんな風に画像を出せるというものです。

折角デフォルトで「文章の表示」の機能があるのに1つの目的のために逸脱しないといけないのは少し後ろめたいものもありましたが、なんとかなりました。
ウィンドウの大きさはデフォルトのコモンと同じ大きさになるように、同じ座標と同じ幅を使いました。
文にはピクチャを使い、「文章の表示」の場合と同じ座標になるように調整しました。
ちなみにこのコモンは本当にメッセージ表示(それか消去か判定)をしているだけです。キーを押して読み進めるなどの処理は呼び出した側のコモンが行います。
ヒトはそれを単一責任の原則と呼ぶんですって。

ともあれ、おかげで問題解決!遊びやすさが向上しました。

次回予告

この記事を注意深く読んだ方は気付いたと思います。
「あれ、セーブは? そもそもデフォルトだと会話イベント中にロードしたら……」
という訳で次回、セーブ編!

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

記事を検索