Windows 8でArcheAgeをプレイする

Windows 8のPC2台で比較検証すると異なる結果になり、気がかりな点があったために詳細を調査しました。

この2台のPCの差異は、次の6箇所です。
 

  正常なPC 問題のPC
OS Windows 8 64bit Windows 8 pro with media center 64bit
マザーボード P8H77-V P8Z77-M PRO
ストレージ SSD STAT6.0G HDD SATA3.0G
メモリ DDR3 8GB DDR3 16GB
ArcheAge導入時期 CBT 正式サービス後
OSセットアップ時のアカウント ローカルユーザ(半角英数文字列) Microsoftアカウント(全角文字列)

Vista PCと同じく画面表示が停止したり遅くなってしてしまうのが問題のPCです。

詳細な部分で異なるといえば、問題のPCでは、Hyper-V機能を有効にしていたことがある、NICが2枚使用可能、地デジチューナを搭載しそれに関するアプリケーションを導入している、そして、Microsoftアカウントでログインし同期したことがあることがあげられます。
 

症状1.オープニングムービーが毎回再生される

「世界が生まれた場所に到達した日、すべてが始まった。扉が開かれ、私たちは庭園に足を踏み入れた。そして、私たちは分裂した。」
が表示されたあとに、そのシーンのムービーが再生されます。

正常なPCでは、インストール後の初回のみ再生されただけで、それ以降は再生されませんでした。
問題のPCでは、毎回再生されてしまいます。
「ESC」を押せばムービーの再生は中断されるので直接的な影響はありませんが、次の症状2と関係して気になる点です。
 

症状2.system.cfgが作成されない

ArcheAgeはユーザ用設定ファイルを「C:\Users\【ログインユーザ名】\Documents\ArcheAge」以下のフォルダに作成します。

正常なPCのsystem.cfgには、次の内容が記述されていました。

-- [SYSTEM CONFIGURATION]
-- WARNING! THIS FILE IS GENERATED BY THE SYSTEM! EDITING IS NOT RECOMMENDED!

sys_spec_full = 1
r_driver = "DX10"
r_multithreaded = 0
r_windowx = 229
r_windowy = 60
r_width = 1440
r_height = 900
r_fullscreen = 0
r_vsync = 0
login_first_movie = 1
ucc_ver = 1
auto_disconnect_timer = 30

ファイルの1行目と2行目より、system.cfgはArcheAgeにより生成されるファイルであることがわかります。
変数名から起動時のゲーム画面の設定(環境設定の画面の項目)と一致するように思います
さらにlogin_first_movieという変数があります。
初回にsystem.cfgが作成され、次回以降はこのファイルを参照してムービーを再生するかを判定していると考えられます。
よって、このファイルが作成されれば、症状1は改善されるだろうと思われます。

しかし、問題のPCでは、このsystem.cfgが作成されません。

公式サイトにある「アップデートパッチのダウンロードが完了しないお客様へ」の手順のなかに、「インストールを行う際には半角英数を使用したフォルダを指定して頂きますよう、お願いします」とあります。
Windows2000くらい以前は、全角文字や半角スペース文字がパス名に含まれていると正常な動作をしないプログラムが多くありました。
そのため、Windowsログインアカウント名には半角英数字のみを使うように徹底されていた職場も多かったと思います。
その理由は、プログラムで使用している関数やライブラリがマルチバイト文字に対応していない場合や変数に半角スペースなど特別な意味のある記号が含まれているとうまくプログラムが動作しない場合などがあるためです。
開発時にその変数にはどういった文字列が代入されるかを想定しているでしょうが、想定外であったということです。
これは、時代が進んでもWindowsにしろLinuxにしろ互換性の保持のため過去の資産を再利用できるようにしているため、対応していない関数やライブラリを使用していれば問題が発生します。

WOW64によって32bitアプリケーションを動作させれるようにした(互換性保持)ため、Windows64bitOSであっても、32bitアドレッシングの制限を受けるのと似ています。
 

Microsoftアカウント

Windows8はWIndowsフォンを意識したGUIでかつWindowsフォンとの同期のため、SkyDriveを利用したりできます。
また、iPhoneのAppleストアやAndoroidのGoogleストアようにWindows 8でもアプリがダウンロードできるようにMicrosoftストアがあります。
※有償アプリや課金サービス使用料などのオンライン請求の際にMicrosoftアカウント(旧:Windows Live ID)が必要になります。
Micorsoftアカウントを利用すれば、同じアカウントを関連付けているPC間での個人フォルダの同期が可能になります。

