Re: バグ報告スレッド 14 [ No.226 ]
メンテ
 2024/10/19 20:37
 とみする
224です。お忙しい中、ご返信ありがとうございます。
翻訳サポートツールは使わせていただいていて、そちらでマップも翻訳済みなので大丈夫です。
マップも切り替えさせる方法でうまくいきました。ありがとうございます。動作確認をしているのですが、こう使うべき、という使い方の想定がよくわからないので助かりました。

この仕様の前提で質問をさせてください。

(1)basicdataとmapdataを起動時に読み込むので、ゲーム中の言語切り替えではなくタイトル画面で言語設定をしてその場で再起動させる、という動きを想定しているでしょうか?
例えばRPGで考えられる言語切り替えの操作としては
@ゲーム中のコンフィグメニューなどで言語切り替えをしその場で切り替わる
Aニューゲーム時に言語を選びその言語でゲームが進行する。
という動きも考えられます。その場合はセーブ毎に現在言語で進行するでしょうが、そうではなく
B起動時の言語で全セーブデータ共通で動作する
という形になるでしょうか。それならタイトル画面で例えば
 ニューゲーム
 ロード
 言語切り替え(切り替えたらシャットダウンする)
という動きにしようかと思います。

(2)
またキャラクター名はcdbにあるため、言語を切り替えて再開した場合もニューゲームしたときの名前になります。
例えば、主人公の名前を日本語版「山田」、英語版cdbに「yamada」と入れておいても
ニューゲーム時に主人公「山田」としてスタートしたら、途中で言語切り替えしてもyamadaにならず山田のままになります。
名前は特に、戦闘などいろいろな場所ででるので直したいのですが、この場合の対処は
cdb(0:X:0)に名前を入れるのではなく別の名前用UDBを作りそこを参照・・・と思ったのですが、
既に「可変DB読み込み:\cdb[0:山田:0]」のように番号ではなく名前形式で作ってしまっていた場合どうしたらいいか・・・と思っています。
@可変DB読み込みで名前形式読みの場所をすべて探してデータ番号形式に修正する
A翻訳サポートツールでの「DBのタイプ・データ・項目名を取得する?」をONにして出てきたものでなんとかする(具体的にわからない)
B戦闘など、cdbから名前を取得している箇所を発覚都度、自作の名前用UDBから呼ぶように改造する
のどれかになるのでしょうか。できればAを使い名前呼びの場所をすべてデータ番号呼びに変更したいのですが、使い方がわからないです。

この修正が大変でバグのもとになりそうなら、ニューゲームしたときの言語以外でロードするのは推奨しないということならそれでもいいと思います。普通にプレイしていて日本人が日本語でニューゲームして途中で英語に切り替えるは無いと思います。

ただ、そうなると(1)はAの動きはスマートかなと思うのですが、どういう動かし方が、この翻訳サポートツールを組み合わせた多言語版での想定に近いかを教えていただければ助かります。もともと翻訳がウディタの仕様からして後付けなので完全でなくてもいいと思いますが、開発側の想定した使い方があるのに、その仕様がよくわからないので変な作りにならないようにしたいのでご教示いただければと思います。

※いまのところ、山田でスタートして英語版に切り替えて再開しても可変DB読み込みで名前形式取得箇所で緑帯エラーは出ませんがこの先大丈夫なのか不安ではあります・・・

翻訳サポートツールはいまのところクラッシュや不具合はなく、言語別に作ったゲームなら動作に問題ないです。翻訳のためのテキスト幅調整などツール外の作業が大変(英語は長くなる!)ですが問題なく、多言語統合型を作ろうとしている際での質問になります。