気まま研究所ブログ

ITとバイク、思ったことをてきとーに書きます。

マビノギをVMware Workstation Playerで複数起動する

f:id:AonaSuzutsuki:20200731133646p:plain

もうだいぶと今更な内容ですが、最近初めてやるというプレイヤーも結構おられるようで、2020年現在私が運用している方法を載せておきます。
仕組み上は別のPCでプレイしているのと同等なので、プログラム改造して同時起動するといった不正改造には当たりません。
とはいえ、どのように解釈されるかはわからないのでもしアカウント凍結などされても一切責任は負わないんでよろしくお願いします。

検証環境

項目 内容
CPU *1 Intel Core i7-10700K
GPU GeForce GTX 1070 ARMOR 8G OC
MEM *2 DDR4-2666 32GB
OS *3 Windows 10 Pro x64
ハイパースレッディング 有効
Workstation VMware Workstation 15.5
Hyper-V なし

*1 CPUは少なくとも4コア以上を推奨します。
また、後にも述べますがVT-xあるいはAMD-VをサポートするCPUが必要です。
ホスト システムのプロセッサ要件

*2 メモリは少なくとも16GB以上は必要です。
Workstationでは4GB以上とされていますが、マビノギをホストとゲストで動かす都合上確実に8GB以上は最低限必要です。
余裕を持たせる意味合いで16GB以上は必須と言えるでしょう。
ホスト システムのメモリ要件

*3 32bit Windowsがホストの場合は無理です、諦めてください。

事前準備

Virtualization Technologyの確認

仮想マシンを動かすには仮想化支援、IntelではIntel Virtualization Technology(Intel VT特にVT-x)が有効になっている必要があります
32bit OSをゲストとして動かす場合や、マルチコアCPUの機能を使わなければ不要らしいけど、32bit OSは4GBまでの制限の都合上厳しいし、そもそもマルチコア使えないとマビノギはまともに動かないのでどちらにせよ有効化する必要があります。

AMDはAMD Virtualization(AMD-V)というらしい。
多分こっちも同じくBIOSから確認・変更できると思います。

このVTが現在実行中のシステムで有効になっているかどうかはWindows 10ではタスクマネージャーから見ることができます

f:id:AonaSuzutsuki:20200731125757p:plain

CPUのページにて仮想化の欄が「有効」となっていればOKです。
もし「無効」となっている場合は有効化する必要がありますのでBIOSから有効化します。
非対応なCPUだと「非対応」と表記されるよう(Windows 10対応:タスクマネージャの「パフォーマンス」タブの見方:Tech TIPS - @IT)で、その場合はVTなしで動くように頑張るか潔く諦めましょう。

Virtualization Technologyの有効化

有効化するにはBIOSにアクセスできる環境でかつ有効化できるBIOSである必要があります
自作やBTOであればほぼ確実にできますが、メーカー製やMacBookのBootcampなどの場合は有効化できない場合がありますのでご注意ください。
ちなみにBootcampはBIOSがなく、有効化になる条件がめんどくさかった記憶があります。

コンピュータを再起動し、BIOSに入るキー(大体F2かDELだと思う)を連打します。
もしくは、トラブルシューティングからも入れるのでキー連打で入れない場合はそちらも(Windows 10でBIOS/UEFIセットアップ画面を確実に開く方法:Tech TIPS - @IT)

ここからはマザーボードによって変わるので参考例と思っていただきたいのですが、ASUS Z490 TUF GAMING PLUSでは以下のように設定できます。

BIOSが開くと「Advanced Mode」に入ります。 f:id:AonaSuzutsuki:20200731131652j:plain

詳細」のタブを開き、「CPU設定」を開きます。
f:id:AonaSuzutsuki:20200731131710j:plain

Intel Virtualization Technology」を「Enable」に変更します。
f:id:AonaSuzutsuki:20200731131729j:plain

あとは設定を保存し、リセットします。 再起動するのでタスクマネージャー上で仮想化が「有効」になっていればOK。
f:id:AonaSuzutsuki:20200731131746p:plain

OSの準備

