MMDAgentをAgentに育てるブログ

MMDAgentを中心にプログラミング関係を書いていきます。

【バージョンアップ】EasyMMDAgentDIcWriter_v1.1.0

まずはじめにEasyMMDAgentDIcWriterをダウンロードしてくれた方にお礼申し上げます。

どれぐらい嬉しいかというとついカウンター導入してしまうぐらい。

何よりまだMMDAgentに興味のある方がいるという事実が嬉しいです。

 

バージョンアップソース

MMDAgent関連 ファイル公開用ページ @Netudendo

 

さて、初コメントの貴重な報告を受け、文字コード周りの修正版をアップしました。

追加したのは2つ

1.インタプリタへの出力文字コード指定用の変数

2.dicファイルの文字コード自動判別

3.(こっそりミスコード修正)

 

主要機能での変更はありませんので前バージョンで問題なく動作している方にはあまり関係ありません。

dicファイル読めなかった時にちゃんとエンターで終了できるぐらいなので気になったらダウンロードしてください。

 

 

改めて修正点説明

 

1.インタプリタへの出力文字コード指定用の変数

今回のバージョンアップのきっかけです。なのに暫定的な対策です・・・。

インタプリタへの出力文字コード指定用変数を追加しました。

ソースの下記部分に表示したい文字コードを入力して保存してください。

 

PRINT_ENCODING = "" #空白で自動対応 指定時は"utf-8"などに変更する

 

実行時にインタプリタの日本語が化けるという報告を受けて調査したのですが残念ながら当方で再現できず・・・。一応python3は文字コードを自動で環境に合わせるはずなんだけどなぁ。ここらへんは正直知識不足です。

とにかく環境に依存する話だと思うので明示的に指定できる形にしました。

下記リンクに文字コードリストがありますので環境に合わせてお試しください。

7.8. codecs — codec レジストリと基底クラス — Python 2.7.x ドキュメント

 

 

2.dicファイルの文字コード自動判別

文字コード周りの調査中にふと思ったのが案の定。dicファイル書き出し時に文字コードを指定していなかったのでdicファイルの文字コードによっては文字化けを起こす不具合が判明したので修正しました。

shift-JIS、EUC-JP、utf-8utf-16対応です。設定としてはiso2022やutf-7も対応してたりするんですが未検証・・・。動いたらラッキーぐらい。まあこのあたりはメモ帳すら対応してないので気にする必要はないかな。

utf-16エンディアンは対応したので許して欲しい。こいつのためだけにバイトまで確認するハメになってしまった。

まあでも普通shift-jisかutf-8だよね・・・保険てことで。