投稿記事

フォローの記事 (63)

des 2020/02/29 21:53

2月29日

4年に1度の閏日ですね。

本来なら進捗報告の予定でしたが、


布団を描いたつもりがなんだこれ……

Twitterで垂れ流してるとおり火曜日に発熱して以降、作るのに支障をきたす程度に体調を崩しているためゲーム製作自体をしていません。またです。
先週の土曜日だか日曜日だかにバグ修正のために1度アップデートを挟んでますが、待っている方がいたらすまぬ……。


一応火曜日段階ではこういうのを作ってました。

製作途中の大会機能(選ぶ部分と魔物に任せた場合の戦闘部分等)です。
挙動はかなり怪しいですが、正しい勝利数を取得できた所で止まってます。


……で、ネーミングセンスが無いので大会用の敵名が全く決まってません。
普段ニックネームを付けられるゲームで絶対にニックネームを付けない人間なので、どうしようかな。
名前が原因で最悪実装を先送りにするまであります。こればっかりはどうしようもないです。


それと私が言えた事ではないですが、健康に気を付けてお過ごしください。(1ヶ月ぶり2回目)
また人混みは可能な限り避けてください。

フォロワー以上限定無料

リアルの話

無料

des 2020/02/19 20:00

ウディタの多言語化 2月20日:変数への対応方法を追加

2022年2月6日追記
この記事の内容は古い内容となります。
最近の記事はこちらをご覧ください。

上の記事をUnicodeに対応させたコモンイベントの例はこちら(公式コモン集)からどうぞ。
ご自由にお使いください。


--- ここから以前の記事 ---

久々にゲーム製作とは全く関係の無いウディタのシステムについての話です。

今回の記事は「できそうなら実装する」の中に入れておいた「多言語化」です。
製作の負担が非常に大きく、細かな制約があるため多言語化は限定した部分のみの実装となります。
誰か任意のフォントかつ任意のフォントサイズで上下左右の余白を自由に弄れる、文字をpng画像化するツールを作ってください。それさえあれば負担が9割9分減ります。

はじめに

ウディタを触った事がある方なら知ってのとおりですが、ウディタでは文字コードとしてShift-JISが採用されてます。
そのため文字によっては表示できず、「?」が表示されたり、強○終了したりします。
ゲーム基本設定で中国語とハングル文字にも対応はできますが、弊害として日本語に対応できなくなるという欠点があります。
またゲーム基本設定を変更してもEditor.exeでShift-JISに無い文字を入れると「?」に置き換えられてしまいます。(対策があるかも?)
ですのでテキストファイル等から文章を読み込まないと日本語OSでShift-JIS外の文字は使用できません。

多言語化についてですが、上述のとおり英語などの「ウディタで使える文字だけ」で構成された言語であれば手間はかかりますが、実装はまだ楽です。
問題はそれ以外の言語で、普通の方法だとどうにもなりません。

そこで「中国語(簡体字・繁体字)に無理矢理対応させてしまおうという」のが今回の記事となります。

完成例

からくり

今回ゲームで使用するための翻訳文は以下のように設定してます。

今回作った翻訳機は以下の順番で処理をしています。
1.翻訳後の文章を用意する
2.ツールを利用し、ウディタで使えない文字を変換用の文字に置き換える
3.ゲーム内で、置き換わった文字を\imgの文法にさらに変える
4.文章として表示する

やり方

コード取得

今回は以下のサイトから「GB2312」(簡体字)と「Big5」(繁体字)の文字コードを取得いたしました。
(難しい事を考えないのであれば、Ctrl+Aで全て選択してからメモ帳に貼り、要らない部分を消すと手っ取り早いです)
https://uic.jp/charset/supported_list/
タブ文字を,に置換し、一番上にCSVとして取得されるよう見出し文字を追加するとこうなります。


できたファイルはUTF-8か何か(正常に保存できる文字コード)で保存してください。ANSIだと正常に保存できません。
Excelで間違って開かないよう、保存時の拡張子は「txt」を推奨します。
一番左の列を数字として取得する箇所があるのでExcelでは開かないでください。

ウディタで使用できる文字を変換しないようにする方法の例

