少しずつゲームを作るスレ (951レス)
少しずつゲームを作るスレ http://mevius.5ch.net/test/read.cgi/gamedev/1366762846/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
941: ルナドンぽいの [sage] 2025/05/27(火) 21:39:51.02 ID:LiYeZ7IQ >>940 元気ですかー!!(故人) そういえばわしは青森にあるA猪木の墓を訪れたことがあります 意外とこぢんまりとした墓でしたが綺麗にされていて真新しい花や酒などが多く供えられていたのが印象的でした ってそんなことは置いといて、後押しありがとうございます そうっすね、やらないことには始まりませんよね まあ本当にSteamで販売するかは保留にして(大事な決断はなるべく後回しにする製作者の屑)、 英語版はいずれ作りたいと思っていたのでまずはそれに取りかかろうかと思います http://mevius.5ch.net/test/read.cgi/gamedev/1366762846/941
942: ルナドンぽいの [sage] 2025/06/05(木) 22:13:19.20 ID:6mDB2sDM Text Dougeonを.NET FrameWorkから.NETに移行するのに手間取ったりしつつ、ようやく英語版の作成に取りかかる 色々考えたが、ゲーム内のテキストデータをTextDataクラスとしてまとめてJSONファイル化するのが翻訳に便利な気がする まず手始めにキャラ作成時の「通称」と「名前」のリストをTextDataとしてシリアライズ(JSON化) 出来たJSONファイル(見やすさのためデータ量は適宜減らしている) https://imgur.com/3c4OJ4k.png これをAI神に「このJSONファイルのValue部分を英訳して下さいオナシャス!」と奉納する そして下賜されたJSONファイル https://imgur.com/RjrnZ5b.png ゲーム開始時にこの英訳されたJSONファイルをデシリアライズしてゲーム内のテキストデータに展開するようにして、 ゲームを開始すると……「通称」と「名前」が英語化している!(当然) https://imgur.com/EyF6yA9.png だが、英訳が長すぎたりすると変なことになったりもする。こういうのは個別に調整するしかないかも https://imgur.com/qDMTwX8.png あとは粛々と残りのテキストデータもTextDataクラスにまとめて、ゲーム内データに展開する処理を追加すれ一気に英語化できる、はず このやり方なら英語だけじゃなく中国語とかロシア語とか他の言語もいけますね、これは最初から20か国対応いけるな!(AI神頼み) ただ、JSONのままだとユーザーに中身が丸見えになってしまう 通称や名前のリストが見えても大した問題ではないが、イベントなどのテキストまで読めてしまうと興醒めというかゲームとしてどうかと思うので 暗号化とまでは行かなくてもバイナリ化するなどして一般ユーザーには基本見えなくなるような処理を加えたい 具体的には……勿論これから考えますよ!(いつもの) http://mevius.5ch.net/test/read.cgi/gamedev/1366762846/942
943: Text Dungeon(英語化) [sage] 2025/06/10(火) 21:55:23.09 ID:+DfLqwUX バイナリ化はとりあえず後回しにして(いつものパ)、言語の選択を実装した ↓のように"Language"フォルダに各言語のJSONファイル(ファイル名=言語名とする)を入れると https://imgur.com/QselGQL.png タイトル画面でドロップダウンリストから言語を選べるようになる 何かロシア語が妙にデカいんだけどフォントの問題かしら? https://imgur.com/GNeuwhV.png 一応タイトル画面だけ中国語対応してみたw(Steamの4人に1人が中国語ユーザーだとか) https://imgur.com/j1GGsLc.png あとはひたすらテキストデータをTextDataクラスにまとめる作業を進め……ているんだけど これがかなりのボリュームであとどれくらい時間がかかるか見当もつかない ほぼテキストで出来ているゲームなので当然と言えば当然なんだが まあ迅速に少しずつ進めていきますよっと(3か月コース) http://mevius.5ch.net/test/read.cgi/gamedev/1366762846/943
944: Text Dungeon(英語化) [sage] 2025/06/12(木) 00:32:38.42 ID:yZyhP/xw ↑でコンボボックス(ドロップダウンリスト)を配置したら、何故か 「常にコンボボックスがフォーカスされ、背景(ユーザーコントロール)にフォーカスを移せない」 (this.Focus()を何度書いても背景にフォーカスを移せない)という現象が発生し、 '1'キーを押してもゲームを開始できないし、'2'キーを押しても続きから始められなくなってしまった (ただし、クリックすればゲームを始められる) ネットを検索しても同じような現象を見つけられず、AI神に泣きつきながらあれこれ試した結果、 コンボボックスのTabStopプロパティをfalseにした上で、DropDownCloseイベント発生時に this.ActiveControl = nullを入れて無理やり非アクティブにしてやると、 コンボボックスの操作後に背景にフォーカスが移ってキー入力が効くようになった 同じような現象が起きて困っている人のために一応ここに記す (こんなところに書いても誰も見つけられない定期) っていうか検索して出てこないのだからおま環なんだろうか、わけがわからないよ http://mevius.5ch.net/test/read.cgi/gamedev/1366762846/944
945: 456 [sage] 2025/06/12(木) 09:33:06.26 ID:1UEcXoJI FormのプロパティKeyPreviewをTrueにすれば良いような気がするが背景(ユーザーコントロール)が謎すぎて何とも http://mevius.5ch.net/test/read.cgi/gamedev/1366762846/945
946: Text Dungeon(英語化) [sage] 2025/06/12(木) 22:10:43.46 ID:yZyhP/xw >>945 レスありがとうございます。 Text Dungeonはフォームは1つ(Form1)で、From1上に各画面ごとのユーザーコントロール (例えばタイトル画面だったらUserControl_Title、メイン画面だったらUserControl_Mainなど)があって、 ユーザーコントロールを切り替える(.Visible=true/falseする)ことで画面を切り替える仕様になっています また、KeyPressイベントは各ユーザーコントロールのイベントハンドラ(タイトル画面ならUserControl_Title_KeyPress)で処理しています で、ユーザーコントロールにはKeyPreviewプロパティがないので、Form1のKeyPreviewをtrueにして Form1のkeyPressイベントをUserControl_Title_KeyPressに転送してみたところ、>>944の現象を回避することができました こっちの方がActiveControl = nullなんてことをするより筋のいいやり方かもしれません ただ、この手法だとフォーカスは相変わらずコンボボックスに残るため コンボボックスの操作終了後も四角い点線枠が表示され続ける(↓) https://imgur.com/7TSHahn.png のが妙に気になるので、一旦は>>944の処理で対応したいと思います。 ちなみに本現象はコンボボックスに限らずキー入力があるコントロールをユーザーコントロール上に置くと発生するようで どうもユーザーコントロールはKeyPressイベントはあるのにTabStopプロパティはない、 子コントロールを置けるのにKeyPreviewプロパティはないなど、フォーカス周りの設計思想があいまいというか、 システム側にぶん投げてるような感じで、プログラマー側ではフォーカスを制御できないような気がします (調べたわけではないので個人の感想です) つまり、わしが悪いんやない、Microsoftがいい加減なのが悪かったんや……! (と、いい加減プログラマーが申しております) http://mevius.5ch.net/test/read.cgi/gamedev/1366762846/946
947: Text Dungeon(英語化) [sage] 2025/06/15(日) 23:33:18.07 ID:5+yigztT 相変わらず遅々として進まない、父の日だけにね(ニゴッ まさかこのスレでこのネタを4回もやるとは思わなかったよ…… 英語翻訳は上記のようにAI君にやってもらっているのだが、 単なる作業と思いきや会話していると色々英語の勉強になって意外と楽しい。例えば 中央都市:国の首都であり、高い教育水準を誇っています。 この都市の出身者は技量値が高くなる傾向があります。 の「中央都市」の英訳を幾つかオナシャス!と頼むと この都市の特徴を考慮すると、以下のような英訳が適しています: - Capital City(シンプルに「首都」を表す一般的な訳) - Metropolitan Capital(教育水準が高い都会的な首都を強調) - Academic Capital(学問や教育の中心であることを強調) - Scholar’s Haven(学者が集まる知識の中心地というニュアンス) - High Education Capital(高い教育水準を持つ都市であることを強調) 「技量値が高くなる傾向がある」という点を考慮すると、「Refined Capital City」 や 「Skillful Metropolitan」 という表現も適しているかもしれません。 イメージに合うものはありますか? と返してくる だが、地理的に「中央」であることを強調したいので「Central Capital City」はどないや?と聞くと、 "Central Capital City" は、都市の特徴を明確に伝えつつ、首都であることを強調できる良い選択肢です! ただ、英語では通常「Capital City」で首都の意味が十分伝わるため、「Central Capital City」は強調しすぎて少しくどい印象かもしれません! と持ち上げつつやんわりとダメ出しされ、ぐぬぬ……となったりして割と楽しい(結局シンプルに「Central City」にした) まあAI君、たまに堂々と間違ったことを言うので裏取りは必要になるんだけどね でもこのペースだとマジで3か月コースになりそう、まあ父の日だからね、しょうがないね(意味不明) http://mevius.5ch.net/test/read.cgi/gamedev/1366762846/947
948: Text Dungeon(英語化) [sage] 2025/06/19(木) 23:51:01.13 ID:rg8+gcaO ↑で「20か国語対応いける!」などとはしゃいでいたが、翻訳作業を進めるにつれ、 んなわきゃないことがようやく分かってきた(知力3) 固定の文章だったらその対訳をデーターベース(JSONファイル)に登録するだけでいいが、 ゲームなので当然ながら文章は常に固定ではなく一部が動的に変わるケースがある 例えば「輝くロングソードを拾った」という文章だったら「ロングソード」が「バックラー」になったり、 また、「輝く」が「光る」や「古ぼけた」になったり、ゲーム中の状況に応じて単語が動的に変わるわけだが、 言語によっては冠詞や形容詞が名詞の性(男性名詞か女性名詞か中性名詞か)、数(単数か複数か、言語によっては双数という区分もある)、 格(名詞の文章上の役割、主格、所有格、目的格など)によって変化することがある 例えばドイツ語の場合、「輝くロングソードを拾った」はロングソードが男性名詞で、単数で、直接目的格なので 冠詞はein、形容詞(輝く)はglanzendes になるが、これがバックラーだと女性名詞なので冠詞がeinen、形容詞はglanzendenになる また、「輝くロングソードは炎に包まれた」のようにロングソードが主格になった場合も冠詞、形容詞が変化するし、 さらにロングソードが単数か複数かによっても変化する おまけに変化の仕方も必ずしも一定の規則に従うとは限らず、不規則変化する単語もある (ドイツ語はほぼ規則的に変化するが、フランス語やロシア語などは不規則変化する単語が多い) よって、単に「ロングソード」や「輝く」の対訳を一つ登録するだけでなく、 名詞ならそれが男性名詞か女性名詞か中性名詞かを登録する必要があるし、 不規則変化する形容詞だったらその変化形をデータとして登録する必要がある さらに冠詞や形容詞を動的に変化させるための処理をプログラム側で実装する必要もある 無論、変化の仕方(どういう場合にどう変化するか)は言語によって異なるので、 言語ごとにその処理を実装しなければならない 要するに言語ごとのJSONファイルを用意さえすれば多言語対応できる、 などという甘い夢はひとひらの幻となり、時の淵へと沈んでいったのである(唐突な文学的表現@AI) http://mevius.5ch.net/test/read.cgi/gamedev/1366762846/948
949: Text Dungeon(英語化) [sage] 2025/06/20(金) 00:14:53.92 ID:4tDnrhMf で、結局どうするかだけど「英語だけ対応してあとは諦める」方向にしようかと(人生諦めが肝心) もしかしたら中国語(簡体字)にも対応するかもしれない (中国語には冠詞も形容詞の変化もないようなので比較的楽そうな気がする、気がするだけかもしれないが) そもそもText Dungeonをローカライズしたいという有志が現れる可能性は0.01ppmくらい(適当)だし、 億が一そんな人が現れたら、その時はその時で対応すればいいと思うのである 一応、固定文でない言葉はクラス化して属性なり変化形なりのプロパティを後からつけ足せるようにしておけば 億が一の事態が発生した場合も柔軟に対応しやくなる、はず 例えばクリーチャーの名前だったら public class CreatureName { public string Name { get; set; } public string Plural { get; set; } //複数形 public string Quantifier { get; set; } //量数詞 //public int Gender { get; set; } //性(後で追加する……かも) public CreatureName() //コンストラクタは日本語とする { Name = "名無し"; Plural = string.Empty; // Quantifier = "体の"; //Gender = 0; } } みたいにしておいて、後から男性名詞やらなんやらに対応するときはGenderプロパティを追加する形にしようと思う 他にも「こうしといた方がいいよ」とか「こういう場合はどうするんだ」など意見や疑問があったら書いて貰えるとありがたい なんて言ってもレスは無いことは分かっている。いいんだ、AIと勇気と456氏だけがともだちさ(一方的な友達認定) http://mevius.5ch.net/test/read.cgi/gamedev/1366762846/949
950: 456 [sage] 2025/06/20(金) 00:45:15.12 ID:CAVCWRzU こまけえことは気にすんな 誤訳も個性って事にしとけばええんよ(思考停止) http://mevius.5ch.net/test/read.cgi/gamedev/1366762846/950
951: Text Dungeon(英語化) [sage] 2025/06/20(金) 21:22:53.20 ID:4tDnrhMf すみません、バックラーは男性名詞でした なんてこった、これがゲルマン魂ってやつか(意味不明) >>948の「バックラー」は「プレートメイル」に置き換えてお読みください >>950 そうですね、某ファイナルソードも翻訳がアレで却ってウケた感がありますし(尚、日本でしかウケなかった模様) JSONファイルでの単語置き換えは簡易翻訳ということで、良かったら使ってください(自己責任で!)という感じにしようかと http://mevius.5ch.net/test/read.cgi/gamedev/1366762846/951
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
2.235s*