« ダイナマイトで破壊するオブジェクト | メイン | unofficial MDM&MDX specification »

April 15, 2005

■ Enemy Territoryで自分だけのモデルを作ろう

はじめての3D体験

折角このサイトに来てくれたのに何も得るものが無かったなんて、こちらとしても申し訳ないので、簡単ながら、1から出発するMD3作成チュートリアルを書いて行こうかと思います。

大仰なことを書きましたが、私もETに触れるまでMOD作る気なんてこれっぽっちもなかった人間です。しかし、およそ半年くらいのほほんと取り組んでいたら、それなりのものが作れるようになりました。その程度のことなのです。別にこれでメシを喰う!というわけではないのだから、その程度の気構えで大丈夫です。

その前に、私の拙い解説よりもよりわかりやすく、またテーマとしても面白い和文チュートリアルがあるので、そちらを参考にするのも良いと思います。

Clan [N]

ナイフをなんとアイスピックにしてしまおうというチュートリアル。こちらはメインツールにMilkshapeを使っています。画像を使った丁寧で簡潔な説明でわかりやすいです。

「うるふぇん」はじめました。

こちらはあろうことか、女性の胸部をヘルメットにしてしまおうというチュートリアルです。その題材について是非は置いといて、メインツールとしてgmaxを利用しています。こちらも画像と丁寧な解説なおかげで問題なく理解できるはずです。

このチュートリアルのテーマ

さて、なにはともあれ、まず自分が作りたいものがあると思います。これを私は「テーマ」と呼んでいますが、この「〜したい」という初期の衝動さえ持続すれば何事も達成可能です。上で紹介したチュートリアルは、「わかりやすいチュートリアル、だけど面白おかしくしたい」というテーマだったのでしょう、きっと。私はあなたの「〜したい」について知る術はありませんが、私はこのチュートリアルによって、あなたが自分で作るモデルはETの中で何になるのか理解し、実践できることをテーマとして作成しています。 要は、何らかのツールで作成した3Dオブジェクトを実際にゲーム中で表示させる方法の紹介です。

私の場合、モデリングに限らず実務上のものや趣味で興味があるけど難しいな・・・と理解の妨げになるのは、決まって専門用語だったりします。私は化学徒なので理科チックな技術的用語はなんとなくわかるのですが、法律や文学に関する方面はさっぱりわかりません。それらを考慮に入れ、このチュートリアルはなるべく用語などを用いず、使っても平易にそれを解説しながら、より多くの人が読めるように進めていきたいと思います。

このチュートリアルで、ああ、モデリングって結構簡単なんだなと思ってくれて、少しでも日本のMOD作成者が増えればと願うばかりです。

MOD3分メイキング

本題に入ります。

今回のように新たにモデルを作ったり置き換えるなど、とにかくゲームの何らかの要素を改変するものをMODと呼びます。MODはModificationの略で改造とかそういう意味です。MODは規模の大小はあれど、ゲームに手を加えるという点ではみんな同じです。特に、大規模で広範囲にわたるMODをTC、Total Conversion、と呼びます。よく知られているCounter StrikeはHalflifeのTCです。

まず、MOD作成のとても簡単な一例をあげます。必要なものは、notepad.exeのようなテキストエディターと、lhasaのようなzipアーカイバーです。

テキストエディターで、以下のように書いたものを、body_soldier.skinとして保存してください:

// This is your first mod to change helmets of allied soldiers to covert ops caps. 

md3_back,		"models/players/temperate/allied/soldier/acc/backpack.md3"
md3_hat,		"models/players/temperate/allied/cap.md3"

l_legs,			"models/players/temperate/allied/leg01.tga"
u_body,			"models/players/temperate/allied/soldier/body.tga"
u_rthand,		"models/players/temperate/allied/soldier/body.tga"
u_lfthand,		"models/players/temperate/allied/soldier/body.tga"

同様に、次の内容をcap_soldier.skinとして保存してください。