※全部\imgで表示させてしまう場合はこの項は必要ありません。

ウディタには「使用できないをエディタに貼ると「?」に置き換わる」という仕様があります。
この仕様を利用し、以下の手順で使用できる文字を抽出したファイルを作ります。
1.文字コードがあるファイルを複製する
2.複製したファイルと何も文字が入っていないメモ帳を開く
3.複製したファイルの中身を切り取り、エディタに貼り付ける
※Ctrl+Aで一気にコピペするとエディタの最大文字数に引っかかるため、何回かに分けておこなわないといけません。
4.貼り付けた物をCtrl+Aで選択し、切り取って空のメモ帳に貼り付ける
5.複製したファイルの中身が空になるまで3と4を繰り返す
6.空になったら処理した物が入っているメモ帳の内容をCtrl+Aで選択し、複製したファイルに貼り付けて保存する
7.「?」があるならその部分を処理しないようにする

変換

※サンプルコードは「実際の挙動について」のファイルを落として覗いてください。110行ほどあるので書くと長くなります。

私はこんな感じで作りました。
1.input.txtの中に変換したい内容を「1文字ずつ改行して」保存する
 理由は知りませんが、改行しないと変換できない事があります。
2.Config.txtの中身を取得し変換モードを決定・文字コードのファイルをCSVファイルとしてUDBかCDBに取得
3.input.txtを取得する
4.DBに入れた文字を1文字ずつ取得し、変換モードに応じて一致する文字を置換する
5.一番最後まで取得が終わったら1行ずつ切り出して出力用の文字列変数に足して出力

文字の画像化

表示する画像をください。
・気合で用意してください。
・手作業で作るなら以下のサイトを使って画像化し、加工すると少しだけ負担が減ります。(画像化せず右クリックで保存してください)
https://ysklog.net/tool/text-img-generate.html
※ゲームのフォントサイズが「28」の場合
フォントタイプ:MS ゴシック
フォントサイズ:20
フォントの色:白
画像背景の透過度:100%
最終的な画像サイズ:縦28px,横28px

いい感じに調整して保存するとこんな風な画像となります。

翻訳文の取得方法

今回はテキストファイルに原文と翻訳後の文章を入れておき、文字列操作にある<から指定文字まで>と<の指定文字以降を切り出し>を使い取得しました。
例として「,てすと,test,\zhcn[B2E2]\zhcn[D1E9],測驗,」のような形でテキストファイルに入力し、ゲーム側で「てすと」と入れると、「,てすと,」以降が切り出されます。
さらに言語設定の数値から1を引いた値を使い、「,」以降の文字を切り出し、最後に「,」までの文章を切り出す事で表示させたい文章を取得できます。

(文章だと滅茶苦茶分かり辛い気がしたので該当箇所のサンプルコードです)
*
■文字列操作:CSelf7[改行無] = CSelf5[文章]
■文字列操作:CSelf8 = CSelf9
■文字列操作:CSelf8 =<の指定文字以降を切り出し> ",\cself[7],"
■条件分岐(文字): 【1】 CSelf8が "<<NotFound>>" と同じ
-◇分岐: 【1】 CSelf8 "<<NotFound>>" と同じ の場合↓
|■イベント処理中断
|■
◇分岐終了◇
■変数操作: CSelf10 = CSelf1 - 1
■回数付きループ [ CSelf10 ]回
|■文字列操作:CSelf8 =<の指定文字以降を切り出し> ","
|■
◇ループここまで◇◇
■文字列操作:CSelf8 =<から指定文字まで切り出し> ","
■条件分岐(文字): 【1】 CSelf8が "" と同じ 【2】 CSelf8が "<<NotFound>>" と同じ
-◇分岐: 【1】 [ CSelf8 "" と同じ ]の場合↓
|■イベント処理中断
|■
-◇分岐: 【2】 CSelf8 "<<NotFound>>" と同じ の場合↓
|■イベント処理中断
|■
◇分岐終了◇
■文字列操作:CSelf5 = CSelf8

ここで注意すべき点ですが、翻訳文が入ったファイルは文字コードを「ANSI」に変えて保存してください。
Windows10だと、新たに作ったメモ帳や空欄のまま保存したファイルは「UTF-8」として保存されてしまいます。
UTF-8だとShift-JISと互換性が無いため、ウディタ上で正しく処理できません。(n敗)

