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
ttp://soudan1.biglobe.ne.jp/qa1407945.htmlこのあたりを見るとwhat'sのスラングではないかと予想されるのですが自分も確証がないのでなんとも。 -- elgab
『scalled』には『汚れた』という意味もあるようなので、『what's scalled』のスラングだとするなら超意訳するなら『血と泥ン中這いまわらしてやれ』みたいな大意になりそうな気はしますね。 -- あまね
おふたりとも有難うございます。wass=what'sという扱いで仮に翻訳してみましょう。 -- nek-12
wasscalledをwhat is called(いわゆる)として試訳してみました。bent out of shape(ふらふら)になるまで(in the wasscalled)、poking you(あなたはつつくor叩く)、という感じです。 -- 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
各国の8ビット文字の8ビット領域は様々有るので作者さんの環境でどう表示されるかは彼の環境を知らねば分かりません(参考:WikiPedia.ja:ISO/IEC 8859 )。7ビット文字の範囲はほぼ共通しているのですが(いわゆるASCII文字)。 二つの文字が一つの文字と解釈されてしまうのは日本語パッチが原因ですが、これは日本語パッチでは対処できない問題でしょう。『複数の文字コードが混在したデータ』を処理する事はとても厄介な事ですし、そこまで対応する意味が有りません。寧ろ人間の目で見てもどうすべきか判断できないものをプログラムにやらせるなんて、無利です。…ぶっちゃけた話、なぜそのようなScriptコードにしているのか理解できなかったりします(勿論悪意を持って言っているのでは有りません)。『MoveBladeIcon』なら例えば『MBI』みたいな接頭語をつけるだけでいいジャンと思うのですが。プログラムのコードは言語の壁が無いものなのですが(英語が分からなくてもアメリカ人プログラマに書いてもらったコードは日本人プログラマでも読める、というようなこと)、このコードは余りに意図が読めないのです。どういう意図なのだろう。Scriptのサイズ制限を回避する為に技巧に走りすぎた結果なのでしょうか*1 。 このWikiの活動は人的資源の不足を踏まえると、完璧な対応よりも『まずプレイに問題が無い』ことを優先するだけで十分だと思います。故に、結論はnek-12さんと同じく、それでプレイに問題が起こらないのであれば文字化け上等のDで良いと思います。 -- Irrlicht
お?管理復帰ですか?>Irrlichtさん 違ってたらごめんなさいです。文字化け対策の件、確かにおっしゃる通りですね。それに、配布前提で考えれば下手にプログラム改変しない方が賢明のような気もし始めています。スーパーscripterさんが降臨でもされない限りはとりあえず放置の方向としておきましょうか。。。 -- nek-12
回線は光満喫中なのですが、現実世界のほうの変化でちょっと管理は手抜き中です。 Scriptは普通に読めるのですが、ObとかのScript見直しはやりたくないのですね*2 。 -- Irrlicht
まあこれも趣味の範疇ですから、現実最優先でゆっくり戻って来てくださいなー。こちらももうすぐ一通りの訳が終わりますので、そろそろ技名の確定とゲームを立ち上げつつのDialogue修正に入る事にします。今週末くらいにはベータ版出せそうかな? -- nek-12
Win7RCがMSからダウンロードできるので英語版を入れて試してみました。http://modl10n.oblivion.z49.org/?plugin=attach&pcmd=open&file=ScreenShot0.jpg&refer=Forum%2F31 これを見る限りだと表示自体はされないみたいですね。未定義文字の使用はおそらくインベントリ欄のソートのための苦肉の策なのではと推測します。なので個人的にはCまで出来れば十分であると思います。 -- elgab
m9(・∀・)ソレダ!! 英語環境で普通にOblivionをプレイする分には該当コードにフォントの割当が無いみたいなので、接頭辞は問題にならないって事のようですね。検証お疲れ様でした。感謝です。 -- nek-12
技名募集の件ですが、Patchリリース間近なので5/15(金)迄で一旦打ち切りたいと思います。これまで協力頂いた2ちゃんねる有志の方々、ありがとうございます。 -- nek-12
技名を整理してみました。無理に日本語表記するとかえって不自然になりそうな部分はカタカナ表記に、他は技の効果がより分かりやすいものをなるべく選んで採用したつもりです。『ここはこうしたい!』というのがあればこちらにご意見ください。本日一杯まで待って、特に意見がないようであればBooksへ反映し、Patch作成します。あと今回のPatchは文字化けについて特に措置を講じません。自己責任で試す分にはここのログを見ればある程度分かると思うので、一応Readmeにはその旨書いておこうとは思っています。 -- nek-12
以下、文字化け対策に関するチラシ裏です。Scriptの大枠は変更しないまま、いかなる場合でもcharacterの値が「0」となるようにし(改変Script例) aaaaMoveInitialiseScript(改変).zip 、Names-Booksで、各技本の頭に適当な文字を追加すると、こんな感じ になります。(この場合は短剣符を頭に設定)。頭の文字を工夫すれば、技を系統ごとに更に分類する事も可能でしょう。ま、あまり推奨できる方法ではありませんけれどもね。それと、添付ファイル増やし過ぎてごめんなさい>Irrlichtさん -- nek-12
技巧に走る余りコードが読みにくくなるプログラムを連想しました
Perlとかなら書いてすぐ実行できるし、デバッグも容易で仕様もきっちり決まっているのに対し、Obのは仕様も厳密じゃないので試行錯誤が必要でデバッグするにもゲームを起動とか必要で手を出すのが億劫だったり