Ja/Porting GoldSrc content to Source: Difference between revisions

From Valve Developer Community
< Ja
Jump to navigation Jump to search
No edit summary
 
m (fix)
Line 3: Line 3:
original English version: [[Porting Goldsource content to Source]]
original English version: [[Porting Goldsource content to Source]]


Half-Life 1エンジン�?�ら�?�コンテント�?�移�?
Half-Life 1エンジンからのコンテントの移植


�?��?��?��?�る自作�?�[[Goldsource|Goldsource(Half-Life 1エンジン)]] 用�?�.mdlをSource Engine�?�移�?�?�る�?��?�簡潔�?�プロセス�?��?�。�?��?�プロセス�?��?��?��?��?モデル�?��?��?�?�オリジナルソースコンテントを全�?��?�?��?��?�る�?�仮定�?��?��?��?��?�。�?��?��?��?�3Dアプリケーション�?��?�ファイル�?テクス�?ャ�?�.qcファイル�?��?��?�を最低�?�?��?��?�指�?��?��?��?��?�。も�?�.smdファイル�?��?�れ�?��?�る程度時間�?�節約�?��?�る�?��?�も�?�り�?��?��?��?も�?�元�?��?��?��?�3Dアプリケーション�?��?�ソースファイル�?��?�れ�?��?��?��?�も新�?��?�.smdを�?出力�?��??�?��?�。ソースコンテントを�?�?��?��?��?��?��?��?��?�も希望を�?��??�?��?��?��?��??�?��?��?�。�?��?�ドキュメント�?�最後�?��?�.mdlをデコンパイル�?��?��??�?��?�ら始�?る方法�?��?�り�?��?�。
すでにある自作の[[Goldsource|Goldsource(Half-Life 1エンジン)]] 用の.mdlをSource Engineに移植するのは簡潔なプロセスです。このプロセスにおいて、モデルのためのオリジナルソースコンテントを全て持っていると仮定しています。ここでは3Dアプリケーション向けファイル、テクスチャと.qcファイルのことを最低限として指しています。もし.smdファイルがあればある程度時間の節約になることもありますが、もし元となった3Dアプリケーション向けソースファイルがあればいつでも新しい.smdを再出力できます。ソースコンテントを持っていないとしても希望をなくさないでください。このドキュメントの最後には.mdlをデコンパイルしてそこから始める方法があります。


=概?=


大部分�?��?��?��?��?モデル�?�移�?�?�頭脳�?��?�ら�?��?�"機械猿"�?�仕事�?��?�。�?��?�プロセス�?�一直線�?��?実行�?��?��?��?��?�誰�?��?�ボタンを押�?�必�?�?��?�る�?��?��?��?�。�?��?��?VPROJECT�?�正�?��??設定�?�れ�?��?�る�?�を確�?��?�?�??れ�?�ら昔�?�テクス�?ャをSource Engine�?�マテリアル�?�変�?��?��?��?�。 次�?�.qcファイルをSource Engine�?�文法�?��?��?�?��?�編集�?��?��?新�?��?�コンテントをSource Engine�?�.mdl�?�コンパイル�?��?��?�。
=概要=
大部分において、モデルの移植は頭脳がいらない"機械猿"の仕事です。このプロセスは一直線で、実行にあたって誰かがボタンを押す必要があるだけです。まず、VPROJECTが正しく設定されているかを確かめ、それから昔のテクスチャをSource Engineのマテリアルに変換します。 次に.qcファイルをSource Engineの文法にあわせて編集して、新しいコンテントをSource Engineの.mdlにコンパイルします。


=Step 1. VPROJECT=
=Step 1. VPROJECT=
まず最初にVPROJECT環境変数の設定をします。この変数は多くのSourceEngineのツールが参照していて、モデルの移植に使う3つのツールも含まれています。StudiomdlとVtexのどちらもコンパイルしたモデルやマテリアルをどこに配置すべきか知るためにVPROJECTを使っています。すでにVPROJECTの設定をしているならstep 2に移動してください。


�?��?�最�?�?�VPROJECT環境変数�?�設定を�?��?��?�。�?��?�変数�?�多�??�?�SourceEngine�?�ツール�?��?�照�?��?��?��?��?モデル�?�移�?�?�使�?�3�?��?�ツールも�?��?�れ�?��?��?��?�。Studiomdl�?�Vtex�?��?��?�らもコンパイル�?��?�モデルやマテリアルを�?��?��?��?置�?��?��??�?�知る�?��?�?�VPROJECTを使�?��?��?��?��?�。�?��?��?�VPROJECT�?�設定を�?��?��?�る�?�らstep 2�?�移動�?��?��??�?��?��?�。
#VPROJECT('''Current Game'''と対応)を設定するには、SourceSDKランチャーや<code >sourcesdk/bin/VConfig.exe</code >を使うことができます。


#VPROJECT('''Current Game'''�?�対応)を設定�?�る�?��?��?SourceSDKラン�?ャーや<code>sourcesdk/bin/VConfig.exe</code>を使�?��?��?��?��?��??�?��?�。
=Step 2. 昔のテクスチャを新しいマテリアルに変換=
[[Goldsource|Goldsource(Half-Life 1エンジン)]]では.bmpテクスチャが.mdlの中に埋め込まれていました。しかしながらSource Engineではテクスチャの元となるファイル(ディフューズマップ、光沢マップ、バンプマップなど)を.tgaファイルとして用意し、それからVtexツールを使って.tgaを.vtfに変換します。.vtfは.mdlから参照されますが、.mdlの中に埋め込まれるのではありません。 .vtfに加え、.vmtファイルというものもあります。これらはマテリアルの属性を定義するテキストファイルです。.vmtに含まれる主なものはディフューズ、光沢、バンプといった様々なテクスチャへのポインタです。他にも指定できる引数があります。詳細についてはSDKのマテリアルドキュメンテーションを参照してください。


