仮想マシンで3Dアクセラレーションを実現する方法 パート1:VMwareとDirectXの設定チュートリアル
既存のホストマシンの上で仮想化されたOSを動かすのは、とても魅力的なアイデアです。楽しく、クールで、実際のプラットフォームに導入する前にソフトウェアを試せるだけでなく、通常はためらってしまうような操作にも挑戦できます。さらに大きな柔軟性を得られ、展開コストも大幅に削減できます。
しかし、ほとんどの仮想化ソフトウェアに欠けていたのが、ゲストOS向けの3Dアクセラレーションでした。あるいは「欠けていた」と言うべきでしょう……今や、仮想マシンでの3Dアクセラレーションは現実のものとなっています。

はじめに
この連載記事では、ゲストOSで3Dアクセラレーションを有効にするために必要な簡単な設定テクニックを紹介します。これにより、仮想マシンが2Dアプリケーションだけのものではなくなり、リッチでインタラクティブなデスクトップ環境を楽しめるようになります。何より嬉しいのは、仮想マシンの中でゲームが遊べるようになることです!
この第1回では、VMware ServerでDirectXサポートを有効にする方法を学びます。この手法はVMware PlayerやVMware Workstationでも同様に有効です。ホストOSの種類は問いませんが、ゲストOSはWindowsである必要があります。
第2回では、VirtualBoxのOpenGLサポートを利用します。こちらもホストOSはWindowsでもLinuxでも構いませんが、ゲストはWindowsである必要があります。ご覧のとおり、どちらのソリューションもWindowsゲストが前提となります。そこで第3回では、Linuxホスト上のLinuxゲストに3Dアクセラレーションを提供するとされるVMGLというソリューションを試してみます。
注意事項
ここで紹介するすべての機能(およびその解決策)は、現時点では実験的なものです。つまり、あなたの環境でうまく動作するかもしれませんし、そうでないかもしれません。また、統合度やパフォーマンスも完璧とは言えません。
3D仮想化はまだ発展途上ですが、日々進化し続けています。近い将来には、私たちが望む完全な3Dグラフィックスサポートが実現するでしょう。それまでは、今できることを試してみましょう。さあ、始めますよ。
待ってください!仮想化についてあまり知らないのですが…
ああ、そうですよね。仮想化が初めての方にとっては、この記事(というよりこの連載)は少し高度に感じられるかもしれません。まずは当サイトの仮想化セクションの記事を読んで、トピックに十分慣れてから取り組むことをおすすめします。
特に以下の記事に注目してください。
「VMware Toolsのインストール方法 - チュートリアル」
「Windows XPのインストール - 完全チュートリアル」も役立つかもしれません。この記事では、物理マシンでも仮想マシンでも手順が同じであるWindows XPのインストール方法を解説しています。とはいえ、いつものように、このチュートリアルもできる限りわかりやすく詳細に書くので、誰でも追随できるはずです。
VMware ServerとDirectX
必要なもの
VMware製品(Player、Server、Workstationのいずれか)が必要です。これらは相互に排他的なので、同時にインストールできるのは1つだけです。このチュートリアルでは以下を選択しました。
- ホストとしてWindows XP SP3上のVMware Server 1.0.5(Windowsホストの例)
- ホストとしてopenSUSE 11.0上のVMware Server 1.0.8(Linuxホストの例)
- いずれの場合もゲストOSはWindows XP SP3
- ゲストOSにインストール済みのVMware Tools
- 仮想マシン設定ファイルへの小さな変更
- 動作確認用のDirectX対応ゲーム
注意:VMware Playerを使用する場合は、Windows仮想マシンにVMware Toolsがすでにインストールされていることを確認してください。
準備が整っている(手順1〜4が完了している)と仮定して、仮想マシンの設定ファイルを編集しましょう。手順1〜4のやり方がわからない場合は、仮想化セクションの記事を参照してください。
仮想マシンの3Dアクセラレーションを有効にする
仮想マシンには設定ファイルがあります。拡張子が.vmxのファイルがそれです。.vmxファイルは、VMwareプログラムが解釈して使用できる構文で書かれたディレクティブを含む、シンプルなテキストファイルです。設定ファイルでは、ゲストが使用するCPU数、RAM容量、ハードディスクなどを定義します。
設定ファイルの編集は、必ず仮想マシンの電源がオフの状態で行ってください!仮想マシン(とその設定ファイル)が保存されているフォルダを開き、該当する.vmxファイルを見つけて、テキストエディタで開きます。
次に、3Dアクセラレーションを有効にするセクションを追加します。
最初に必要な行はこちらです。
mks.enable3d = TRUE
これで3Dアクセラレーションが有効になります。
2番目の行はオプションです。
svga.vramSize = 67108864
これは仮想GPUに割り当てるメモリ量を指定します。この例では64MBです。正確に計算したい場合は、たとえば32MBなら32 × 1024 × 1024とします(1KBは1024バイトのため)。最大値は128MBです。
3番目の行もオプションで、マウス統合を無効にします。フルスクリーンの一人称視点シューティング(FPS)など、特定のゲームでは重要です。
vmmouse.present = FALSE
3番目のオプションと併せて、仮想マシンのマウスグラブ(カーソル捕捉)機能もオフにしておきましょう。VMwareコンソールのメインメニューから「編集 > 環境設定」をクリックし、「入力」タブを選択して、「カーソル」の項目にある「カーソルがウィンドウ外に出たら解放する」のチェックを外します。
これが何をするのか疑問に思う方のために説明すると、マウスが仮想マシンの画面外に出たときに、ゲームがマウスの動きを記憶し続けるのを防ぐためです。たとえばマウスを仮想画面の右側へ移動させて「解放」しても、ゲーム内で右方向への移動が続くことはありません。マウス移動でマップをスクロールするゲームでは、マップが勝手にスクロールし続けることもありません。FPSのようにマウス移動を視点操作や照準に使うゲームでも、キャラクターがレコードのようにぐるぐると回り続けることはなくなります。
最終的に、設定ファイルには次のようなセクションが含まれているはずです。
準備完了です。起動してテストしましょう。
Windowsホスト、Windowsゲストの場合
仮想マシンの起動
起動したら、VMware Toolsがインストールされ、実行中であることを確認してください。システムトレイにVMwareのアイコンが表示されていればOKです。
次に、dxdiagを実行してディスプレイの診断情報を取得します(スタート > ファイル名を指定して実行 > dxdiag)。
「DirectX機能」の欄に注目してください。DirectDrawとDirect3Dが有効になっています。AGPテクスチャアクセラレーションは利用できませんが、十分でしょう。最高ではありませんが、十分実用になります。上部の「デバイス」欄を見ると、VMwareドライバがインストールされており、64MBのRAMを搭載していることがわかります。
ゲームでのテスト
テストにはMax PayneとScorched3Dを使用しました。
どちらも問題なく動作しました。パフォーマンスも妥当な水準です。ネイティブ環境ほど滑らかでも高速でもありませんが、正しい方向への一歩と言えます。
Linuxホスト、Windowsゲストの場合
同様に、Linuxマシン上でも動作しました。それどころか、仮想マシンが稼働しているリモートのWindowsマシンに接続し、ワイヤレス接続経由でそこから実行することまでできました!
まとめ
セットアップは非常にシンプルです。そして3Dアクセラレーションは実際に機能します。現時点での性能は、GeForce 2/4クラスのカードで動かした場合とほぼ同等、あるいは少し上程度です。しかし、これは成長して3Dの強者になる子供だと考えてください。バーチャライゼーションの熱心なファンにとって、これは巨大かつ重要な一歩です。次回の記事では、VirtualBoxとOpenGLアプリケーションを使って同じことを実現する方法を見ていきます。
それでは、楽しんでください。
-
仮想マシンで3Dアクセラレーション 第3回:Linuxホスト×Linuxゲスト環境でVMGLに挑戦 ― 果たして可能なのか?
仮想化に関するシリーズ第3回となる本記事は、おそらくシリーズ中で最も難易度の高い内容です。これまで、VMware製品ではDirectXサポートが、VirtualBoxではOpenGLサポートが提供されてきましたが、いずれもWindowsゲスト限定のものでした。ホスト側のOSは問われません。では、Linuxゲストではどうなるのでしょうか? 当初は不可能だと考えていました。ところが、linux.comの記事で、VMGLというアプリケーションを使えばLinuxゲストでも3D描画を楽しめると知りました。非常に有望に見えた一方で、難しそうでもありました。5〜10分の手軽なハックではなく、かなり大掛かりな
-
仮想マシンでの3Dアクセラレーション パート2:VirtualBoxとOpenGLの設定方法チュートリアル
本記事は、仮想マシンにおける3D仮想化の設定と活用方法を解説する全3回シリーズの第2回です。今回は、WindowsまたはLinuxホスト上にインストールしたVirtualBoxで動作するWindows仮想マシンに対して、OpenGLアプリケーション(およびゲーム)向けの3Dアクセラレーションを有効にする方法を学びます。前回の第1回では、VMware製品を使ってWindows上のDirectXプログラムに3Dアクセラレーションを有効化する手順をご紹介しました。このときはホストOSがWindowsでもLinuxでも問題なく動作しました。そして最終回となる第3回では、LinuxホストとLinux仮想