OSはマビノギが動けばなんでもいいですが、一応簡単に手に入るものとしてWindows 10 Enterpriseの評価版を紹介します。
なお、Windows Serverの場合は2008 R2で動かなかったのでどのバージョンでも多分簡単には動かないと思います。

評価版として90日間、更にリセットを行うことで最大270日(90日 x 3)使えるのでライセンス買いたく無い場合はこれを再インストール繰り返す形で使えば問題ないかな。

Microsoft Evaluation Center で Windows 10 Enterprise を試す

一応Windows 10とWindows 8.1のインストールメディア(ISO形式)はMicrosoftから手に入るのでそれ使うのもあり。
本来はリカバリー用故に、こういう用途だとライセンス絡みの問題もあるのでリンクは貼らないですが、ググったらすぐ出てくるので自己責任で探してみてください。

また、仮想マシンといえど一台のPCと同じ扱いなので通常のWindowsを使用するには別途ライセンスが必要です
将来的に再インストールなどにより仮想マシンを作成し直した場合にはまた別のPCと判断されるため、DSP版の場合は注意してください。

VMware Workstation Playerのインストール

本題のVMware Workstation Player(以下Workstation)をインストールしておきましょう。

VMware Workstation Player のダウンロード | VMware | JP

評価版という扱いになっていますが、商用以外の個人利用であれば無償で期限なく使用できるのでWindowsみたいに入れ直す必要はなし。
Workstation Proほどの潤沢な機能は使えないけどね。

仮想マシンの作成

仮想マシンの作成

仮想マシンを作成するにはWorkstationを起動して「新規仮想マシンの作成」をクリックします。
f:id:AonaSuzutsuki:20200731131952p:plain

するとウィザードが開き、インストール元の選択が出るため「後でOSをインストール」を選びます。
ちなみに、ここでメディアを選んで進むといろいろと自動で設定されるので後でOSをインストールを選ぶことを強くオススメします。
f:id:AonaSuzutsuki:20200731132030p:plain

次にインストールするOSを選択します。
今回はWindows 10 Enterprise x64なのでWindows 10 x64を選択します。
f:id:AonaSuzutsuki:20200731132044p:plain

保存先と名称は任意で。
SSDの場合はI/Oが高速ですが、OSとゲームを書き込む都合上書き込み量が30-40GBとなるため、注意が必要です。
私は7200RPMのゲーム用HDDに入れてやってますが、HDDでも重いだとかはそんなに気にならないかな。
なお、HDDの場合はシステムと同じディスクに入れるとホスト側のシステムが不安定になるので別のディスクに入れることを推奨します
要するにCドライブがHDDなら別の場所に入れた方が良い。

また、場所で指定したディレクトリに、仮想マシン名で新しいディレクトリが生成されてその中に仮想マシンのファイルが生成されるわけじゃないので、ディレクトリ分けしたい場合はしっかりと最後のディレクトリ名も入力しましょう。
これ忘れるとファイルがとっ散らかって大変なことになります・・・。
f:id:AonaSuzutsuki:20200731132108p:plain

ディスク容量は60GBあれば大丈夫です。
そこからもりもり違うアプリ入れるとかいうのであれば別ですが、マビノギのみであれば十分耐えられます。
足りなければあとから拡張もできます。
仮想ディスクの保存形式は「仮想ディスクを単一のファイルとして格納」を選びます。
なお、スクショは諸事情で40GBだけど、余裕で足りなかった!!
f:id:AonaSuzutsuki:20200731132205p:plain

また、仮想HDDは設定値が60GBとはいえ作成段階から60GB消費するのではなく、可変式なので使った分だけファイルサイズが大ききなります。
後でOSをインストールを選んでなかったら固定長で作られます。

あとは完了すると仮想マシンが作成されます。

仮想マシンの設定

仮想マシンを設定するには、当該仮想マシンをクリックし、「仮想マシン設定の編集」をクリックします。
なお、ホストやゲストというワードがたびたび出てくると思いますが、ホストとは今目の前で動いているOS及びマシンのことで、ゲストはWorkstationで動かすOS及びマシンのことです。
f:id:AonaSuzutsuki:20200731132332p:plain

メモリ割り当て