=Step 2. 昔�?�テクス�?ャを新�?��?�マテリアル�?�変�?�=
.tgaのコンパイルを始める前に、MODディレクトリに'materialsrc'と'materials'ディレクトリを作る必要があります。例えば<code >C:\MyMod\materialsrc</code >と<code >C:\Program Files\Valve\Steam\SteamApps\SourceMods\MyMod\materials</code >です。'materialsrc'には元となる画像ファイル全て(ここでは.tga画像)を保管します。materialsディレクトリにはVtexが.vmtや.vtfの出力を行います。 'materialsrc'ディレクトリの中にサブディレクトリを作るときは、'materials'ディレクトリにも対応するディレクトリを作る必要があります。'materialsrc'のサブディレクトリの中の.tgaをコンパイルするとVtexは自動的に対応する'materials'ディレクトリのサブディレクトリに .vmtや.vtfを出力します。例えば<code >C:\MyMod\materialsrc\player</code >と<code >C:\Program Files\Valve\Steam\SteamApps\SourceMods\MyMod\materials\player</code >の両方のディレクトリを作ると、materialsrc\playerディレクトリのファイルをコンパイルすると、結果の.vmt/.vtfはmaterials\playerディレクトリに出力されます。Vtexの.mkdir引数を使っていない場合で、かつ対応するmaterials内のディレクトリが存在しないとVtexがエラーメッセージを出します。それなので問題に合わないようにVtexを使うときは対応するディレクトリを作るようにしてください。


[[Goldsource|Goldsource(Half-Life 1エンジン)]]�?��?�.bmpテクス�?ャ�?�.mdl�?�中�?�埋�?込�?�れ�?��?��?��?��?�。�?��?��?��?��?�らSource Engine�?��?�テクス�?ャ�?�元�?��?�るファイル(ディフューズマップ�?光沢マップ�?�?ンプマップ�?��?�)を.tgaファイル�?��?��?�用�?�?��?�??れ�?�らVtexツールを使�?��?�.tgaを.vtf�?�変�?��?��?��?�。.vtf�?�.mdl�?�ら�?�照�?�れ�?��?��?��?.mdl�?�中�?�埋�?込�?�れる�?��?��?��?�り�?��?�ん。 .vtf�?�加�?��?.vmtファイル�?��?��?�も�?�も�?�り�?��?�。�?�れら�?�マテリアル�?�属性を定義�?�るテキストファイル�?��?�。.vmt�?��?��?�れる主�?�も�?��?�ディフューズ�?光沢�?�?ンプ�?��?��?��?�様々�?�テクス�?ャ�?��?��?インタ�?��?�。他�?�も指定�?��??る引数�?��?�り�?��?�。詳細�?��?��?��?��?�SDK�?�マテリアルドキュメンテーションを�?�照�?��?��??�?��?��?�。
ここでVtexでのテクスチャ作業を楽にする2つのTipを紹介します。まずVtexのショートカットを作って.vmtを自動的に生成する方法、そして2つ目は.vmtはすでにあるとして簡単に.tgaを.vtfに再コンパイルを行う方法です。
Tip #1 新しいマテリアルを作成するショートカット


.tga�?�コンパイルを始�?る�?�?��?MODディレクトリ�?�'materialsrc'�?�'materials'ディレクトリを作る必�?�?��?�り�?��?�。例�?��?�<code>C:\MyMod\materialsrc</code>�?�<code>C:\Program Files\Valve\Steam\SteamApps\SourceMods\MyMod\materials</code>�?��?�。'materialsrc'�?��?�元�?��?�る画�?ファイル全�?�(�?��?��?��?�.tga画�?)を�?管�?��?��?�。materialsディレクトリ�?��?�Vtex�?�.vmtや.vtf�?�出力を行�?��?��?�。 'materialsrc'ディレクトリ�?�中�?�サブディレクトリを作る�?��??�?��?'materials'ディレクトリ�?�も対応�?�るディレクトリを作る必�?�?��?�り�?��?�。'materialsrc'�?�サブディレクトリ�?�中�?�.tgaをコンパイル�?�る�?�Vtex�?�自動的�?�対応�?�る'materials'ディレクトリ�?�サブディレクトリ�?� .vmtや.vtfを出力�?��?��?�。例�?��?�<code>C:\MyMod\materialsrc\player</code>�?�<code>C:\Program Files\Valve\Steam\SteamApps\SourceMods\MyMod\materials\player</code>�?�両方�?�ディレクトリを作る�?��?materialsrc\playerディレクトリ�?�ファイルをコンパイル�?�る�?��?�?果�?�.vmt/.vtf�?�materials\playerディレクトリ�?�出力�?�れ�?��?�。Vtex�?�.mkdir引数を使�?��?��?��?��?�場�?��?��?�?��?�対応�?�るmaterials内�?�ディレクトリ�?�存在�?��?��?��?�Vtex�?�エラーメッセージを出�?��?��?�。�??れ�?��?��?��?題�?��?��?�?��?�よ�?��?�Vtexを使�?��?��??�?�対応�?�るディレクトリを作るよ�?��?��?��?��??�?��?��?�。
# vtex.exeへのショートカットをデスクトップ上に作成します。Vtex.exeはSourceSDK\binディレクトリにあります。
# ショートカットを右クリックしてプロパティを開きます。
# "リンク先"ボックスのvtex.exeの後ろに、空白をあけてから"-mkdir -shader vertexlitgeneric"を追加します。
# OKをクリックします。


�?��?��?�Vtex�?��?�テクス�?ャ作業を楽�?��?�る2�?��?�Tipを紹介�?��?��?�。�?��?�Vtex�?�ショートカットを作�?��?�.vmtを自動的�?�生�?�?�る方法�?�??�?��?�2�?�目�?�.vmt�?��?��?��?��?�る�?��?��?�簡�?��?�.tgaを.vtf�?��?コンパイルを行�?�方法�?��?�。
まだ変換を行ったことがないテクスチャをマテリアルに変換するのにこのショートカットを使ってください。"-mkdir"引数は自動的にmaterialsrc内のサブディレクトリに対応したディレクトリを作成します。 "-shader vertexlitgeneric"引数は変換した.vtfをディフューズテクスチャとして指す.vmtをVtexが自動的に作成するようにします。