変換コードを\img(画像)に変える方法

特殊文字周りでバグがありそうですが、以下のコードでなぜか動いてます。
*
■文字列操作:CSelf5[文章] =<から文字列を置換> "]" → ".png]"
■文字列操作:CSelf5[文章] =<から文字列を置換> "\zhcn[" → "\img[Language/zhcn/"
■文字列操作:CSelf5[文章] =<から文字列を置換> "\zhtw[" → "\img[Language/zhtw/"
■文字列操作:CSelf5[文章] = "\img[Language/FFFF.png]\cself[5]"
■文字列操作:CSelf5[文章] =<から文字列を置換> "\n" → "\n\img[Language/FFFF.png]"

※最後の2行は、フォントサイズ(\f[]含む)を指定以下の値にするとimg表示の前と後で表示位置が変わってしまう挙動への対策です。(文章の途中で\f[]を入れた場合は上の処理では対応できません)
 横1px、縦28px(imgの縦サイズと同一)の透過画像を用意してください。
※\nは「\n」ではなく「改行」です。

実際の挙動について

Translation.zip (9.98MB)

ダウンロード

全ての文字が正しく変換できているかは確認していません。
使いやすいよう改造してお使いください。

おまけとして表示を確認する為の機能も入れてありますが、各自で画像を用意する必要があります。

注意点

・今回の例では頻繁に変わる変数に対応させるには処理を分ける必要があるため、変数は対応できない物とお考えください。
 文章に変数を使う事を前提にする場合、可変データベースにCSVを読み込み「データIDと項目IDを使い文章を呼び出す」形にする必要があります。
・頻繁に変えない変数だけに対応させる場合は「変数の中身が変わったタイミングで」翻訳文を保存し直してください。負荷はかかりますがそれだけで対応できます。

追記(2月20日)

・可変データベースを使ってもよいのであれば、翻訳文をCSVファイルとして読み込み、手を加えずにセーブする事で翻訳文の特殊文字を特殊文字のまま保存できます。(そんな仕様ありましたね……)
 この挙動を使うと、以下のようなイベントコードを書くと変数にも対応できます。



(モード-1を先に実行し、翻訳前にCSelf9が空白ならモード-2を実行する流れです)

・翻訳文に「,」・「"」・「\n(改行文字」は入れないでください。CSV取得のせいでバグります。

使い勝手

非常に悪いです。
文字を全て画像として表示させないと、ピクチャの拡大率で大きさを変更した場合に、元の文字が画像以上に潰れて読めなくなります。
ですのでフォントサイズを変えて表示する必要がある場合、専用に画像を用意か、翻訳文のみフォントサイズを変えずに表示させる無難です。


ゲームの進捗

画像として貼れる物が無いため、やる事をまとめたリストと進捗を置いておきます。
(進捗や諸事情により一部内容は没となる可能性がございます)

v1α13
目標:20/3/31
作業が終わった物の先頭に○を追加
追加
・ふれあい機能の動作テスト版を実装
○・ミニゲームにある「避けるアレ」を遊べるよう調整
 当たり判定や弾の挙動がおかしいですが修正が大変なので仕様とします。
・大会機能を仮実装
※現在は最低ランクのみ出場できます。
※魔物が敵で出ますが、敵は固有特性を含め特性を持ってません。
○・どうぐやを実装
 アイテムの購入・売却をおこなえます。
○※一部商品は特定の月のみ購入できます。
・敵を追加
※現状は敵限定となります。
○・言語設定に以下の物を追加
-英語
-中国語(簡体字・繁体字(言語不明))
※現状では「はい、いいえ」の選択肢など、一部箇所のみの対応となります。
※原文をちょこっと弄ってGoogle翻訳に突っ込んだ物を使用しています。
 そのため正しく翻訳されているかは一切保証できません。
※繁体字は台湾語なのか広東語なのかは分かりません。
修正
○・一部選択肢を選んだ場合にSEが同時に再生されるバグを修正
○・一部の「はい、いいえ」選択肢で「いいえ」を決定キーで選ぶと、キャンセルキーでキャンセルした場合のSEと異なるミスを修正