Windows 8 PCにログインする方法は、ローカルアカウント(従来のログインユーザ)とMicrosoftアカウント(PCとMicrosoftアカウントの関連付け)の2通りがあります。
このMicrosoftアカウントでOSをセットアップすると、ユーザフォルダ(C:\Users)以下の通常ログインユーザ名の箇所は、Microsoftアカウントの表示名の設定文字列が使われます。
また、マイクロソフトはWindows 8のセットアップにおいて、ログインユーザの設定でローカルアカウントではなくMicrosoftアカウントをデフォルトにしていることからもMicrosoftアカウントを推奨しているようです。
新規ユーザの追加時にもMicrosoftアカウントの追加画面が最初に表示されます。

Microsoftアカウントを利用していると、ローカルPCのユーザフォルダ名がどのようになるのかをいくつか例をあげてみます。
※ローカルアカウント名が「worker」
※Microsoftアカウントの表示名の姓が「山田」、名が「太郎」であった場合。

※OSセットアップ時にローカルアカウントを登録し、その後、Microsoftアカウントで関連付ければローカルアカウントと同じ名称のユーザフォルダになるようです。
※Micosoftアカウントを使用した場合、表示名の姓のほうが使用されるという記載もみかけますが、私の環境では名のほうになりました。
※Windows8のプレビュー版、リリース版などでも動作がことなるようですし、修正プログラムの適用状況によってもかわるのかもしれません。
OSセットアップ時Microsoftアカウントを使用 C:\Users\太郎
OSセットアップ後にローカルアカウントに変更
(現在)
C:\USers\太郎
※C:\Users\workerは存在しているがAppDataに少しファイルがのこっているのみ
※ファイルブラウザーからデスクトップを選択するとworkerフォルダーが表示される。
※wokerのドキュメントにアクセスするとworker\documentsと表示されるがディレクトリは存在しない
Microsoftアカウントの表示名を姓名それぞれ「Yamada」「Taro」に変更し
Microsoftアカウントに関連付け
C:\Users\Yamada Taro
※姓と名が半角スペースで連結される

現在、問題が発生しているPCは、MicrosoftアカウントでOSセットアップをしたPCであり、正常なPCと異なる点です。
 

ユーザーフォルダのパス名問題か?

sysconfig.cfgを作成するときに指定されるパス名が全角文字を含むパス名であるため、正常に生成できていないのではないかと考えられます。
ユーザフォルダー名を修正するには、レジストリを操作しないといけなくなるようですのでそう簡単ではありません。
仮に表面的に修正できたとしても、いろいろ内部リンクがあるようなのでそれらもうまく動作するのかが不安なため手をつけられない状況です。
確実なのは、OSの再インストールです。
 

症状3.DirectX9が選択される

ArcheAgeの環境設定の画面設定の項目には「画面」と「クオリティ」の2項目あります。
このうち、「画面」を選択すると以下のような設定項目が表示されます。(※画像はVistaの場合)


Vista PCは、グラフィックカードがDirectX11未対応なのでDirectX9が選択されるのは正常です。
しかし、Windows 8のほうは、すべてDirectX11対応なのでDirectX11が選択されるべきだと思うのですがDirectX9が選択されます。

オープニングムービーを再生することでグラフィックに関する環境設定が推奨設定にセットアップされるのであれば、誤ったセットアップをされていることになります。

この設定画面では、PCが対応していない設定項目は選択することができないようになっています。
Vistaの場合、CPUは2コアでレンダースレッドの条件を満たさないので選択不可ですし、DirectX11も選択不可です。
一方、問題のPCでは、レンダースレッドやDirectX11が選択可能です。
このことから、ArcheAgeはDrectX11対応であると認識していることになりますが、推奨設定でなぜDirectX9が選択されるのかが疑問です。
また、手動でDirectX11を選択して適用しても、何の反応もありません。
通常、グラフィック関係の変更を適用すると画面表示にすぐに反映されます。
このことからDirectX11の選択がArcheAgeに正しく伝達されていないのかと思われます。

この環境設定の変更をすると、ユーザ設定ファイルのタイムスタンプが更新されますので、設定ファイルへ保存は正常におこなわれているようです。

 

症状4.テクスチャーが異常

問題のPCでは、DirectX9が選択されていますが、手動でDirectX11にしても設定が反映されていないのか変化はなく、正常なPCでDirectX9を選択した場合と同じくテクスチャーが異常で草木や建物などが黒一色で表示されています。
さらに、この状態では非常に重くなります。

このテクスチャーが異常な状態の対処方法は、公式サイトのFAQによると以下のファイルを一旦削除すれば改善するようです。

【保存場所】
   C:\Users\ユーザーアカウント名\Documents\ArcheAge\USER\shaders
   C:\Users\ユーザーアカウント名\Documents\ArcheAge\USER\UCC