Tip #1 新�?��?�マテリアルを作�?�?�るショートカット
'''注意:''' "-shader vertexlitgeneric"引数はポリゴンで作られたオブジェクトだけで使われます。スプライトやブラシのマテリアルでは使用できません。詳しくは  [[:Category:Material System|Materials]] を参照してください。


# vtex.exe�?��?�ショートカットをデスクトップ上�?�作�?�?��?��?�。Vtex.exe�?�SourceSDK\binディレクトリ�?��?�り�?��?�。
Tip #2 TGAをVTFに変換する右クリックショートカット
# ショートカットを�?�クリック�?��?�プロパティを開�??�?��?�。
# "リンク先"ボックス�?�vtex.exe�?�後�?�?��?空白を�?��?��?��?�ら"-mkdir -shader vertexlitgeneric"を追加�?��?��?�。
# OKをクリック�?��?��?�。


�?��?�変�?�を行�?��?��?��?��?��?��?�テクス�?ャをマテリアル�?�変�?��?�る�?��?��?��?�ショートカットを使�?��?��??�?��?��?�。"-mkdir"引数�?�自動的�?�materialsrc内�?�サブディレクトリ�?�対応�?��?�ディレクトリを作�?�?��?��?�。 "-shader vertexlitgeneric"引数�?�変�?��?��?�.vtfをディフューズテクス�?ャ�?��?��?�指�?�.vmtをVtex�?�自動的�?�作�?�?�るよ�?��?��?��?��?�。
# ウィンドウズエクスプローラを開きます。(Windows key + E).
# ツール > フォルダオプションを選択します。
# "ファイルの種類"タブを選択して、拡張子TGAのところまでスクロールします。
# TGAをクリックしてハイライト状態にします。
# パネルの下側の"詳細設定"ボタンをクリックします。
# "ファイルの種類の編集"パネルが表示されます。
# "新規"ボタンをクリックします。
# "アクション:"ボックスに"TGA to VTF"と入力します。
# 次に"参照"ボタンをクリックしてvtex.exeを選択します。(SourceSDKをインストールした場所の"bin"ディレクトリにあります。例えば <codeC:\Program Files\Valve\Steam\SteamApps\username\sourcesdk\bin</code>)
# "アクションを実行するアプリケーション:"ボックスは以下のように表示されているはずです。"C:\Program Files\Valve\Steam\SteamApps\username\sourcesdk\bin\vtex.exe "%1""
# "DDEを使う"の横にある小さいチェックボックスをクリックします。
# "アプリケーション"ボックスには"vtex"と入力します。
# "トピック"ボックスには"System"と入力します。
# 全てのパネルでOKをクリックして変更を確定します。


'''注�?:''' "-shader vertexlitgeneric"引数�?��?リゴン�?�作られ�?�オブジェクト�?��?��?�使�?れ�?��?�。スプライトやブラシ�?�マテリアル�?��?�使用�?��??�?��?�ん。詳�?��??�?�  [[:category:Material System|Materials]] を�?�照�?��?��??�?��?��?�。
これで.tgaファイルを右クリックして"TGA to VTF"オプションを選ぶだけでテクスチャを再コンパイルできます。(.vmtは作られません)以前作成したテクスチャの変更のときに便利です。
これでテクスチャを変換するときに、DOS窓で文字入力するのではなく新しいツールが使えるようになります。


Tip #2 TGAをVTF�?�変�?��?�る�?�クリックショートカット
# 好きな画像編集ソフトで.bmpを.tgaを変換してmaterialsrcの適切な場所に置きます。
# .tgaを先ほど作成した新しいVtexショートカットにドラッグアンドドロップします。
# モデルのテクスチャ全てに対して上の作業を行います。


# ウィンドウズエクスプローラを開�??�?��?�。(Windows key + E).
'''注意:''' より詳しいマテリアルと設定についての説明は [[:Category:Material System|Materials]]ドキュメントを参照してください。
# ツール > フォルダオプションを�?�択�?��?��?�。
# "ファイル�?�種類"タブを�?�択�?��?��?拡張�?TGA�?��?��?��?�?��?�スクロール�?��?��?�。
# TGAをクリック�?��?��?イライト状態�?��?��?��?�。
# パ�?ル�?�下�?��?�"詳細設定"ボタンをクリック�?��?��?�。
# "ファイル�?�種類�?�編集"パ�?ル�?�表示�?�れ�?��?�。
# "新�?"ボタンをクリック�?��?��?�。
# "アクション:"ボックス�?�"TGA to VTF"�?�入力�?��?��?�。
# 次�?�"�?�照"ボタンをクリック�?��?�vtex.exeを�?�択�?��?��?�。(SourceSDKをインストール�?��?�場所�?�"bin"ディレクトリ�?��?�り�?��?�。例�?��?� <codeC:\Program Files\Valve\Steam\SteamApps\username\sourcesdk\bin</code>)
# "アクションを実行�?�るアプリケーション:"ボックス�?�以下�?�よ�?��?�表示�?�れ�?��?�る�?��?��?��?�。"C:\Program Files\Valve\Steam\SteamApps\username\sourcesdk\bin\vtex.exe "%1""
# "DDEを使�?�"�?�横�?��?�る�?�?��?��?ェックボックスをクリック�?��?��?�。
# "アプリケーション"ボックス�?��?�"vtex"�?�入力�?��?��?�。
# "トピック"ボックス�?��?�"System"�?�入力�?��?��?�。
# 全�?��?�パ�?ル�?�OKをクリック�?��?�変更を確定�?��?��?�。


�?�れ�?�.tgaファイルを�?�クリック�?��?�"TGA to VTF"オプションを�?��?��?��?��?�テクス�?ャを�?コンパイル�?��??�?��?�。(.vmt�?�作られ�?��?�ん)以�?作�?�?��?�テクス�?ャ�?�変更�?��?��??�?�便利�?��?�。
=Step 3. .qcファイルの編集=
昔の.qcファイルの大部分は今のStudiomdlでも動作しますが、少し文法の変更があるのでその部分を変更しないと正しくビルドが行えません。