f:id:AonaSuzutsuki:20200731132422p:plain

まずは重要なメモリ割り当て容量です。
ゲストOSがどれかにもよりますが、Windows 10 x64であればシステムだけで1GB超えることがあります。
マビノギだけで最大2.2GBくらいまでいきますから少なくとも4GBは必要でしょう。

戦闘などに駆り出すのであれば、4GBだとメモリ不足アラートでまくる可能性があるので6GB以上は欲しいかな。
Windows 10だとメモリ圧縮動くから4GBあればもしかすると十分かもしれないけど。
どちらにせよ多ければ多いほうがいいので、メモリの空き容量と相談して決めましょう。

なお、単位がMBなので6GBなどの中途半端な数字にする場合は1GB = 1024MBで計算しましょう。

CPUの割り当て

f:id:AonaSuzutsuki:20200731132512p:plain

次に一番大事なCPUの割り当てを決定します。
なお、ここでは仮想CPUの1コアをvCPUと表記しています。
vCPUと表記されている場合はWorkstationのコア数と思ってください。

CPUの割り当ては物理的なCPUのスレッドに依存しますが、最低でも2vCPUは欲しいところ。
理由としてはマビノギ本体で1スレッド、BlackCipherで1スレッド使うため、安定した動作を望むなら2vCPUは必須です。
そもそも現代のOSはマルチスレッド前提なので1vCPUだとまともに動かないのでどちらにせよ2vCPUは必要になるかと。
とりあえず2vCPUから始めて、パフォーマンスが悪ければ徐々に増やしていくと良いでしょう。
10700KではHTTオンで16スレッドあるので4vCPU割り当てで割と快適に動いてます。

なお、仮想化エンジンの項目は全て無効で問題ないです。

マウスモードの変更

Win + Rを同時に押し、出てきたウィンドウに「%AppData%\VMware」と入力しエンターを押すとエクスプローラが起動します。
そこにある「preferences.ini」をメモ帳でもいいので開きます。
開けたら、ずらっと書いてある中以下の項目を末尾に追記します。

pref.gamingMouseMode = "relativeMouse"

これでホストマシンとゲストマシン間でマウス入力が独立した状態となるため、設定し忘れでよくある視点変更すると高速にグルグル回る現象がなくなります。
ただし、ゲストマシンから出るには「Ctrl + Alt」を押下する必要があるので注意してください。

仮想マシンの実行

OSのインストール

ここまで設定できたら、早速ゲストマシンを立ち上げていきます。
起動したい「仮想マシンをダブルクリック」するか、「仮想マシンの再生をクリック」します。
f:id:AonaSuzutsuki:20200731132614p:plain

するとしばらくすると「Press any key to boot from CD or DVD...」と出てくるので、画面をクリックしてアクティブにしてからSとか何でもいいのでキーを押します
間に合わなかったらエラー画面が出るので一時停止ボタンの右にある▽を押して再起動して再チャレンジ。
f:id:AonaSuzutsuki:20200731132629p:plain

項目は変更が必要なら適当に変更して「次へ」を押します。
f:id:AonaSuzutsuki:20200731132645p:plain

「今すぐインストール」をクリック。
f:id:AonaSuzutsuki:20200731132706p:plain

カスタム: Windowsのみをインストールする」をクリック。
f:id:AonaSuzutsuki:20200731132720p:plain

ドライブは設定次第ですが、一つならドライブ0を選択して「次へ」をクリックします。
次へがグレーアウトしている場合は「新規」よりパーティションを作成するとうまくいくかも。
f:id:AonaSuzutsuki:20200731132738p:plain

インストールが始まるのであとは放っておくと勝手にインストールが終わってユーザプロファイルの設定画面が表示されます。
f:id:AonaSuzutsuki:20200731132754p:plain

プロファイルの設定

プロファイルのセットアップは特に難しいことはないので書いてある通りに進めていきますが、途中Microsoftアカウントでのサインインが表示されます。
ログインしないといけないように見えますが、左下にある 「代わりにドメインに参加する」をクリックするとローカルアカウントの作成が可能です。
f:id:AonaSuzutsuki:20200731132817p:plain

