Amazon 初売り

« 北海道では今日が七夕だけど | トップページ | 黄河大恐竜展1 »

2012.08.12

Windowsゲーム「初音ミク冒険記」、フライさんのハマっている問題について

| |コメント (5)|トラックバック (0)

 このエントリーをはてなブックマークに追加

フライさんから
「試練の洞窟 試練の間(入口)」の石碑を調べると
Screenshot0038_2
のように文字化けし、応答なしになってしまいました。
あと音楽が短いループのようになってしまいました。
という問題の対処法について問い合わせがあった。

最初は、オブジェクトファイルのバージョン違いなどが原因で
リビルドすれば直るんじゃないかと思っていたのだが
どうもそうではないらしい。

リビルドしてもうまくいかないとのことだったので
実際にフライさん側で問題になるLuaとBGMファイルを送付してもらった。
すると、かげさんの方ではでは問題なく動いた。

原因は環境周りか?

フライさんの情報によるとかげさんとフライさんでは
DXライブラリのバージョンが違うようだ。

フライさんには、かげさんのところでビルドしたファイルを
送付して確認してもらおうと思っていたのだが
連絡が未だ来ていない。

他の原因だと何があるのだろうか?

改めて、正常動作のハードコピーと問題のハードコピーを見比べてみる。
正常動作はこんな感じだ。
Screenshot0037_2

ん? 文字化けしているのって「構」って文字のところ?

そういえばDXライブラリを使う都合で
Luaスクリプトは、文字コードはSJISで作っている。

SJISには0x5c問題というのがある。

0x5cというのは具体的には「\」記号のことだ。
この「\」記号、プログラミング言語によっては
エスケープシーケンスという特殊な文字として扱われる。

日本語文字の文字と文字との間に出てきているなら影響は
少ないはずだ。

しかし、SJISでは日本語文字は2バイトの文字として扱われ
2バイト目に0x5cが来る文字だと、文字を半分表示したところで
続きが特殊文字として扱われる関係で
文字化けという現象を引き起こす。

SJISの文字コードで2バイト目に0x5cが来る文字には
以下のようなものがある。

― ソ Ы Ⅸ 噂 浬 欺 圭 構 蚕 十 申 曾 箪 貼
能 表 暴 予 禄 兔 喀 媾 彌 拿 杤 歃
濬 畚 秉 綵 臀 藹 觸 軆 鐔 饅 鷭 偆 砡 纊 犾

「構」という文字も該当文字の1つだ。

実はこの文字コードの問題は
Windowsゲーム「初音ミク冒険記」、2012/03/17版公開!
という記事のコメントで少しだけ触れている。

また、SJISには0x5c問題があるので 単純にluaの本家からライブラリを持ってきた場合、 一部の文字が正しく認識されなくて エラーになることも考えられます。 その場合、PSP xviで公開されている 「はるるん」とかを使ったり 0x5c問題の対策をしたluaライブラリを使うと 解消されるでしょう。
というのがそれだ。

古い記事でしかもコメントに書いたことなので
見逃していても仕方がないし
0x5c問題の対策をしたluaライブラリについて
明示しているわけでもない。

対策として、かげさんは
スクリプト言語による効率的ゲーム開発 新訂版 (LuaとC/C++連携プログラミング)
スクリプト言語による効率的ゲーム開発 新訂版 (LuaとC/C++連携プログラミング)
の327ページ、9.7 日本語の扱いにあるように
Lua@空想具現化プログラミングの
lua5_1_3_Win32_mbenc_a3.zipを使っている。

が、今、このサイトはリンク切れになっているようで
上述のファイルは素直にダウンロード出来ない。

そこでGoogleの検索エンジンキャッシュを使う。
具体的には以下のURLを叩いて欲しい。
http://webcache.googleusercontent.com/search?q=cache:n0RwSSw20toJ:hammm.dw.land.to/lua/+SJIS%E5%AF%BE%E5%BF%9CLua&hl=ja&ct=clnk&cd=1

するとそこにlua5_1_3_Win32_mbenc_a3.zipというリンクがあるので
ダウンロードできる。

後はダウンロードしたものの展開先だけど
HatsuneMikuBoukenkiフォルダと同じ階層に
lua5.1が来るようにすればOK。

これで初音ミク冒険記をビルドすれば
文字化けの問題は起きなくなるはずだ。


 このエントリーをはてなブックマークに追加

| |コメント (5)|トラックバック (0)

このエントリーへのリンク

このエントリーのリンクを入れるHTML:

トラックバック

この記事へのトラックバックの一覧です: Windowsゲーム「初音ミク冒険記」、フライさんのハマっている問題について:

コメント

このブログの新着コメントをRSSリーダに登録する為のxml

返信が遅れてしまってすみませんでした。
正常に動作しました。

詳細はSNSの方に書きました。

投稿者: フライ (2012/08/12 22:17:00)

2連続でコメントさせて頂きます。(すみません)
この記事に関係ない内容だと思われる
トラックバックがたくさんある気がします…。

投稿者: フライ (2012/08/12 22:22:59)

To:フライさん
> 正常に動作しました。
>
> 詳細はSNSの方に書きました。

報告ありがとうございます。

動きましたか!

SNSの方も見ました。
やはりLuaが本家でしたか。

次のソース公開の時は、この記事へのリンクも
書くようにします。

> この記事に関係ない内容だと思われる
> トラックバックがたくさんある気がします…。

フライさんのコメントで気づきました。
削除しておきました。
コメントしてくれてありがとうございます。

投稿者: かげさん (2012/08/12 23:49:56)

Luaを再インストールしてビルドしたところ
問題は起こりませんでした。

SJISに問題があるのは初めて知ったので
驚きました。

ありがとうございます。

投稿者: フライ (2012/08/13 16:38:16)

To:フライさん
> Luaを再インストールしてビルドしたところ
> 問題は起こりませんでした。

おぉ! それは良かった![→◇←]

もう少し早くかげさんが気づいていたら
もっと良かったんですけどねぇ。[冷や汗]

> SJISに問題があるのは初めて知ったので
> 驚きました。

他の.NET環境も基本的にUTF-8になっているしVisual C++だと今は標準でUNICODEなので
気づきにくい問題だと思いますよ。[汗]

最初にDXPを使った時は
猫山さんのはるるんを使って
\を\のコードと見なすように
文字コードで\が出てきたら\\に置換する
というやり方にしてました。

実は初音ミク冒険記のLuaは
最初はSJISで作っていたのを
PSPのイントラフォントを使いたくてUTF-8にして
Windows版で再びSJISに戻していたりします。

投稿者: かげさん (2012/08/14 20:01:21)




←名前とメールアドレスは必須です。
URLも記入すれば、URLのみが公開されます。
メールアドレスのみですと、メールアドレスが公開されてしまいますので、御注意ください。

↓コメント本文では、「a href」「b」「i」「br/」「p」「strong」「em」「ul」「ol」「li」「blockquote」「pre」のタグが使えます。絵文字をクリックすると、本文にタグを挿入できます。