�?�れ�?�テクス�?ャを変�?��?�る�?��??�?��?DOS窓�?�文字入力�?�る�?��?��?��?��??新�?��?�ツール�?�使�?�るよ�?��?��?�り�?��?�。
* $modelnameはVPROJECTに連動していて、モデル出力ディレクトリをVPROJECTに'models'を追加したディレクトリと推測します。例えば<code >C:\Program Files\Valve\Steam\SteamApps\SourceMods\MyMod\models</code >が出力ディレクトリになります。ここで$modelnameを"player\myplayer.mdl"と設定すると、Studiomdlはコンパイルしたモデルを<code >C:\Program Files\Valve\Steam\SteamApps\SourceMods\MyMod\models\player\myplayer.mdl</code >に書き出します。Studiomdlはディレクトリ作成は行わず、-mkdir引数もないので、コンパイルを開始する前に出力ディレクトリが既にあることを確かめてください。
* $cdtexture$cdmaterialsで置き換えます。$cdmaterialsもVPROJECT使用して、出力ディレクトリをVPROJECTに'materials'を追加したディレクトリと推測します。例えば<code >C:\Program Files\Valve\Steam\SteamApps\SourceMods\MyMod\materials</code >です。経験則として、マテリアルは適用する対象に基づいてツリー構造にするのが望ましいです。$modelnameの例と同じように、$cdmaterialsを"models\player"に設定すると、モデルは<code >C:\Program Files\Valve\Steam\SteamApps\SourceMods\MyMod\materials\models\player</code >からマテリアルを検索します。.


# 好�??�?�画�?編集ソフト�?�.bmpを.tgaを変�?��?��?�materialsrc�?��?�切�?�場所�?�置�??�?��?�。
=Step 4. 衝突モデル (別名物理ボックス(Physbox))=
# .tgaを先�?��?�作�?�?��?�新�?��?�Vtexショートカット�?�ドラッグアンドドロップ�?��?��?�。
"衝突モデル" (別名"Collision Hull"、 "Physics Hull"、"Physbox"など) は物理的にシミュレーションを行うときにモデルがどのように世界と干渉するかを定義する単純化されたメッシュです。このドキュメントは物理ボックスの作成の詳細は扱いませんが、Studiomdlが自動的に作るものでよいのか、手で作る必要があるのかを簡単に議論します。
# モデル�?�テクス�?ャ全�?��?�対�?��?�上�?�作業を行�?��?��?�。
Studiomdlは物理モデルの指定がない場合に自動で計算して作り出しますが、簡易で荒いものになります。モデルを"真空パック"するのではありません。モデルの遠い点を直接結んでしまいます。
このデモンストレーションとして十字型のオブジェクトを考えます…


'''注�?:''' より詳�?��?�マテリアル�?�設定�?��?��?��?��?�説明�?� [[:category:Material System|Materials]]ドキュメントを�?�照�?��?��??�?��?��?�。
[[Image:Phys_demo3.jpg]]
 
=Step 3. .qcファイル�?�編集=
 
昔�?�.qcファイル�?�大部分�?�今�?�Studiomdl�?�も動作�?��?��?��?��?少�?�文法�?�変更�?��?�る�?��?��??�?�部分を変更�?��?��?��?�正�?��??ビルド�?�行�?��?��?�ん。
 
* $modelname�?�VPROJECT�?�連動�?��?��?��?��?モデル出力ディレクトリをVPROJECT�?�'models'を追加�?��?�ディレクトリ�?�推測�?��?��?�。例�?��?�<code>C:\Program Files\Valve\Steam\SteamApps\SourceMods\MyMod\models</code>�?�出力ディレクトリ�?��?�り�?��?�。�?��?��?�$modelnameを"player\myplayer.mdl"�?�設定�?�る�?��?Studiomdl�?�コンパイル�?��?�モデルを<code>C:\Program Files\Valve\Steam\SteamApps\SourceMods\MyMod\models\player\myplayer.mdl</code>�?�書�??出�?��?��?�。Studiomdl�?�ディレクトリ作�?�?�行�?�?��?-mkdir引数も�?��?��?��?��?コンパイルを開始�?�る�?�?�出力ディレクトリ�?�既�?��?�る�?��?�を確�?��?�?��??�?��?��?�。
* $cdtexture$cdmaterials�?�置�??�?��?��?��?�。$cdmaterialsもVPROJECT使用�?��?��?出力ディレクトリをVPROJECT�?�'materials'を追加�?��?�ディレクトリ�?�推測�?��?��?�。例�?��?�<code>C:\Program Files\Valve\Steam\SteamApps\SourceMods\MyMod\materials</code>�?��?�。経験則�?��?��?��?マテリアル�?��?�用�?�る対象�?�基�?��?��?�ツリー構造�?��?�る�?��?�望�?��?��?��?��?�。$modelname�?�例�?��?��?�よ�?��?��?$cdmaterialsを"models\player"�?�設定�?�る�?��?モデル�?�<code>C:\Program Files\Valve\Steam\SteamApps\SourceMods\MyMod\materials\models\player</code>�?�らマテリアルを検索�?��?��?�。.
 
=Step 4. �?�?モデル (別�??物�?�ボックス(Physbox))=
 
"�?�?モデル" (別�??"Collision Hull"�? "Physics Hull"�?"Physbox"�?��?�) �?�物�?�的�?�シミュレーションを行�?��?��??�?�モデル�?��?��?�よ�?��?�世界�?�干渉�?�る�?�を定義�?�る�?�純化�?�れ�?�メッシュ�?��?�。�?��?�ドキュメント�?�物�?�ボックス�?�作�?�?�詳細�?�扱�?��?��?�ん�?��?Studiomdl�?�自動的�?�作るも�?��?�よ�?��?��?��?手�?�作る必�?�?��?�る�?��?�を簡�?��?�議論�?��?��?�。
 