helmet,			"models/players/temperate/allied/cvops/cap"

次に、modelsという名前でどこかにフォルダを作ってください。そして、そのmodelsフォルダの中に、playersという名前のフォルダを作ってください。以下、temperatealliedsoldierまで同様にして作ってください。そしてsoldierフォルダの中に、先程保存したbody_soldier.skincap_soldier.skinをそれぞれsoldieralliedに移動してください。最終的に、models/players/temperate/allied/soldier/body_soldier.skinmodels/players/temperate/allied/cap_soldier.skinが得られれば結構です。

続いて、作ったフォルダツリーを、modelsから丸ごと無圧縮でzipにしてください。得られたzipファイルを、まあ適当に、test1.pk3とでも名前を変えて、ETをインストールしたフォルダ中のetmainフォルダに入れてください。

さて、実はこの時点でもう作業は完了しています。では実際にゲームを起動して何が変わったのかを確かめてみましょう。ETを起動して適当にHOST GAMEしてください。ただしDedicatedはOFFで。

AlliesのSoldierのヘルメットが、Covert Opsの帽子に変わっていることに気づきましたか?

では、あなたが今までしたことの意味を説明します。最初に作成した〜.skinというのは、3Dオブジェクトに関する設定ファイルです。今回変更したのは、その中の一行:

md3_hat,	"models/players/temperate/allied/cvops/cap.md3"

この部分だけです。元々はヘルメットのモデルを指定していたこの行を、Covert Opsの帽子に指定しました。続いてフォルダツリーmodels/players/temperate/allied/soldier/を作成しましたが、これはpak0.pk3に現存するファイルを新たに作成した設定ファイルで上書きしたいので、フォルダ位置を同じものに指定するためのものです。そしてzipにしてpk3にしましたが、pk3にすることでET起動時に自動的に読み込まれるようになります。重要な点として、既に読み込まれたpk3中にあるファイルと同名のファイルが後から読み込んだpk3中にあった場合、そのファイルは後から読み込まれたファイルで上書きされます。今回はそれを利用しました。

さて、上記の例でETでのモデルの扱いがなんとなくわかったのではないでしょうか。ETでは、設定ファイル中で指定されているモデルやテクスチャ(後述)を可能な限り利用しようとします。ですから、我々の目標である自分で作ったモデルをゲーム中に登場させるには、設定ファイルを改変し自分の作ったモデルを指定するか、現存するモデル名と同名のファイル名にして上書きするか、このどちらかによって実現可能です。

モデリングツールを手に入れよう

兎にも角にも、まずは3Dオブジェクトをつくらなければ今回の企画は始まりません。3Dオブジェクトとは、私たちがゲーム中で目にする立体的なもの一般を指します。ちなみに3Dオブジェクトを作ることをモデリングといいます。作る人をモデラーといいます。モデリングするにはwindows付属のペイントでは力不足で、それ相応のツールが必要になります。まず、その紹介をしたいと思います。ETは折角のフリーソフトなので、ツールも無料または安価なものが良いでしょう、ということでフリーソフトを中心に紹介します。

gmax *Free*

gmaxはdiscreetが提供するフリーの高性能モデリングツールです。もともと3ds maxというツールが母体となっていて、その機能と保存形式を部分的にしたものがgmaxです。3ds maxは3Dモデリングソフトの分野でかなりのシェアを誇っており、その性能は他の追随を許さないものだそうです。母体が商用でしかも最大シェアのものだけあって、gmaxもフリーツールの中でモデリング能力は群を抜いています。オススメです。ただし、保存できる形式が限られているので、作ったものの目的のフォーマットに出来なかった・・・なんて悲しいオチが待っていることもあるので要注意です。

Milkshape 3D *Share* $25 or EUR 25(ユーロ)