des 2020/02/13 01:42

製作中の育成SLGの話17 新機能とかの進捗 ※2月14日追記

お詫び

大変ご迷惑をおかけしております。
v1α11にて以下のバグおよびミスを確認しています。

・ステータスを上げるアイテムを使ってもステータスが増えない
・ホーム画面で魔物をクリックした後にOキーでコンフィグを開くと諸々の表示がコンフィグの設定より上に表示される
・ケールの戦闘立ち絵の目に関する2件のミス(レイヤーのミスと、目の色が左右反転させても同じになっているミス)

おそらく修正できましたが、現状のままアップデートすると何が起こるか分からない為いましばらくお待ちください。
……ステータスのバグは見た目正常に動いてますがこの修正でいいのか自信がありません。

下記の機能を最低限作り終えたら(一部を塞いで)更新を入れます。

お詫び2

(2月14日追記)
v1α11にて以下の進行不能バグを確認しました。
お手数おかけしますがv1α12にアップデートをお願いいたします。
・アイテム一覧でサブキーによる絞り込みを行う際に「ひとつも持っていないアイテムの種類」を選ぶと処理が無限ループし進行不能に陥る。


また現状では発生を確認していませんが、v1α12の動作確認中に以下のバグを確認し修正いたしました。もしも以前のアップデートにて発生しておりましたらコメントなどにご連絡ください。
・アップデートによって、既存アイテムの間に新しいアイテムが追加されると、その位置より下にあるアイテムが消滅する。
・アップデートによって、既存特性の間に新しい特性が追加されると、その位置より下にある特性が消滅する。

進捗

現状で画像でお出しして平気な物は以下の2つです。

一つは「ふれあい」機能です。
前々から何度か書いている「おさわり機能」を含んだ一連の機能……の予定です。


ふれあい機能のはずですが、ふれあい要素皆無のミニゲームもこの中で遊べます。その内何かちゃんと関係のある物を作ります……。
(ミニゲームの片方は去年の夏頃に作ったのを遊べるようにした物です)

動画の画像は仮の物となります。

動画では分かり辛いですが、ふれあい機能は一部操作を除きマウス・キーボード両方に対応させました。


もう一つは「アイテム作成」機能です。
アイテム収集があるのだからという事で、前々から実装予定にあったクラフト要素です。
作ったアイテムをふれあい機能などで使えるようにしようとは思ってますが、今の所どういった物を作れるようにするかは一切決まってません。


絶対硬い。

des 2020/02/06 03:03

v1α6以降へのアップデート後のデータロードでフリーズする現象に関して

進行不能に陥るバグが確認されたので修正をおこないました。

MAMONO1a11.zip (68.23MB)

ダウンロード

大変失礼いたしました。
別の部分にも原因がなければ、これでフリーズは直ったはずです。
(ゲーム内のアップデートでも修正できます。)

v1α11 2/6

更新点

・全魔物に戦闘立ち絵を仮追加(1体のみ動かないのは仕様です)
・状態異常「即死」「瀕死」を実装
・即死を無効化する特性を1種追加
・画像閲覧で左右キーを押すと向きを反転できるよう調整
・でかガエルの戦闘立ち絵のサイズと向きを修正
・仕様を1件追加
※状態異常で減ったライフは実際の表示には反映されません。

バグ修正

・アップデートで魔物への技習得が発生する場合にGame.exeがフリーズするバグを修正
→技の習得後も技を習得し続けてました。事実上の進行不能です。
・戦場での敗北時にMIDIに関する緑帯エラーが表示されるバグを修正
・敵の攻撃時に緑帯エラーが出る事があるバグを恐らく修正
→変数の設定ミスを直した上で変数を毎回初期化するように変えました。
・場の効果「落とし穴」が無限に発動するバグを修正

v1α10 2/3

更新点

・種族指定ファイルの場合、虫を出さない設定を無視する挙動を仕様に変更

バグ修正