Studiomdl�?�物�?�モデル�?�指定�?��?��?�場�?��?�自動�?�計算�?��?�作り出�?��?��?��?��?簡易�?��?��?�も�?��?��?�り�?��?�。モデルを"真空パック"�?�る�?��?��?��?�り�?��?�ん。モデル�?��?��?�点を直接�?ん�?��?��?��?��?��?�。
 
�?��?�デモンストレーション�?��?��?��??字型�?�オブジェクトを考�?��?��?��?��?�。…
 
[[Image:Phys demo3.jpg|Phys demo3.jpg]]


�?��?�モデル�?�世界やプレイヤー�?�よ�?��?�頻�?�?�見られ�?正�?��??�?��?��?��?�り�?回転�?�る必�?�?��?�る�?��?�正�?��?�物�?�ボックス�?�必�?�?��?�考�?��?��?��?��?�。�??�?��?��?以下�?�赤�?�ライン�?�よ�?��?�物�?�ボックス�?��?��?��?��?��?��?��?��?�も�?��?��?��?��?�…
このモデルは世界でプレイヤーが頻繁に目にするもので、正しくはねかえり、回転する必要があるため、正しい物理ボックスが必要だと考えています。そのため以下の赤いラインのような物理ボックスであってほしいとおもっています…


[[Image:Phys_demo2.jpg]]
[[Image:Phys_demo2.jpg]]


�?��?��?��?��?�らStudiomdl�?�物�?�ボックスを作ら�?�る�?��?外�?��?�パーツを直接�?ん�?�メッシュを作り�?��?�。以下�?�よ�?��?�…
しかしながらStudiomdlに物理ボックスを作らせると、外側のパーツを直接結んだメッシュを作ります。以下のように…


[[Image:Phys_demo3.jpg]]
[[Image:Phys_demo3.jpg]]


�?�れ�?�も�?��?��?�?��?��?��?��?�場�?�も�?�り�?��?�。オブジェクト�?��?�?�?��?��?��??�?暗�?�隅�?�使�?れる�?��?��?��?�。�?��?��?�も�?�例�?��?�るオブジェクト�?�回転ドア�?��?��?�り�?�る�?��?��?�物�?�ボックス�?��?��?�入れる�?��?��?��?��??�?��?�ん。詳細�?��?��?��?��?�モデリングドキュメンテーション�?�物�?��?�セクションを�?�照�?��?��??�?��?��?�。
これでもかまわないという場合もあります。オブジェクトが重要なものではなく、暗い隅で使われるなどです。しかしもし例となるオブジェクトが回転ドアだったりするとこの物理ボックスは受け入れることができません。詳細についてはモデリングドキュメンテーションの物理のセクションを参照してください。
 
=Step 5. Studiomdlを実行�?��?�モデル�?�コンパイル=
 
Studiomdl�?�VPROJECTを使�?��?��?��?��?��?��?を除�?��?��?コンパイル�?�実際�?�プロセス�?�変�?�?��?��?��?��?�ん。以下�?�よ�?��?�.qcファイルをStudiomdl�?�関連付�?�る�?��?ダブルクリック�?�る�?��?��?�コンパイル�?��??るよ�?��?��?�り作業�?�少�?�簡�?��?��?�り�?��?�。�?��?�方法�?�気�?�入ら�?��?�場�?��?以下�?�説明を飛�?��?��?�好�??�?�方法�?�Studiomdlを実行�?��?��??�?��?��?�。Studiomdl�?��?��?��?��?�詳細�?�[[:category:Modeling|Modeling]]ドキュメントを�?�照�?��?��??�?��?��?�。
 
ダブルクリック�?�コンパイル�?��??るよ�?��?��?.qcファイルをStudiomdl�?�関連付�?�る�?��?�:
 
# ウィンドウズエクスプローラを開�??�?��?�。(Windows key + E).
# ツール > フォルダオプションを�?�択�?��?��?�。
# "ファイル�?�種類"タブを�?�択�?��?��?拡張�?QC�?��?��?��?�?��?�スクロール�?��?��?�。も�?�拡張�?リスト�?�QC�?��?��?��?��?�ら�?リスト�?�下�?�新�?ボタン�?�ら追加�?��??�?��?�。
# 拡張�?QCをクリック�?�る�?��?�?イライト状態�?��?�り�?��?�。
# "フォルダオプション"パ�?ル�?�"拡張�?'QC'�?�詳細"�?�エリア�?��?"プログラム:"�?��?��?��?�る"変更"ボタンをクリック�?��?��?�。
# "ファイルを開�??プログラム�?��?�択"パ�?ル�?��?�下�?��?�照ボタンをクリック�?��?��?�。
# Sourcesdk/bin�?��?�る"Studiomdl.exe"を�?�択�?��?開�??をクリック�?��?��?�。
# "Studiomdl.exe"�?��?イライト�?�れ�?��?�る�?��?�を確�?��?�?��?OKボタンをクリック�?��?��?�。
# "フォルダオプション"パ�?ルを閉�?��?��?�。
 
�?�れ�?�モデル�?�.qcファイルをダブルクリック�?�る�?��?��?��?Source Engine�?��?�モデル�?�コンパイル�?��??るよ�?��?��?�り�?��?��?�。


=Step 6. 新�?��?�.mdlをHalf-Life Model Viewer�?�確�?=
=Step 5. Studiomdlを実行してモデルのコンパイル=
StudiomdlがVPROJECTを使うというところを除いて、コンパイルの実際のプロセスは変わっていません。以下のように.qcファイルをStudiomdlに関連付けると、ダブルクリックするだけでコンパイルできるようになり作業が少し簡単になります。この方法が気に入らない場合、以下の説明を飛ばして好きな方法でStudiomdlを実行してください。Studiomdlについての詳細は[[:Category:Modeling|Modeling]]ドキュメントを参照してください。