Milkshape 3Dは、ゲームモデラーの間でリーズナブルなモデリングツールとして非常に普及しています。その特徴は、元々ゲームのモデル作りを目的として開発されているので数多くのゲームフォーマットに対応していることです。もちろんMD3もサポートしています。使い勝手としてもなかなか良いと思います。一ヶ月の無料試用期間があるので、その間に用事を済ませてしまえば事実上、「無料」です。

Metasequoia *Free* and *Share* \5000

ゲームのフォーマットはサポートしていないMetasequoia(メタセコイア)を敢えて紹介する理由は、このモデリングソフトが非常に直感的かつ簡単に操作できるからです。また日本語である、という点も初心者の方には見逃せない要素だと思います。とにかく、操作が楽です。視点移動、回転、ズームインアウト、面貼り、UVといった本来なら煩わしい作業が簡単にできます。ただし保存形式でMD3はサポートされていないので、一度標準的なフォーマットで保存してそれを他のソフトで開いて変換する作業が必要になります。

Light Ray 3D *Share* EUR 70

Milkshape 3Dは、最近新たなバージョンへ移行するために対応フォーマット更新作業が滞っている感じがします。そこでこのLight Ray 3Dがなかなかオススメです。Quakeに限らずCall Of Dutyやその他有名ゲームのフォーマットに対応していながら、さらにアニメーション編集も出来るフリーのソフトです。フォーラムのほうでETのプレイヤーモデルフォーマットについての対応も検討していることから、今後の動き次第ではモデリングツールのプライオリティを獲得する可能性もあります。私自身、このソフトを使ったことが無いので操作感などについては述べられませんが、操作画面などを見ると標準的なモデリングツールと大差ないように思えます。特筆事項として、その拡張性の高さがあります。SDKなどのツールが公開されているので、アドオンやスクリプトなどが容易に作成/利用できます。

どのツールを使ったとしても、最終的に作成した3DモデルをETが扱うことの出来るフォーマットであるMD3にしなければなりません。この変換作業は利用しているソフトによってまちまちです。

このチュートリアルは、フリーでゲームモデル、特にQuake3関連のものを作成するのに最適なgmaxを使って説明していきます。

さあ、始めよう!

さあ、モデリングの準備は整いました。でもその前に大事なことを決めなくてはなりません。何を作るか?ということです。本来なら先にそれがあって、作業に移るのですが、今回はチュートリアルですから目的と手段が逆になってしまっています。テーマ設定の良し悪しは、作品の出来だけでなく作業中の自分のモチベーション維持にも大切なものです。

これはチュートリアルなので、簡単なものが良いでしょう。話は変わりますが、メディックは戦場で傷ついた仲間を助ける、看護婦のような、つまりは戦闘服を着た天使のような存在です(安直ですか?)。ということで、今回はメディックを天使様にしてしまいましょう。天使といえば可愛い女の子・・・、というのは日本のアニメ文化に毒され過ぎです。天使といえば、エンジェルハイロウ、そして翼です。そこで、このチュートリアルでは最終的にAlliesのメディックに天使の輪と羽をくっつけることを目標とします。

作るものが決まれば、後はそれを作ってくっつけるだけです。本当にそうなのです。実は何を作るかさえ決まってさえすれば後の障害は技術的なものだけなので、あとは時間さえかければ何とでもなってしまいます。

天使の輪を作ろう

ではでは早速、gmaxを起動してください。面倒なレジストレーションなどを終えると、四分割されたウィンドウやら色々出てきたと思います。まず最初に天使の輪を作りましょう。これはとーーーっても簡単です。なぜ?と思われるかもしれませんが、gmaxはドーナツ状のポリゴンを一操作で作れます。それをクリーム色に着色すれば、ほら天使の輪の出来上がり!それでは実際の作業の流れを追っていきましょう。

まずは起動した状態から、 ↓△肇リックするとドーナツ状のポリゴンを生成するための設定ウィンドウが右下に出ます。この状態になると、中央の作業ウインドウにマウスでドラッグするとドーナツ状のポリゴンが生成されます。それでは作ってみましょう。