Enterprise版なのでドメインとかいう表記になっていますが、その実はローカルアカウントのことです。
Proでは「オフラインアカウント」となっています。
f:id:AonaSuzutsuki:20200731132832p:plain

ドライバーのインストール

デスクトップが表示されると、左上の「Player」をクリックし、「管理」より「VMware Toolsのインストール」をクリックします。
f:id:AonaSuzutsuki:20200731133547p:plain

するとDVDドライブにVMware Toolsがマウントされるので、左下に出てくる通知をクリックします。
もし通知を逃した場合はDVDなのでファイルエクスプローラからPCを選択すればVMware Toolsがあるのでダブルクリックしましょう。
f:id:AonaSuzutsuki:20200731133559p:plain

setup64.exeの実行」をクリックします。
f:id:AonaSuzutsuki:20200731133613p:plain

あとは適当にインストールすると再起動を求められるので再起動できたら完了です。
f:id:AonaSuzutsuki:20200731133630p:plain

VMware Toolsでは共有ファイルなどの様々な機能の他、最も重要なグラフィック関連のドライバーも含まれているため、必ずインストールしておきましょう。
インストール後は再起動して完了です。

また、デフォルト解像度は「1024x768」なので、再起動後にモニタやCPU・GPUに合わせて解像度を変えておきましょう。
放置用ならまだしもプレイすることも考えるとこんな小さい解像度じゃ無理です。

マビノギのインストールと起動

起動できたらあとはマビノギをインストールしてゲームスタートするだけです。
f:id:AonaSuzutsuki:20200731133646p:plain

なぜかEdgeだとNGMがインストールなかなかできなかったり毎回インストール画面が出るのでIEかChrome・Firefox入れた方が安定するかも。
WindowsアップデートすればChromium版Edgeが入るのでそれ使ったらもしかしたらいけるかもしれない。

また、マビノギはデフォルトだとフルスクリーンで起動するので問題がありそうならAlt + Enterキーでウィンドウモードに変更しておきましょう。
もしくは以前私が開発・配布していた「Mabinogi Backuper」でも起動前から設定を変えることができるのでご活用ください。
現在はリメイク中でメンテしてないですが、私もしょっちゅう使ってるので多分動きます。
何かあっても一切責任は取らないけど。

評価版OSの期限のリセット

Windows 10 Enterpriseの評価版は通常90日で期限が切れます。
しかしながら、コマンドプロンプト上でコマンドを実行すると2回だけその日から90日にリセットすることができます
なお、実行した日からなのでたとえ80日残ってたとしても80日 + 90日ではなく、90日になるので注意してください。

検索窓に「cmd」と打ち込み、コマンドプロンプトを右クリックして管理者権限で起動します。
今後の作業は全てこれを用います。
f:id:AonaSuzutsuki:20200731133757p:plain

期限とリセット可能回数の確認

期限や回数を確認するには「slmgr -dlv」を実行します。
f:id:AonaSuzutsuki:20200731133818p:plain

するとずらっと情報が出るので、「時間単位のライセンス認証の有効期限」が残りのライセンス期限のことで、デスクトップの右下に書いてあるのもそうです。
残りのWindows猶予期限リセット可能回数」がリセット可能回数で、これが1以上だとリセットができます。
SKU猶予期限はいまいち情報がなくてわかりませんでしたが、リセット時に同時に減るので気にしなくてOK。

期限のリセット

期限をリセットするには「slmgr -rearm」を実行します。
f:id:AonaSuzutsuki:20200731133840p:plain

正常に処理が完了できたらゲストマシンを再起動します。

起動後、デスクトップ右下のライセンスが期限切れとなりますがしばらく待ってると90日に変わるのでスルー。
前項と同様にライセンスを確認すると期限がリセットされており、更にリセット回数も1つ減ってるはずです。
f:id:AonaSuzutsuki:20200731133904p:plain

ディスクI/Oを減らす (オプション)