全�?��?��?��?��??�?��?��?��?�る�?�確�?��?る�?��?�?��?新�?��?�Half-Life Model Viewerを起動�?��?�新�?��?�モデルを見�?��?��?��?�ょ�?�。HLMV�?�他�?�ツール�?��?��?�よ�?��?�<code>sourcesdk/bin</code>�?��?�り�?��?�。SourceSDKラン�?ャー�?�ら�?�起動も�?��??�?��?�。HLMV�?�メニュー�?�らFile>Load Model(モデル�?�読�?�込�?�)を�?��?��?自分�?�モデル�?�場所�?�移動�?��?�"Open"ボタンを押�?��?��?�。
ダブルクリックでコンパイルできるように、.qcファイルをStudiomdlに関連付けるには:


�?��?��?�る�?�能性�?��?�る�?題�?��?��?��?�:
# ウィンドウズエクスプローラを開きます。(Windows key + E).
# ツール > フォルダオプションを選択します。
# "ファイルの種類"タブを選択して、拡張子QCのところまでスクロールします。もし拡張子リストにQCがなかったら、リストの下の新規ボタンから追加できます。
# 拡張子QCをクリックすると、ハイライト状態になります。
# "フォルダオプション"パネルの"拡張子'QC'の詳細"のエリアで、"プログラム:"の右にある"変更"ボタンをクリックします。
# "ファイルを開くプログラムの選択"パネルの右下の参照ボタンをクリックします。
# Sourcesdk/binにある"Studiomdl.exe"を選択し、開くをクリックします。
# "Studiomdl.exe"がハイライトされていることを確かめて、OKボタンをクリックします。
# "フォルダオプション"パネルを閉じます。


* も�?�モデル�?�黒�?�ピンク�?��?ェッカーボードテクス�?ャ�?�張られ�?��?�る�?��?�ら�?�?�れ�?�.qc�?�支�?�?��?�場所�?�マテリアル�?�見�?��?�ら�?��?��?��?��?��?�を示�?��?��?��?��?�。
これでモデルの.qcファイルをダブルクリックするだけで、Source Engine向けモデルがコンパイルできるようになりました。
* HLMV�?�"Render"タブ�?�切り替�?��?"Physics Model(物�?�モデル)"�?�横�?��?�る�?ェックボックスをクリック�?��?��??�?��?��?�。 も�?�物�?�モデル�?�予想�?��?�も�?��?��?��?��?�見�?��?�ら�?モデリングドキュメントを見る�?��?題を分�?�?�る助�?��?��?�る�?��?�ょ�?�。


�?�れ�?��?��?��??�?��??�?��?��?��?�。�?��?��?題�?��?�る�?��?�ら�?モデリングドキュメンテーションを見�?��?�?��?�何�?��?��?��?��?��?��?��?��?��?��?題�?��?�る�?�探�?��?��?��?��??�?��?��?�。
=Step 6. 新しい.mdlをHalf-Life Model Viewerで確認=
全てがうまくいっているか確かめるために、新しいHalf-Life Model Viewerを起動して新しいモデルを見てみましょう。HLMVは他のツールと同じように<code >sourcesdk/bin</code >にあります。SourceSDKランチャーからの起動もできます。HLMVのメニューからFile>Load Model(モデルの読み込み)を選び、自分のモデルの場所に移動して"Open"ボタンを押します。
遭遇する可能性がある問題について:


* もしモデルに黒とピンクのチェッカーボードテクスチャが張られているのなら、これは.qcが支持した場所にマテリアルが見つからなかったことを示しています。
* HLMVの"Render"タブに切り替え、"Physics Model(物理モデル)"の横にあるチェックボックスをクリックしてください。 もし物理モデルが予想したものと違って見えたら、モデリングドキュメントを見ると問題を分析する助けになるでしょう。


これでうまくいくはずです。まだ問題があるのなら、モデリングドキュメンテーションを見て、まだ何とかしないといけない問題があるか探してみてください。


=P.S. 元?ソースファイルを無????????ん???…=


も�?�元�?�ソースファイルを無�??�?��?��?��?��?��?��?��?��?�も�?.smdを直接読�?�込ん�?�編集�?��??�?��?�(例:Softimage|XSI�?��?��?�Valve addon�?��?�)。マテリアル�?�変�?��?�る�?��?テクス�?ャを�?�り出�?��?��?��?[[Goldsource|Goldsource(Half-Life 1エンジン)]] 用�?�HLMVを使�?��?�Textureタブ�?�らテクス�?ャを抽出�?�る�?��?��?�方法も�?�り�?��?�。上�?��?��?��?��?�失敗�?��?�ら�?0�?�ら作り直�?��?�も�?局�?��?��?��?悪�??�?��?�考�?��?��?�ょ�?�。
=P.S. 元のソースファイルを無くしてしまったんですが…=
もし元のソースファイルを無くしてしまったとしても、.smdを直接読み込んで編集できます(例:Softimage|XSI向けのValve addonなど)。マテリアルに変換するためテクスチャを取り出すには、[[Goldsource|Goldsource(Half-Life 1エンジン)]] 用のHLMVを使ってTextureタブからテクスチャを抽出するという方法もあります。上のがすべて失敗したら、0から作り直すのも結局のところ悪くない考えでしょう。

Revision as of 22:56, 30 November 2005

originally translated by RumikoHoshino, 2005/9/8
original English version: Porting Goldsource content to Source

Half-Life 1エンジンからのコンテントの移植

すでにある自作のGoldsource(Half-Life 1エンジン) 用の.mdlをSource Engineに移植するのは簡潔なプロセスです。このプロセスにおいて、モデルのためのオリジナルソースコンテントを全て持っていると仮定しています。ここでは3Dアプリケーション向けファイル、テクスチャと.qcファイルのことを最低限として指しています。もし.smdファイルがあればある程度時間の節約になることもありますが、もし元となった3Dアプリケーション向けソースファイルがあればいつでも新しい.smdを再出力できます。ソースコンテントを持っていないとしても希望をなくさないでください。このドキュメントの最後には.mdlをデコンパイルしてそこから始める方法があります。


概要

大部分において、モデルの移植は頭脳がいらない"機械猿"の仕事です。このプロセスは一直線で、実行にあたって誰かがボタンを押す必要があるだけです。まず、VPROJECTが正しく設定されているかを確かめ、それから昔のテクスチャをSource Engineのマテリアルに変換します。 次に.qcファイルをSource Engineの文法にあわせて編集して、新しいコンテントをSource Engineの.mdlにコンパイルします。

