Note/Forum/31/logCurrent?
Forum/31
- とりあえずプロジェクトは立ち上げてみたものの、このModには文字化け問題が存在するんですよね。
参考SS1、参考SS2 -- nek-12
- 少し調べてみたところ、どうやら問題は『aaaaMoveInitialiseScript』aaaaMoveInitialiseScript.zipにOBSE拡張機能の『setnameEX』を使っていて、『%a』でASCIIコードの拡張領域を指定している事に起因しているようです。英語環境ならば大して見栄えに影響しないのかも知れませんが、日本語環境だと『弄』とか『屁』とか、なんかやるせない気持ちになってしまいますね。 -- nek-12
- ちなみにオリジナルのcombatmove.espだと、指定コードは『149-158、159-168、169-178』の30文字みたいですので(どうやらそれぞれ役割が違うみたいなんですが、ちょっと理解出来ていないですorz)、これを無理やり標準のASCII領域に指定しなおしてやれば、化け文字は無くなるはずです。たとえば、『48-57、65-74、97-106』へと変更してやると、こんな感じになりました。
参考SS3、参考SS4 -- nek-12
- ただ、なにぶんScriptを理解していない人間が試してみた事なので、これで不具合が生じない保証は全くありません。どなたか詳しい人がいましたら、ぜひアドバイスを頂けると大助かりです。 -- nek-12
- 実際のデータをしっかりとは見ては居ないのですが、おそらく翻訳のコツの文字コードに起因する問題と同じ事が発生しているのでしょう。ASCIIコード表(http://www.shtml.jp/mojibake/ichiran.php )を見る限り意味のあるようには見えません(Script上の値を16進数に変換して表で当たればよいはず)。Latin-1以外の文字コードを想定しているっぽい気がします…が分かりません。nek-12さんの提案された方法だと取り合えず文字化けはなくなりますが、全く意味がなくなってしまうのでは無いでしょうか。
本来はどう表示される事を期待されているのか、それによって対策を考えなくてはいけないようですね。ただ、Scriptのルーチンはいわゆる『ハードコーディング』であるので、意味をなす日本語表示にするにはScript自体に手を入れる必要が出てくる可能性が極めて高いと思います。 -- Irrlicht
- 確かにIrrlichtさんの書かれた通り、上の方法だと本来意図された文字に変換できないのが問題ですね。UI系のModと日本語化Patchを外した状態で、TES4のシステムフォントを表示させてやれば、本来の表示がどんなか分かるのかなぁ? -- nek-12
- Booksのタグの中にも一部文字化けが発生していますね(現在確認したのは『Sharpshooter's Art』末尾のFont Faceタグ)。それからすると『本来意図された文字』は単なる半角英数のような気もしますが、原因と現象をちゃんと確認しないとちょっと怖そうです。 -- あまね
- あと、DIALとBooksに関しては、技名の和訳を併記する方針で行きたいと思いますが、よろしいでしょうか?実際プレイしてみると、トレーナーに話しかけて出てくる選択肢がフル英語だと、どんな意味のあるスキルかすぐには想像出来ませんので…。とりあえずDIALについては仮の訳を追加しておきましたが、中二っぽくてすみませぬ(笑)。もっと適切な技名はあり得ると思うので、アイデアのある方はどんどんセンスの光る技名を追加してやってください。 -- nek-12
- その方がいいと思います。弓術を見ましたがRapid ShotやPiercing Shotなら英語でもまあわかりますが、Ricochet Shotまでくるとそのままでは何のことやら……。 -- あまね
- 詰まったー。Booksの『aaaMoveBluntBatter』を訳してみようと思ったものの、『wasscalled』っていう単語の意味が全然分からない…。 -- nek-12
- 調べてみましたが確かに判りませんね。『was scalled』か『was called』の誤記かとも思いましたが、それでも意味が通りませんし……。いつも助けてもらってるのにお役に立てずすみません。 -- あまね
- 調べて頂いてありがとうございます!自分でももう少し調査してみますね。 -- nek-12
- それはそうと、Bluntの項目を訳していて思ったんですがこのMod、各支部ごとにだいぶ性格付けが出来ていて面白いですね。Brumaだと「酒好きの喧嘩好き」LeyawiinのAkaviri格闘術の人だと「褒めて弟子を伸ばす。礼儀正しい」、Skingradだと「おちゃめ。おどけた感じ」みたいなのが伝わって来ます。Dialogueも手直ししないとなー。 -- nek-12
- SkingradのBookは確かにArgonianの種族的性格がよくでてますね。真面目で思慮深く奥ゆかしいんだけど、時に大真面目な顔でとんでもない皮肉や冗談をしれっと言ってのけるという(苦笑)。 -- あまね
- 技名は思いついた候補をどんどん並べてけば良いのかな、最終的に選考どうするかわからないけど。 -- anonymous
- ありがとうございます。はい、どんどん並べてもらえばOKですよ。最終的な選考は、ここで相談して決めたいと思ってます(本スレでアンケートするのは憚られるので) -- nek-12
- あれからまた、技名接頭辞の文字化け対策をどうしたものかと考え、翻訳そっちのけでaaaaMoveInitialiseScriptを眺めてました。
技名の処理について分かった事を大雑把にまとめますと、
☆技名=教本のアイテム名である。各アイテム名はゲーム開始後にOBSEのSetnameEX機能を用いて一巡でリネーム処理される。
☆教本のアイテム名は、『item.setnameEX "%a%n" character item』という処理で決定される。『%a:character(後述)の数値(10進数)に対応するASCII文字』と『%n:元の名前』の組み合わせである。
☆character(接頭辞に当たるshort変数)の初期値は、通常技:149 弓技:159 リアクション:169 とされる。
☆characterの初期値には各アイテムのアイコンに応じた加算がなされる(OBSEのcompareiconpath機能を利用)。アイコン名が『MoveBladeIcon(剣のアイコン)』だった場合は+3、『MoveShieldIcon(盾のアイコン)』だった場合は+9 といった次第。
例として『M: Maiming Strike』の文字化け過程を追ってみますと、
☆characterの値:『通常技』かつ『MoveBladeIcon』なので、149 + 3 = 『152』
☆itemの元の名前:『M: Maiming Strike』 となる事から
『(152に対応するASCII文字)M: Maiming Strike』という表示がなされるはずですが、実際には上の参考SS1の通り『弄: Maiming Strike』となってしまいます。元の名前に含まれた『M』が消えてしまうわけです。
ちなみに
1.『弄』のSJISコードは『984D(16進数表記)』であり、2進数表記だと1001100001001101。
2.『M』のASCIIコードは77(10進数)であり、2進数表記すると01001101。
3.152(10進数)の2進数表記は10011000。
であり、これらを組み合わせて考えるに、3を前半1byte、2を後半1byteとして割り当てると1に合致する事が確認できます。
つまり、本来ならば(10011000)(01001101)という1byte文字2つで表示されるはずのものが、(1001100001001101)という2byte文字1つで表示されてしまうのが、文字化けの根本原因という事になります。%aによる指定が後段の『M』の部分まで及んでしまっているんですね。もちろん日本語化Patchおよび日本語Modを全て外した状態で試してみると『M』はきちんと表示されました。
思うに、文字化け対策に対して取り得る考え方としては、
A.『本来あるべき表示』を可能な限り再現するべき
B.『本来あるべき表示』にはこだわらないが、その表示が果たす機能は代替的な手段によって満たすべき
C.『本来あるべき表示』にはこだわらない。重要性が高くないのであれば機能にもこだわらない
D.対策は不要
以上AからDの選択肢が有り得ると思うのですが、B・CはともかくAを実現するためのハードルはどうも高そうな印象です。個人的にはBが一番現実的かなあとも思い始めてます。というのも、技名=アイテム名ですので、Scriptによる変則的なリネーム処理が無くとも、Names-Booksの該当部分に『-hoge-M: Maiming Strike』という形で手を加えてやれば、技の種類を区別して整理するという目的だけならば果たせるからです。まあ、SetnameEX周りのScriptは削除・改変しなければなりませんので、イレギュラーに違いは無いんですが…。
以上、長くなってしまいましたが、どなたかご意見・ご指摘等ありましたら是非よろしくお願いします。 -- nek-12