・メッセージ表示中にコンフィグを開き一つ目か二つ目のタブを選ぶとコンフィグを閉じた時にメッセージが消えるバグを修正
→閉じた後にキャンセルキーを押すとうんともすんとも言わなくなりますが、もう一度キャンセルキーを押すと他の操作を受け付けるようになります。
・オープニングでの「虫を出さない選択肢」が逆に反映されるバグを修正
・初回の召喚以外、虫を出さない設定が機能していないバグを修正
・データ修正後にBGMとSEが再生されないバグを修正
・セーブデータがある場合に、ゲームを起動した際にシステム設定が読み込まれないバグを修正
※古いセーブデータだと緑帯エラーが数十回表示される可能性があります。緑帯エラーが出なくなるまで連打した後、セーブデータをセーブすると修正されます。
 または起動前にセーブデータをSaveフォルダに無い状態にし、タイトル画面でセーブデータを元に戻してからつづきからを押すと緑帯エラーを出さずにロードできます。

雑記

先週の月曜日から本格的に体調を崩していた訳ですが、熱が下がった以外はほぼ快復してません。これなんですかね。
製作にはそこまで支障がなくなりましたので、今までどおりスローペースで作ってまいります。

des 2020/01/29 21:46

製作中の育成SLGの話 v1α9更新

雑記

先々週の金曜日ごろからですが、少し体調を崩しているのでしばらくゲーム製作はお休みします。
微熱と喉の痛みと頭痛と腹痛と朦朧感が大挙して押し寄せている状況です。久々にインフルエンザでも発症したかな。

皆さんは体調管理に気を配り、お体に気を付けてお過ごしください。

アップデートノート

今回の更新は主にバグやミスの修正がメインです。
アップデートはゲーム内「個別アップデート」からお願いします。

v1α9.1 20/1/29 21:00→21:40

更新・変更点

・助手の口調を若干変更
・特定のタイミングでF12キーを押せないよう変更
→何が起こるか分からないタイミングでF12キーを押せる事が分かり、修正をおこないました。
・データ修正のファイル出力方法を変更
→バージョンの管理方法をv1α6で変えましたが、データ修正の対応を忘れていたため対応をおこないました。
・一部箇所のテキストを追加
・全体アップデートの方式を変更
→今まではゲーム側に色々格納していましたが、今回の更新でバージョンを問わず必要なファイルを全てダウンロードできるようにしました。たぶん。おそらく。
・リビジョンの数字が大きければ全体アップデートをおこなえるよう変更

バグ・ミス修正

・オフラインの状態で個別アップデートを選択した場合に通信に成功した扱いになるバグを修正
・全体アップデートにて、ダウンロードが何らかの原因で途中で中断され、再度ダウンロードを試みるまでの間に別の新しいバージョンへ更新されていた場合、更新データに異常が生じるバグを修正
※v1α8以前で既に起きている場合は、個別アップデートにて対象ファイルをダウンロードし直してください。
・デバッグウインドウを表示させる為のファイルが起動時に毎回出力されるバグを修正
・一部助手で魔物を召喚すると魔物に名前を付けるイベントが発生しないバグを修正
・名前命名後のメッセージが種族名になっているミスを修正
・個別ダウンロードでReadmeのみをダウンロードしても再起動を促されるミスを修正
・データ修正をおこなうとデータが無いと言われる現象を修正(v1α9.0のみ)
→Save/Data/1/内のフォルダにあるフォルダ名「1」になっている場合は「9」に変える事で読み込めるようになります。
・特定の設定にした場合に、特定イベントで発生する助手IDエラーを修正
→ミスと言うよりはそういう仕様でしたが、本Verより該当イベントを追加しました。
・Readmeの誤った部分や削除をし忘れている点を修正
・テキストの顔グラミスや一部はみ出している点を修正
3.その他
・Readmeに既知のバグ2件を追加
・v2α用の更新処理を先に追加
・???(予定している虫関係の特殊イベントは2α以降に入れます)助手IDを8にしてみてください。

沢山のミスがあり、大変ご迷惑をおかけしました。
バグやミスは確認次第、可能な限り逐次修正いたします。
v2αへの更新はしばらくお待ちくださいませ。

3 4 5 6 7 8 9

限定特典から探す

記事のタグから探す

月別アーカイブ

記事を検索