Step 1. VPROJECT

まず最初にVPROJECT環境変数の設定をします。この変数は多くのSourceEngineのツールが参照していて、モデルの移植に使う3つのツールも含まれています。StudiomdlとVtexのどちらもコンパイルしたモデルやマテリアルをどこに配置すべきか知るためにVPROJECTを使っています。すでにVPROJECTの設定をしているならstep 2に移動してください。

  1. VPROJECT(Current Gameと対応)を設定するには、SourceSDKランチャーやsourcesdk/bin/VConfig.exeを使うことができます。

Step 2. 昔のテクスチャを新しいマテリアルに変換

Goldsource(Half-Life 1エンジン)では.bmpテクスチャが.mdlの中に埋め込まれていました。しかしながらSource Engineではテクスチャの元となるファイル(ディフューズマップ、光沢マップ、バンプマップなど)を.tgaファイルとして用意し、それからVtexツールを使って.tgaを.vtfに変換します。.vtfは.mdlから参照されますが、.mdlの中に埋め込まれるのではありません。 .vtfに加え、.vmtファイルというものもあります。これらはマテリアルの属性を定義するテキストファイルです。.vmtに含まれる主なものはディフューズ、光沢、バンプといった様々なテクスチャへのポインタです。他にも指定できる引数があります。詳細についてはSDKのマテリアルドキュメンテーションを参照してください。

.tgaのコンパイルを始める前に、MODディレクトリに'materialsrc'と'materials'ディレクトリを作る必要があります。例えばC:\MyMod\materialsrcC:\Program Files\Valve\Steam\SteamApps\SourceMods\MyMod\materialsです。'materialsrc'には元となる画像ファイル全て(ここでは.tga画像)を保管します。materialsディレクトリにはVtexが.vmtや.vtfの出力を行います。 'materialsrc'ディレクトリの中にサブディレクトリを作るときは、'materials'ディレクトリにも対応するディレクトリを作る必要があります。'materialsrc'のサブディレクトリの中の.tgaをコンパイルするとVtexは自動的に対応する'materials'ディレクトリのサブディレクトリに .vmtや.vtfを出力します。例えばC:\MyMod\materialsrc\playerC:\Program Files\Valve\Steam\SteamApps\SourceMods\MyMod\materials\playerの両方のディレクトリを作ると、materialsrc\playerディレクトリのファイルをコンパイルすると、結果の.vmt/.vtfはmaterials\playerディレクトリに出力されます。Vtexの.mkdir引数を使っていない場合で、かつ対応するmaterials内のディレクトリが存在しないとVtexがエラーメッセージを出します。それなので問題に合わないようにVtexを使うときは対応するディレクトリを作るようにしてください。

ここでVtexでのテクスチャ作業を楽にする2つのTipを紹介します。まずVtexのショートカットを作って.vmtを自動的に生成する方法、そして2つ目は.vmtはすでにあるとして簡単に.tgaを.vtfに再コンパイルを行う方法です。 Tip #1 新しいマテリアルを作成するショートカット

  1. vtex.exeへのショートカットをデスクトップ上に作成します。Vtex.exeはSourceSDK\binディレクトリにあります。
  2. ショートカットを右クリックしてプロパティを開きます。
  3. "リンク先"ボックスのvtex.exeの後ろに、空白をあけてから"-mkdir -shader vertexlitgeneric"を追加します。
  4. OKをクリックします。

まだ変換を行ったことがないテクスチャをマテリアルに変換するのにこのショートカットを使ってください。"-mkdir"引数は自動的にmaterialsrc内のサブディレクトリに対応したディレクトリを作成します。 "-shader vertexlitgeneric"引数は変換した.vtfをディフューズテクスチャとして指す.vmtをVtexが自動的に作成するようにします。

注意: "-shader vertexlitgeneric"引数はポリゴンで作られたオブジェクトだけで使われます。スプライトやブラシのマテリアルでは使用できません。詳しくは Materials を参照してください。

Tip #2 TGAをVTFに変換する右クリックショートカット

  1. ウィンドウズエクスプローラを開きます。(Windows key + E).
  2. ツール > フォルダオプションを選択します。
  3. "ファイルの種類"タブを選択して、拡張子TGAのところまでスクロールします。
  4. TGAをクリックしてハイライト状態にします。
  5. パネルの下側の"詳細設定"ボタンをクリックします。
  6. "ファイルの種類の編集"パネルが表示されます。
  7. "新規"ボタンをクリックします。
  8. "アクション:"ボックスに"TGA to VTF"と入力します。
  9. 次に"参照"ボタンをクリックしてvtex.exeを選択します。(SourceSDKをインストールした場所の"bin"ディレクトリにあります。例えば <codeC:\Program Files\Valve\Steam\SteamApps\username\sourcesdk\bin)
  10. "アクションを実行するアプリケーション:"ボックスは以下のように表示されているはずです。"C:\Program Files\Valve\Steam\SteamApps\username\sourcesdk\bin\vtex.exe "%1""
  11. "DDEを使う"の横にある小さいチェックボックスをクリックします。
  12. "アプリケーション"ボックスには"vtex"と入力します。
  13. "トピック"ボックスには"System"と入力します。
  14. 全てのパネルでOKをクリックして変更を確定します。

これで.tgaファイルを右クリックして"TGA to VTF"オプションを選ぶだけでテクスチャを再コンパイルできます。(.vmtは作られません)以前作成したテクスチャの変更のときに便利です。 これでテクスチャを変換するときに、DOS窓で文字入力するのではなく新しいツールが使えるようになります。

  1. 好きな画像編集ソフトで.bmpを.tgaを変換してmaterialsrcの適切な場所に置きます。
  2. .tgaを先ほど作成した新しいVtexショートカットにドラッグアンドドロップします。
  3. モデルのテクスチャ全てに対して上の作業を行います。

注意: より詳しいマテリアルと設定についての説明は Materialsドキュメントを参照してください。