,琉銘屬ら△琉銘屬泙悩献疋薀奪阿靴泙后するとドーナツの内径が決定します。続いての位置で左クリックすると外径が決定され、ドーナツが生成されます。そのドーナツは右下のウィンドウで確認できます。ここで各ウィンドウの説明をしておくと、左上はTopとなっておりますが、このウィンドウではモデルを真上から見たものです。右上と左下はそれぞれ正面、左側面から見たものです。右下はパースペクティブ、つまり鳥瞰的にみたものが表示されます。鳥瞰的に表示されると、現実にある遠近法が反映されるため、実際に見た感じになります。

作ったドーナツの形状があなたの感性に合わない場合、このドーナツは削除または修正されるべきです。削除は簡単、このドーナツが選択された状態でDelキーです。修正するには、先程ドーナツを作れる状態にした画面右部にあるところをいじります。

ここの項目をいじると、大きさ以外にも色々と変更できます。実際自分で色々変更してみて、何をどうするとどうなるかを右下のウィンドウなど見ながら確認してください。アンドゥはCtrl+Zです。収拾つかなくなったらDelで削除して新たに作り直しましょう。

さて、満足の行くドーナツ、もとい天使の輪の形状になりましたか?次に、このドーナツに色をつけて天使の輪らしくしましょう。このポリゴンに色や模様をつける作業をスキニングといいます。

天使の輪は円形蛍光灯のようなものっぽいので、今回は暖色のベタ塗り画像を用意しました。皆さんは各自好きな色/模様の画像を用意してもらって構いませんが、注意点として画像の縦横サイズは64/128/256/512ピクセルになるようにしてください。ではこの画像をドーナツに貼り付けましょう。と、その前に作業フォルダでも作ってその中にこのドーナツを保存しておきましょう。保存はCtrl-Sです。今はまだgmax形式保存で結構です。

上図のボタンを押すと、ポリゴンに貼り付ける「マテリアル」を編集するウィンドウが出てきます。マテリアルとは、つまり模様のことです。具体的な話は避けますが、とても奥の深いものです。ここではこれを単に模様を編集するもの、として考えてください。

とりあえず出てきたウィンドウのNewボタンを押して、出てきたウィンドウでStandardを選択してOKをクリックしてください。

ここでは各項目について深く考えずに、Blinnパラメータの中のDiffuse項目の右のボタンを押してください。するとまたウィンドウが出てきますが、このウィンドウで実際に貼り付ける画像を選びます。出てきたウィンドウのBitmapをダブルクリックするとファイルを選択するようなダイアログが出てくるので、あなたが用意した天使の輪画像を指定してください。

指定が終わると、左上に表示されている球に色や模様がついたと思います。これを確認して、 ↓△僚磴妊リックして、一旦このウィンドウを閉じてください。

・・・。まぁ目安としていたのが円形蛍光灯ですから、結果的に蛍光灯になるのは仕方の無いことですね。

それでは作った天使の輪をETで使えるようにするため、大きさや位置の修正、MD3への変換作業に移ります。このあたりはゲームモデル作成固有の作業で、モデリングをしている人が必ずしも知っているわけではないので0から学習するのが難しい部分でもあります。 一旦gmaxでの作業をCtrl-Sで保存して、閉じます。というのも、MD3を扱うためにはgmaxに追加のスクリプトやアドオンが必要だからです。http://mojo.gmaxsupport.com/から、MaxScriptsのQuake3 MD3 ImporterとPluginsのEnhanced MD3 Exporterをダウロードしてください。それぞれ解凍して出てきたファイルを、gmaxをインストールしたフォルダ中のscripts/startup、pluginsに入れてください。終わったら、gmaxを再起動してください。そして先程保存したファイルを開きなおしてください。

2004年7月2日 未完成

投稿者 ikanatto : April 15, 2005 07:02 PM