Workstationでは標準でHDDやSSDなどの外部記憶装置に仮想メモリファイル(vmem)を作成し、定期的にゲストOSのメモリの内容をバックアップしているらしい。
とりあえずサスペンドに使われてるのは確かなよう(仮想マシンのサスペンドまたはレジューム)ですが、マニュアルにもほぼ記載されてないから実際は何に使われてるのか微塵もわからない不思議な存在。
当然のことながら外部記憶装置はかなり遅いので定期的にディスクアクセスされたらパフォーマンスは下がってしまいますのでメモリ潤沢に積んでいてサスペンドを頻繁に使わないなら無効にすべきでしょう。

f:id:AonaSuzutsuki:20200731134026p:plain

後でも述べますが、実メモリが少ない場合に定期的にvmemに書き出してホストにメモリ領域を返している(解放するとも言う)ようで、以下の設定を行うと常にゲストマシンに設定した分だけメモリを消費し続けます。
すると場合によってはスラッシングが発生してパフォーマンスが激しく悪化するので、追加するかどうかは現在の動作と空きメモリとを鑑みて決めてください。
特に動作で困ってないなら別に追加しなくても問題はないです。

以下の設定を仮想マシンの設定ファイルであるvmxファイル(例えばWindows 10.vmx)の末尾に以下を追記します。

MemTrimRate = "0"
mainMem.useNamedFile = "FALSE"
sched.mem.pshare.enable = "FALSE"
prefvmx.useRecommendedLockedMemSize = "TRUE"

Troubleshooting hosted disk I/O performance problems (1008885)より引用

以下にて可能な限り公式のドキュメントやコミュニティを見ながら解釈してみましたが、useRecommendedLockedMemSizeだけはどうしてもわからなかったので割愛しています。
とりあえず上記の4点でvmemを生成せずに動作させることができます。

MemTrimRate

MemTrimRateは公式でも言及されていて、未使用のメモリ領域をホストへ返す(解放)するようです。

Workstation Pro はメモリ トリミング技術を使用して、仮想マシンで未使用のメモリを他の目的に使用できるようにホストに戻します。
通常、トリミングの最中はパフォーマンスに若干の影響があり、またトリミングはメモリの少ない場合に必要となることがあるため、
メモリ トリミングによって発生する I/O がゲストでのディスク指向のワークロードのパフォーマンスを妨げる場合があります。

仮想マシンの詳細設定 より引用

何も指定しない場合は有効ですが、メモリの解放・取得の工程が挟まる可能性があるためゲストマシンのパフォーマンスが低下する恐れがあります。
また、ホストマシンのメモリが少ないとI/Oが発生する(多分vmemのこと)ため、それによってもゲストマシンのパフォーマンスが低下する恐れがあるようです。

mainMem.useNamedFile = "FALSE"

外部記憶装置へvmemファイルを作成せずゲストマシンを実行します。
vmemファイルは正直何に使われてるのかさっぱりわからないんですが、ゲストマシンの起動と停止で数GBのファイルの作成と削除が行われるので、ちょっと気持ち悪いです。
メモリを潤沢に積んでいるなら止めてもまず問題ないと思います。

公式ドキュメントではvmemに関して次のように述べられています。

ホスト ファイル システム上にあるゲストのメイン メモリをバックアップする仮想マシンのページ ファイルです。
このファイルは、仮想マシンが実行されているか、または仮想マシンが無効になっている場合にのみ存在します。
ワーキング ディレクトリに保存されます。

仮想マシン ファイルより引用

おそらくですが、MemTrimRateも合わせてメモリが少ない状態に退避するファイルとしても使われていると解釈できます。
ただのサスペンド用ならページファイルとは書かないでしょうし。
もしそうなら、FALSEにするとホストマシンもろともスラッシングによりパフォーマンス低下(もはや操作できないと思う)するため、ホスト側の実メモリが潤沢に搭載されていないのであれば設定すべきではないでしょう。

sched.mem.pshare.enable = "FALSE"

公式ドキュメント探しても特に言及されていなかったのですが、仮想マシン同士で特定の条件下で一部メモリブロックの共有が行われるらしい。
当然のことながらメモリブロック共有のための処理が挟まることから速度低下の可能性は大いに考えられます。
複数ゲストマシンを起動することがなければまず使うことはないので無効化します。