Step 3. .qcファイルの編集

昔の.qcファイルの大部分は今のStudiomdlでも動作しますが、少し文法の変更があるのでその部分を変更しないと正しくビルドが行えません。

  • $modelnameはVPROJECTに連動していて、モデル出力ディレクトリをVPROJECTに'models'を追加したディレクトリと推測します。例えばC:\Program Files\Valve\Steam\SteamApps\SourceMods\MyMod\modelsが出力ディレクトリになります。ここで$modelnameを"player\myplayer.mdl"と設定すると、StudiomdlはコンパイルしたモデルをC:\Program Files\Valve\Steam\SteamApps\SourceMods\MyMod\models\player\myplayer.mdlに書き出します。Studiomdlはディレクトリ作成は行わず、-mkdir引数もないので、コンパイルを開始する前に出力ディレクトリが既にあることを確かめてください。
  • $cdtexture$cdmaterialsで置き換えます。$cdmaterialsもVPROJECT使用して、出力ディレクトリをVPROJECTに'materials'を追加したディレクトリと推測します。例えばC:\Program Files\Valve\Steam\SteamApps\SourceMods\MyMod\materialsです。経験則として、マテリアルは適用する対象に基づいてツリー構造にするのが望ましいです。$modelnameの例と同じように、$cdmaterialsを"models\player"に設定すると、モデルはC:\Program Files\Valve\Steam\SteamApps\SourceMods\MyMod\materials\models\playerからマテリアルを検索します。.

Step 4. 衝突モデル (別名物理ボックス(Physbox))

"衝突モデル" (別名"Collision Hull"、 "Physics Hull"、"Physbox"など) は物理的にシミュレーションを行うときにモデルがどのように世界と干渉するかを定義する単純化されたメッシュです。このドキュメントは物理ボックスの作成の詳細は扱いませんが、Studiomdlが自動的に作るものでよいのか、手で作る必要があるのかを簡単に議論します。 Studiomdlは物理モデルの指定がない場合に自動で計算して作り出しますが、簡易で荒いものになります。モデルを"真空パック"するのではありません。モデルの遠い点を直接結んでしまいます。 このデモンストレーションとして十字型のオブジェクトを考えます…

Phys demo3.jpg

このモデルは世界でプレイヤーが頻繁に目にするもので、正しくはねかえり、回転する必要があるため、正しい物理ボックスが必要だと考えています。そのため以下の赤いラインのような物理ボックスであってほしいとおもっています…

Phys demo2.jpg

しかしながらStudiomdlに物理ボックスを作らせると、外側のパーツを直接結んだメッシュを作ります。以下のように…

Phys demo3.jpg

これでもかまわないという場合もあります。オブジェクトが重要なものではなく、暗い隅で使われるなどです。しかしもし例となるオブジェクトが回転ドアだったりするとこの物理ボックスは受け入れることができません。詳細についてはモデリングドキュメンテーションの物理のセクションを参照してください。

Step 5. Studiomdlを実行してモデルのコンパイル

StudiomdlがVPROJECTを使うというところを除いて、コンパイルの実際のプロセスは変わっていません。以下のように.qcファイルをStudiomdlに関連付けると、ダブルクリックするだけでコンパイルできるようになり作業が少し簡単になります。この方法が気に入らない場合、以下の説明を飛ばして好きな方法でStudiomdlを実行してください。Studiomdlについての詳細はModelingドキュメントを参照してください。

ダブルクリックでコンパイルできるように、.qcファイルをStudiomdlに関連付けるには:

  1. ウィンドウズエクスプローラを開きます。(Windows key + E).
  2. ツール > フォルダオプションを選択します。
  3. "ファイルの種類"タブを選択して、拡張子QCのところまでスクロールします。もし拡張子リストにQCがなかったら、リストの下の新規ボタンから追加できます。
  4. 拡張子QCをクリックすると、ハイライト状態になります。
  5. "フォルダオプション"パネルの"拡張子'QC'の詳細"のエリアで、"プログラム:"の右にある"変更"ボタンをクリックします。
  6. "ファイルを開くプログラムの選択"パネルの右下の参照ボタンをクリックします。
  7. Sourcesdk/binにある"Studiomdl.exe"を選択し、開くをクリックします。
  8. "Studiomdl.exe"がハイライトされていることを確かめて、OKボタンをクリックします。
  9. "フォルダオプション"パネルを閉じます。

これでモデルの.qcファイルをダブルクリックするだけで、Source Engine向けモデルがコンパイルできるようになりました。

Step 6. 新しい.mdlをHalf-Life Model Viewerで確認

全てがうまくいっているか確かめるために、新しいHalf-Life Model Viewerを起動して新しいモデルを見てみましょう。HLMVは他のツールと同じようにsourcesdk/binにあります。SourceSDKランチャーからの起動もできます。HLMVのメニューからFile>Load Model(モデルの読み込み)を選び、自分のモデルの場所に移動して"Open"ボタンを押します。 遭遇する可能性がある問題について:

  • もしモデルに黒とピンクのチェッカーボードテクスチャが張られているのなら、これは.qcが支持した場所にマテリアルが見つからなかったことを示しています。
  • HLMVの"Render"タブに切り替え、"Physics Model(物理モデル)"の横にあるチェックボックスをクリックしてください。 もし物理モデルが予想したものと違って見えたら、モデリングドキュメントを見ると問題を分析する助けになるでしょう。

これでうまくいくはずです。まだ問題があるのなら、モデリングドキュメンテーションを見て、まだ何とかしないといけない問題があるか探してみてください。


P.S. 元のソースファイルを無くしてしまったんですが…

もし元のソースファイルを無くしてしまったとしても、.smdを直接読み込んで編集できます(例:Softimage|XSI向けのValve addonなど)。マテリアルに変換するためテクスチャを取り出すには、Goldsource(Half-Life 1エンジン) 用のHLMVを使ってTextureタブからテクスチャを抽出するという方法もあります。上のがすべて失敗したら、0から作り直すのも結局のところ悪くない考えでしょう。