ためしで削除してみましたが、改善しませんでした。

C:\Users\ユーザーアカウント名\Documents\ArcheAge\USER\shadersフォルダ内に「chache\d3d9」しか存在していません。
「d3d9」の示すのはDirectX3D9です。
DirectX3D11であれば「d3d11」になります。
正常なPCでは「d3d9」と「d3d11」の2つがあります。
環境設定でDirectX9を選択したこともあるので「d3d9」が作成されたのかもしれません。

このテクスチャーが異常な状態は、正常なPCを参考にすれば環境設定でDirectX11にすれば改善しそうです。
しかし、症状3で書いたように問題のPCではDirectXの変更が反映されていない様子です。

以上から、症状1と症状2はパス名の問題、症状3と症状4はグラフィック関連の問題だと推測されます。
 

想定原因1.パス名問題

system.cfgを正常PCからコピーして試してみましたが、そもそもこのファイルに関連する動作において、ユーザ設定ファイルにアクセスできないのかsystem.cfg自体を参照していないようです。

パス名に全角文字が含まれている状態を回避したい場合、恒久的な対処はOSの再インストール、暫定的な対処はローカルアカウントを新規作成する選択肢になります。

再インストールする場合は、OSセットアップではローカルアカウントを作成し、セットアップ後にMicrosoftアカウントに関連付けすれば今回のようなことは発生しません。
Microsoftアカウントに関連付けしたあともOSセットアップ時に作成したローカルアカウント名のユーザフォルダを利用します。
もちろん、作成するローカルアカウントの名称は半角英数字でスペースを含まない文字列で作成するべきです。

また、不具合対応状況に「環境設定 > キーボード操作設定 内の設定を変更しても保存されない。」の記載内容が更新されました。
「キャラクター名」にも一部文字が含まれていると動作不良が発生するようですので、その点も注意が必要になります。
ここで、なぜキャラクタ名が影響するのかというと、ArcheAgeのユーザ設定フォルダ内の階層を確認すればすぐにわかると思います。
「ArcheAge\USER\Data\account\【サーバ名】」以下が「キャラクタ名」でフォルダが作成されるためです。
このフォルダは、キャラクタごとの設定を保持するためのフォルダです。
ここに保存される設定情報は、別PCでプレイすると再設定が必要になる設定であるともいえます。
これはArcheAgeに限らず、他のゲームタイトルでも同じ仕組みです。

このことから、ますます、ArcheAgeプログラム内部で扱われるパス名の問題がいろいろな場面で影響していることが推測されます。
フォルダ名、ファイル名やパス名の文字数制限や使用可能文字は、OSにも制限がありますし、使用するアプリケーションでもあります。
それら制限が緩いと習慣で忘れられがちですが、制限は存在します。
そしてその制限を越えたケースで問題が発生します。
少し前では32bitOSの4GBメモリ制限がそうですし、最近ではMBRの2TB制限もそうです。
制限が個別に存在する場合は事前に明記するのが作法だと思いますし、キャラ作成時やクライアントプログラムインストール時にチェックするのが親切だと思いますが、ArcheAgeはそうではなかったということでしょう。

原因がパス名の問題なのかは現時点では確証はありませんが、試してみないと先にすすめません。
地デジ録画PCであるためOS再インストールはリスクが高いと判断し、とりあえず新しいローカルアカウントを作成してそのアカウントでArcheAgeの動作テストをすることにしました。
 

新規OSアカウントを作成して動作確認

Windows8 PROで新規ローカルアカウントを「user」で作成しました。
このアカウントは管理者権限を付与してあります。

ArcheAgeにログインして「Game Start」をクリックすると、共通プログラムのインストールを促されます。
すでにあるのにまたインストールしないとだめなようで、ためしでインストールすると次にArcheAgeもインストールしようとします。
ようするにArcheAgeを最初からインストールしないといけない状態になってしまいました。

もし、OS上のファイルアクセス権だけの問題であるなら、既存フォルダーを上書きできているのでそれは考えられません。
OSのユーザ切り替えには対応していないということなのか・・・

インストールを一旦中断して、もとのユーザで試すとさっきの続きになってしまって、どうやら最初からセットアップしないといけなくなりました。

ここで、新規OSアカウントでの試行は断念しました。
オープニングムービーが毎回再生されるのは、「ESC」で中断できるので弊害ではないし、そもそもこのPCでArcheAgeをプレイするわけではないのでパス名問題はあきらめました。

このパス名問題に関しては、OSのユーザフォルダ名とArcheAgeのキャラクタ名が影響するわけですが、Windows8のユーザフォルダ名では、OSセットアップ時にMicrosoftアカウントを使用するのであればMicrosoftアカウントの表示名を半角英数字にしておかなくてはなりません。全角文字であった場合、最悪OSの再インストールとなってしまうだけに注意が必要です。

 

想定原因2.グラフィック関連問題

問題がグラフィック関連なので、以下を再確認しました。
 

グラフィックドライバーのバージョン確認


CPU内蔵グラフィックなのでついでにIntelチップセットについても確認しておきました。
Windows8の拡張域を使うためいろいろいれなかったドライバなどがあるのでそれらも精査して導入してみました。
 

DirectX のバージョン確認

「dxdiag」コマンドを実行します。

結果は特に問題はありませんでした。
※32bitと64bitとがあります。
※WHQL認証ロゴ付きが安心ですが、64bitOSの場合は64bit dxdiagの表示画面で確認できます。32bit dxdiagではロゴなしになります。

グラフィックドライバーバージョンは正常なPCと全く同じでしたが、問題のPCは地デジ関連でグラフィック設定をいろいろカスタマイズしていました。
それら設定をデフォルトに戻すため、現在のグラフィックドライバーを一旦アンインストールすることにしました。
 

グラフィックドライバソフトウェアの再インストール

現在使用しているグラフィックドライバーは、どちらのPCも同じバージョンです。
ただ、問題のPCは50inchTVに接続しているため、グラフィック設定を少しカスタマイズしました。
一般的に3Dグラフィックの描画設定はグラフィックドライバのユーティリティ設定を使うのかアプリケーション個別設定を使うのかになります。
ArcheAgeは環境設定にグラフィック設定がありますので、ドライバーの設定ではアプリケーション個別設定にするのが妥当です。

グラフィックドライバーをインストールするとグラフィック専用コントロールパネルが追加されると思います。
私が使用しているグラフィックチップの場合は「Intel HD グラフィックコントロールパネル」です。
※NVIDIAの場合は「NVIDIAコントロールパネル」です。AMDは使ったことがないのでわかりません。

このコントロールパネルは、OS標準のコントロールパネル(画面の設定)に比べて機能拡張されており、グラフィックに関するさらに詳細な設定が可能です。
問題のPCはこの詳細設定にて個別設定をしていたので、その設定をデフォルトに戻すことを目的に一旦アンインストールすることにしました。

アンインストールするとWindows8 インストールメディアに付属のIntel HD グラフィックドライバがアクティブになりました。

とりあえず、この状態でArcheAgeを起動してみると、テクスチャー異常は改善しました。
環境設定の画面設定でDirectX9とDirectX11のどちらでも問題なく表示されました。

改善したのでこのままでもよかったのですが、Intelのサイトを確認して、最新のドライバーをインストールしました。
最新のドライバーでも正常に表示されました。

テクスチャー異常は、「Intel HD グラフィックコントロールパネル」の設定の影響かもしくはドライバソフトの一部ファイルが破損していた可能が考えられます。

これで、テクスチャー異常の問題は改善されました。それと同時に重い状態も改善しました。
Windows 8で重かったのはテクスチャー異常のためだったようです。

グラフィック問題に関して、そもそもArcheAgeではオンボードグラフィックはサポート対象外を謳っていますので、これが解決だけただけでもよしとしておきます。
 

まとめ

パス名問題の対策としては、以下の2点です。
1.Windows Vista/7/8 に関係なく、OSのローカルカウント名は半角英数字を使用する。
2.Windows8の場合は、Microsoftアカウントの表示名を半角英数字を使用する。

グラフィック問題については、これからグラフィックボードを購入するのであれば推奨グラフィックボード以上の性能の製品の購入し、万が一問題が発生したらサポートにレポートを送信して対応してもらうしかないと思います。
(※オンボードグラフィックはサポート対象外ですので自己解決するしかありません)
 

ラグ(動作遅延)に関する公式情報

ラグといっても症状は様々ですので、すべてのラグがこれで改善するとは限りませんが、「ゲームプレイ時にラグ(動作遅延)が発生する件について」がアナウンスされました。
私の場合、これに記載の条件にあてはまるのが、Vista PCになります。
試しにクライアントをアンインストールしてから再度インストールしました。

あいかわらずハードフォールトは多発していますが、以前のように全く操作ができないような事象は発生しなくなりました。
※OSによってメモリマネージャがことなるためなのかWindows8はハードフォールトがほとんど発生していません。

ただ、再インストール以外にもRaid構成を変更したりなど対処しているので、これが原因だったとはいいきれません。
条件にあてはまりラグが気になるかたは一度試してみる価値があるかもですが、非常に時間がかかる作業なので時間の余裕があるときに実施するのがお勧めです。