|
|
Tips / XSI日記 / Gallery
以下は、XSIでモデリングする際に初心者が体験するであろう操作関連のTipsです。全てを網羅するのは、無理でしょうから、現時点における私なりの観点で記載しております。
ここに述べたのは、あくまで一例に過ぎず、効率的で有用な方法が他にもあるはずです。なお、初心者の為に、Source SDKでのコンパイルのやり方も載せてみました。
[随時更新中]
チュートリアル
キャラクターのコンパイル
XSI Mod ToolのTips
初回起動
説明書
設定関連
画面と基本操作
テクスチャ関連
その他
出力関連
ValveBiped関連
よく使うショートカット
トラブル・リポート
|
キャラクターのコンパイル
- キャラクターモデルのコンパイルに必要なqcの記述
-
- \sourcesdk_content\hl2mp\modelsrc\humans_sdk\Male\Group03 にあるMale_05.qc
- \sourcesdk_content\hl2\modelsrc\humans_sdk\Male_sdk にある Male_06_sdk.qc
1はデスマッチ用に書かれていますが、一連のqciも含めて、シングルプレイ用の置き換えモデルを作る際に流用できます。これを手本にして記述を加えていくとよいでしょう。
2はアニメーションを自作する場合に有用です。\sourcesdk_content\hl2\modelsrc\humans_sdk\Male_Animations_sdk にあるmale_shared_XSI_sdk.qciには、アニメーション用mdlをコンパイルする為のノウハウが書かれています。
他には、
・・・なども参考になるでしょうが、基本は\humans_sdkで勉強する事をお勧めします。
qcファイルの記述に関する説明
- .QC Commands:jpが詳しい。
studiomdl.exeによるコンパイル
- エラー表示を確認できる方法が良いと思います。以下のようなバッチファイルを作り、このバッチファイルに対して、qcファイルをドラッグ・アンド・ドロップするのが確実で簡単です。※ npc_nekoさんに教えてもらったバッチファイルの方が良いので、記事内容を改めました。
環境変数 %sourcesdk% を利用すると、\..\ の表記で、本来なら長くなるパスを省略できます。
Orange box対応のアップデート以降、SDKのツール群へのパスが変わりました。この例(下線部分)はハーフライフ2無印用のモデルをコンパイルする場合のパスです。
@"%sourcesdk%\bin\ep1\bin\studiomdl.exe" -game "%sourcesdk%\..\half-life 2\hl2" %1 %2 %3 %4 %5 %6 %7 %8 %9
pause
|
デスマッチ用モデルの場合は
@"%sourcesdk%\bin\ep1\bin\studiomdl.exe" -game "%sourcesdk%\..\half-life 2 deathmatch\hl2mp" %1 %2 %3 %4 %5 %6 %7 %8 %9
pause
|
自作MOD用に作っている場合は
@"%sourcesdk%\bin\ep1\bin\studiomdl.exe" -game "%sourcesdk%\SteamApps\SourceMods\[自分のMODディレクトリ]" %1 %2 %3 %4 %5 %6 %7 %8 %9
pause
|
※この場合、あらかじめMODに着手した上で作業を行わないと、 Unable to find gameinfo.txt というエラーが表示されます。
Episode One用にコンパイルする場合は、以下のように下線部分が変わります。
@"%sourcesdk%\bin\ep1\bin\studiomdl.exe" -game "%sourcesdk%\..\half-life 2 episode one\episodic" %1 %2 %3 %4 %5 %6 %7 %8 %9
pause
|
Orange BoxのEpisode Two用にコンパイルする場合は、以下のように下線部分が変わります。
@"%sourcesdk%\bin\orangebox\bin\studiomdl.exe" -game "%sourcesdk%\..\half-life 2 episode two\ep2" %1 %2 %3 %4 %5 %6 %7 %8 %9
pause
|
Orange BoxのPortal用にコンパイルする場合は
@"%sourcesdk%\bin\orangebox\bin\studiomdl.exe" -game "%sourcesdk%\..\portal\portal" %1 %2 %3 %4 %5 %6 %7 %8 %9
pause
|
なお、hlmv.exeで、Episode1用のモデルを閲覧したい場合にも同様の記述が使えます。ショートカットの「リンク先:」を以下のようにします。
注意: この方法はOrange Boxで使えなくなりました。Source SDKの緑色のウィンドウ上で対応ゲームを指定し、Model Viewerを立ち上げる事で、ゲーム別にモデルを閲覧できます。ルートに常にAlyxがいますが、対応ゲームのフォルダ構成をよく見直してください。例えばPortalでは、PlayerフォルダにChellがいます。
%sourcesdk%\bin\hlmv.exe -game "%sourcesdk%\..\half-life 2 episode one\episodic"
|
Default Rigをエンベロープしコンパイルすると、hlmv.exeで見た時に腰がヘン(Sequenceを実行させると横になる) 見本画像
-
作成したモデルの骨の階層構造が、Sequenceで使われている構造と違う為に起きる現象のようです。正しい階層構造で上書きしてやれば、解決できます。C-SEC(カウンタ−ストライク・エンジニアリングセンタ−) フォーラムの npc_neko さんに感謝。
コマンドラインから以下のコマンドを実行し、
studiomdl -definebones target.smd > output.txt
|
alyxやkorinのsmdファイルから、正しい骨構造の定義ファイルを出力させます。
output.txtを開いて、$definebone で始まる行を全部抜きだし、これを qci という拡張子をつけたテキストファイルの中身にします。
モデルコンパイル用の qc で、この qci を "$include ファイル名" してやります。
骨構造定義ファイル(commonbones.qci)の作り方
-
Alyx互換のFemale用を作る場合の例です。
- GCFScapeで(Half-Life2無印の)Alyx.mdlを抜き出します。
- mdldecompiler.exeを使ってAlyx.mdlをデコンパイルします。
※Episode One以降のmdlでは、仕様が変わっている為、デコンパイルできません。(強引にデコンパイルするにはChellやsource 2007 shared models.gcfに含まれているAlyxのデコンパイルを参照)
- mdldecompiler.qcをalyx.qcにリネームします。
- コマンドラインから以下のコマンドを実行します。
"%sourcesdk%\bin\studiomdl.exe" -definebones alyx.smd > commonbones.txt
|
- commonbones.txtを開いて、$definebone で始まる行以外は全部削除します。
[補] HelperBoneを定義したくない場合は、$definebone で始まる以下のノードを削除するかコメント行(//を冒頭につける)にします。
"ValveBiped.Bip01_L_Ulna"
"ValveBiped.Bip01_L_Wrist"
"ValveBiped.Bip01_L_Shoulder"
"ValveBiped.Bip01_L_Elbow"
"ValveBiped.Bip01_L_Bicep"
"ValveBiped.Bip01_L_Trapezius"
"ValveBiped.Bip01_R_Wrist"
"ValveBiped.Bip01_R_Ulna"
"ValveBiped.Bip01_R_Bicep"
"ValveBiped.Bip01_R_Shoulder"
"ValveBiped.Bip01_R_Elbow"
"ValveBiped.Bip01_R_Trapezius"
"ValveBiped.Bip01_L_Latt"
"ValveBiped.Bip01_R_Pectoral"
"ValveBiped.Bip01_R_Latt"
"ValveBiped.Bip01_L_Pectoral"
|
- 以下の行を追加します。
$attachment "forward" "ValveBiped.forward" 0 0 0
$attachment "anim_attachment_RH" "ValveBiped.Anim_Attachment_RH" 0 0 0 rotate -90 0 -90
$attachment "anim_attachment_LH" "ValveBiped.Anim_Attachment_LH" 0 0 0 rotate -90 0 -90
$attachment "physgun_attachment" "ValveBiped.physgun_attachment" -0 0 0 rotate -90 -90 0
$bonemerge "ValveBiped.Bip01_R_Hand"
$bonemerge "ValveBiped.Anim_Attachment_RH"
|
- 拡張子をqciにします。
- モデルコンパイル用のフォルダにcommonbones.qciを配置し、コンパイル用 qc に以下の一行を加えます。
MDLのコンパイル中に・・・ ERROR: ikchain 'rhand' too close to root, noparent knee/elbow.
-
このエラーは腕に関するボーンが完全に削除されている場合に示されます。XSI Mod ToolでExport SMDする際に"Remove All Unused Bones"にチェックを入れないでおくべきです。ただし、コントローラーなど、不要なボーン(ノード)がSMDに残ってしまうので、コンパイル時には集約(collapse)が必要です。
\sourcesdk_content\hl2mp\modelsrc\humans_sdk\Male\Group03\(デスマッチ用サンプル)にある Male_05.qc が参考になります。
この Male_05.qc では、以下のように
$include "../commonbones.qci"
|
commonbones.qci がインクルードされて読み込まれるようになっています。commonbones.qci の中身は $definebone で始まる「骨構造の定義ファイル」です。
更に、XSIで必ず出来てしまうカメラや照明などの無駄なノードは $alwayscollapse で集約されるようになっています。
$alwayscollapse は「骨構造の定義ファイル( $definebone )」と一緒に使わないと、ERROR: ikchain 'rhand' too close to root, noparent knee/elbow. が出てしまうようです。
Valve Addonの"Remove all unused bones (use on character rig only)"オプションが正常に働くモデルを作成できていれば、腰がヘンになる事は無いでしょう。正しく機能していない場合にだけ、必要なボーンが削除されて、このエラーが出ます。
Valve Addonの"Remove all unused bones (use on character rig only)"が正しく機能しない理由と、前述の「腰がヘン」という状態には関連があります。それは、ウェイトマップの作り方に原因があります。Rigをモデルにエンベロープするには?とウェイトマップを流用するを参照のこと。
\humans_sdk\Male_sdk\Male_06_reference.smd を Male_06_sdk.qc でコンパイルすると・・・ ERROR: Duplicate weightlist 'pelvisonly'
- Male_Animations_sdk フォルダの WeaponsAnims_Shared_sdk.qci をテキストエディタで開いて、$weightlist pelvisonly で始まる行の先頭に//を加えてコメント行にする。
詳しくは、http://developer.valvesoftware.com/wiki/Compiling_ModelsのSample Models Compile Errorsを参照。
vtfの作成法
-
- vtex.exeのショートカットをデスクトップに作る
- \materialsrc 内の(qcにも記述した)ディレクトリにtgaファイル(テクスチャ用マテリアル)を置く
- 同じディレクトリに、tgaと同名のtxtを作り、ゲーム内におけるテクスチャの表示法を記述する
- このとき、目と口内は専用のシェイダーを使う記述にしておくこと(さもないと表示されない)
- このtxtを(複数でも可)、vtex.exeのショートカットへドラッグ・アンド・ドロップする
- \materials の該当ディレクトリにvtfが出力される
- vtfと同じ場所に、先ほどドラッグ・アンド・ドロップしたtxtをコピ−し、拡張子をvmtにリネームする
またはVTFEditを使う(メニューバー → Tools → Convert Folder)。Episode Twoのvtfを閲覧できる上、Tgaと相互にコンバートできる。更に、ノーマルマップも作れる。
特殊効果のマテリアル設定
- ゲーム中に出てきた特殊効果に応じて、モデルのマテリアル設定を変える必要がある。ここでは、その例を見てみよう。
Episode One:
冒頭シーン。ボーディ達が乱入して、コアの爆発からAlyxとゴードンを救う。ここではボーディ達がワープする特殊効果が演出されている。
"vortwarp"
{
"$basetexture" "models/Alyx/alyx_faceandhair"
"$bumpmap" "models/alyx/alyx_head_normal"
"$halflambert" 1
"$nodecal" "1"
"$model" "1"
"$flowmap" "models/vortigaunt/vortigaunt_flow"
"$selfillummap" "models/vortigaunt/vortigaunt_illum"
"$entityorigin" ""
"$warpparam" "1.0"
"$selfillumscale" "10"
"$selfillumtint" "[0 0 0]"
"$tmp" "0"
"$one" "1"
"$entityoffset" "[-15.0 0.0 0.0]"
"vortwarp_dx7"
{
"$basetexture" "models/alyx_intro/intro_alyxface"
}
"Proxies"
{
"EntityOrigin"
{
}
"Add"
{
"srcVar1" "$entityoffset"
"srcVar2" "$entityorigin"
"resultVar" "$entityorigin"
}
"MaterialModify"
{
}
}
}
|
Episode Two:
Alyxをエッセンスを使って復活させようとする儀式のシーン。宙に浮いた後、Alyxの皮膚と衣服が透明化して筋肉や骨が見える。
"vertexlitgeneric"
{
"$basetexture" "models/Alyx/alyxhunted_faceandhair"
"$bumpmap" "models/alyx/alyx_head_normal"
"$halflambert" 1
"$nodecal" "1"
"$model" "1"
// -- From here down is new stuff which will only be applied if $phong is set to 1 --
"$phong" "1"
"$ambientocclusiontexture" "models/alyx/alyx_occlusion"
"$phongexponenttexture" "models/Alyx/alyx_head_exponent"
"$phongboost" "6"
"$phongfresnelranges" "[0.05 0.5 1]"
// Flesh Interior Pass
"$FleshInteriorEnabled" "1" // Enables effect
"$FleshInteriorTexture" "models/Alyx/alyx_flesh_color" // Mask in alpha
"$FleshNormalTexture" "models/Alyx/alyx_flesh_normal"
"$FleshBorderTexture1D" "models/Alyx/alyx_flesh_border"
"$FleshInteriorNoiseTexture" "Engine/noise-blur-256x256"
"$FleshSubsurfaceTexture" "models/Alyx/alyx_flesh_subsurface"
"$FleshCubeTexture" "env_cubemap"
"$FleshBorderNoiseScale" "3" // Flesh Noise UV scalar for border
"$FleshBorderWidth" "0.2" // Width of flesh border
"$FleshBorderSoftness" "0.5" // Border softness must be greater than 0.0 and up tp 0.5
"$FleshBorderTint" "[.2 .2 .4]" // Tint / brighten the border 1D texture
"$FleshGlossBrightness" "1.0" // Change the brightness of the glossy layer
"$FleshDebugForceFleshOn" "0" // DEBUG: This will force on full flesh for testing
"$time" "0"
"Proxies"
{
"FleshInterior"
{
}
"CurrentTime"
{
"resultVar" "$time"
}
}
}
|
ノーマルマップ(バンプマップ、法線マップ)の作成
-
Creating Normal Maps:jpが詳しい。
上の英語版にはGIMPによる作り方が出ている。
要約: ハイポリ・モデルから出力するか、さもなければ、グレースケールのテクスチャから作成する。前者の場合、XSIならば、Ultimapperというテクスチャ焼き付けの手法がある。後者の方法では、VTFEditや、nVidiaが提供しているツールを用いる。
光沢感のある表面の設定
- キャラクターモデルではなくて、プロップの説明だが、http://developer.valvesoftware.com/wiki/Reflective_Materials(英語)が詳しい。
板ポリだが、裏からも見える設定
- vmtに「表裏とも見える面にする」設定の "$nocull" 1 を記述しておく
透明度を持ったテクスチャの設定
- テクスチャにアルファ・チャンネル(白黒で階調のあるマスク)を作っておき、そのvmtに「透過」設定の "$translucent" 1 を記述する。
板ポリでは("$nocull" 1の有無に関わらず)、透過設定の面が重なる場合に見え方がおかしくなる。
この場合、更に "$alphatest" 1 を設定する事で見え方をまともにできるが、その代わり、階調表現が無くなる(ジャギーが発生して縁がギザギザに見える)。
結論としては、透過設定の面を重ねない運用が実用的だと思う。
二枚の板ポリを背中合わせに使い、一枚目を表向きのポリゴン、二枚目を裏向きのポリゴンにし、二枚とも透過設定にする事で、「透けたビーチボール」を実現させた例が海外の掲示板でありました(HL2WorldのBBS)。つまり、表面・裏面の組み合わせならば、見え方はおかしくならないようです。
また、透過設定された板ポリは、プレイヤーキャラクターからのフラッシュライトを浴びると、透明になるか、黒っぽく濁る。これは、モデルをコンパイルした際のqcの記述による。"$opaque" だと透明になり、"$mostlyopaque" だと黒っぽくなる。
ゲーム本編のモデルを参照すると、「ペラペラの板ポリは使わない」のが原則らしい。例えば、Mossmanの前髪は「板ポリ」ではなく、通常の「箱ポリ」になっており、その上で「透過」設定の "$translucent" 1 がvmtに記述されている。この場合、透過設定されたテクスチャを貼った「箱ポリ」が半透明となる。マスク指定した箇所だけが透明になるのではない(!)。半透明と半透明が重なっても、見え方はおかしくならない。因みに、korinの後ろ髪ピッグテイル部分もよく見ると半透明だ。
Episode Oneでは "$translucent" 1 の状況下で、$phongと$phongboostとを有効にすることができない。
Episode Twoでは、上の制限は無くなっている(あるいは、無視される)。
MotionMapper.exeを使ったSequenceのリマップ
-
基本的な使い方はSkeleton_motion_mapping:jpに詳しい。
例として、AlyxのSequenceであるAlyx_animationsをリマップしてみよう。
- GCFScapeで(Half-Life2無印の)Alyx_animations.mdlを抜き出します。
- mdldecompiler.exeを使ってAlyx_animations.mdlをデコンパイルします。
※Episode One以降のmdlでは、仕様が変わっている為、デコンパイルできません。
- alyx_eli_lab.smdをテキストエディタで開いてみます。
冒頭のnodesに注目してください。ターゲットSMDには、これと全く同じ構成を持ったSkeletal Animationファイルが必要になります。
ポイントは以下の4つのアタッチメントがノードとして勘定されている事です。
ValveBiped.forward
ValveBiped.Anim_Attachment_LH
ValveBiped.Anim_Attachment_RH
ValveBiped.physgun_attachment
|
- そこで、貴方が作成するモデルのRigに、親子関係を以下のようにして、この4つのアタッチメントを仕組みます。アタッチメントはサイズ1のNullです。
ValveBiped.Bip01_Head1の子
ValveBiped.Bip01_L_Handの子
- ValveBiped.Anim_Attachment_LH
ValveBiped.Bip01_R_Handの子
- ValveBiped.Anim_Attachment_RH
- ValveBiped.physgun_attachment
HelperBoneは、Envelope_Deformersのグループには含まず、ウェイトも配分しないでおきます。
- このモデルをコンパイル用のSMDとしてExportします。
Export SMDする際に"Remove All Unused Bones"にだけチェックを入れないでください。
[補] チェックを入れて正常に出力される場合もありますが、私の経験上、チェックを入れない方が良いようです。
Ragdoll(Phymodel)とRagdoll_pose(Skeletal Animation)も忘れずに別途用意してください。
コンパイル用のqcは \sourcesdk_content\hl2mp\modelsrc\humans_sdkフォルダ内にある qci ひと揃いと、同\Group03 にある qc を流用します。
適宜フォルダ名などは書き換えてください。
- Alyxから作ったcommonbones.qci(ただし、HelperBoneは定義していないもの)をインクルードします。
必ず、standardhierarchy.qci をインクルードしてください。($alwayscollapse "Valvebiped.bip01"を行う為)
また、コンパイル用の qc 中で、
$alwayscollapse "XSIでのポリゴン名に相当するノード"
$alwayscollapse "XSISceneRoot"
|
を行います。
- mdlにコンパイルします。
- コンパイルしたモデルをHLMV.exeで表示させ、Boneの数が57になっている事を確認します。
- コンパイルしたモデルのmdlを、mdldecompiler.exeでデコンパイルします。
[注意] XSIでExportしたSMDを直接ターゲットSMDには利用できません。というのも、どうしてもXSIでのノード名が残ってしまうからです。ノードの数を等しくする為に、敢えてデコンパイルを行うのです。
- Dumping Modelされたファイルの内、ragdoll.smd が MotionMapper.exeのターゲットSMDとして使えます。
MotionMapper.exeを使う時のコマンドラインは、以下のようになります。alyx_eli_lab.smdをリマップする場合(実際には一行です)。
"%sourcesdk%\bin\MotionMapper.exe" "デコンパイルしたソースAlyx_animations\alyx_eli_lab.smd" "ターゲットSMD" "%sourcesdk%\..\sourcesdk_content\hl2\modelsrc\Alyx_animations\alyx_eli_lab.smd"
|
[注意 1] mdldecompiler.exeでデコンパイルしたアニメーションsmdには、移動量の情報が抜けてしまっています。その為、a_Run*.smdやa_Walk*.smd等は、正しいmdlにコンパイルできません。
同様に、mdldecompiler.qcの記述にも不備があり、そのままでは正しいmdlにコンパイルできません。
http://developer.valvesoftware.com/wiki/Locking_Npc_Animationsが、この問題を扱った記事ですので、参考になるでしょう。
[注意 2] MotionMapper.exeはモーションのリマップに失敗する場合があります。Errorが明示される場合もありますが、されない場合もあります。
リマップされたSMD内に不正な値があると、mdlのコンパイル中に停止したり、Errorメッセージが出ます。
不正な値の例1
73 6.203998 0.000000 -0.000001 22473137629066834000000000000.000000 0.206022 -0.498943
|
この場合はコンパイルが停止してしまいます。(Ctrl+Cでバッチ処理を終了させる事になります)
そこで、
22473137629066834000000000000.000000
|
を
に置き換える事でコンパイルが停止する状態が改善できます。
不正な値の例2
14 5.092391 -0.000007 0.000000 1.#QNAN0 1.#QNAN0 -1.#IND00
|
この場合はコンパイル中にErrorメッセージが出て、コンパイルに失敗します。
XSI Mod ToolのTips
- 「ユーザのディレクトリにはASCUでない文字がふくまれています」と出て、起動できない
- http://www.softimage.jp/xsi-tips/2006/08/post.html#more
あるいは、以下の手順で。 \Softimage\XSI_4.2_ModTool\Application\bin\setenv.bat をテキストエディタで開くと、
set XSI_USERROOT=c:\users\%USERNAME%
|
とあり、%USERNAME%(Windowsのログインネームに置き換えられる箇所)を半角英数字による文字列に変える。
例えば・・・
set XSI_USERROOT=c:\users\hanabusa
|
注意: XSIでは、漢字や仮名が使えない。原則英語。
数値入力のフィールドが白色で文字が見づらい(XSI v5.11、v6.02)
- http://www.softimage.jp/xsi-tips/2006/08/post_4.html
WINDOWS XP ProfessionalのSP1とSP1aで生じる問題との事。今後は、SP2でしか、マイクロソフトによるWindowsセキュリティーUpdteを受けられなくなるので、SP2を適用すべきでしょう。
SP2をインストールしたくない等の理由がある場合、問題のファイル(SP2で提供された lpk.dll )だけを\Softimage\XSI_5.11_Foundation\Application\bin\に置けば解決できます。
[追記] 製品版v5.11やv6.02では有効なのですが、Mod Tool v4.2ではダメみたいです。Mod Tool v6では、この処置は不要です(数値入力のフィールドが白色になる事は無いので)。
xsibase.comのXSI General FAQの4に説明とファイルがあります。
Valveアドオンのインストール
-
- Mod Toolを起動し、メニューバーから、File → Add-On → Install
- >>> Select a file... <<<<で、 \Steam\SteamApps\[UserName]\sourcesdk\xsi フォルダにある ValveSource.0105.01.xsiaddon を指定して、Installボタンを押す。もしくは・・・
- Mod Toolを起動する前に、あらかじめ、http://www.softimage.com/downloads/default.aspxでMod Toolを選び、「Mod Tool Add-On for Valve Source」をダウンロードして解凍しておき、解凍先のValveアドオンを指定して、Installボタンを押す。
余談ながら、 Steam\SteamApps\[UserName]\sourcesdk\maya\4.5 にMAYA用アドオンがある。
エクスポート機能の有効化(Mod Tool v4.2)
- 初めてセーブ等の操作を行うと、登録を求められる。
http://www.softimage.com/community/xsi_mod_tool/activate/default.aspxで、必要事項を登録すると、EメールでRegistration keyが送られてくるので、それを24時間以内に入力する。
- 言語を英語(または日本語)へ変更するには?(Mod Tool v4.2)
-
- メニューバー File → Preferences
- Preferencesの階層にあるGeneralをクリック
- Languageで変更
- Mod Toolを一旦終了
Mod Tool v6では、(「ヘルプ」は日本語になりますが、メニュー等において)日本語は有効にならないようです。
「ヘルプ」の言語を変更するには?(Mod Tool v4.2)
- Softimage\XSI_4.2_ModTool\Application\Help\のjpディレクトリとenディレクトリの名前を互いに入れ替える方法をオススメします。(Mod Tool v4.2では、ヘルプのデフォルト言語は英語で、起動の度にデフォルトに戻る為)
デフォルトの「拡張コンポーネント選択(左クリックで選択/右クリックで選択解除)」を止めるには?(Mod Tool v4.2)
- ※Mod Tool v4.2では設定が保存されませんので、毎回起動の度ごとに「拡張コンポーネント選択」が有効になります。
- メニューバーFile → Preferences
- Preferences下、Toolsの[+]をクリックし、更にSelectionをクリック。
- Extended Component Selectionのレ印を外す
手前または表面のポイント(もしくはエッジ、ポリゴン)のみ選択するには?
- 設定で変更する場合
- メニューバーFile → Preferences
- Preferences下、Toolsの[+]をクリックし、更にSelectionをクリック。
- Raycast in Shaded Modeにレ印を入れる
設定で変更しない場合
設定はデフォルトのままにしておき、作業中に、ショートカットF10を押す。
- 画面向かって右側に並んだ「パネル」を折り畳むには?
- パネルのタイトルバー(ラベル)上で右クリック
画面左右にあるツールバーやパネルを隠して画面を広く使うには?
- メニューバーApplication → Layouts → Auto-Hide
画面一杯に映すには?
- ショートカットAで対象を画面内に大きく映し出せる
ショートカットFで選択部分を画面内に大きく映し出せる
視点を変更するには?
- ショートカットS
パン(上下左右)はマウス左ボタン押し下げ状態で行う。
ドリー(近遠)はマウス中ボタン押し下げ状態で行う。
オービット(軸にして回る)はマウス右ボタン押し下げ状態で行う。
ショートカットZ(奥行き感が変わる)
ズームインは中ボタンクリック
ズームアウトは右ボタンクリック
選択する対象(ポイント/エッジ/ポリゴン)を変更するには?
- ショートカット T でポイント選択
ショートカット I でエッジ選択
ショートカット U でポリゴン選択
(ショートカット Y でポリゴンの矩形選択)
選択解除を一度に行うには?
- ショートカットCtrl+Shift+Aで「全選択の解除」
ツールバーを切り替えるには?
- ショートカット1でModel
ショートカット2でAnimate
ショートカット3でRender
Scene Explorerを呼び出すには?
- ショートカット8
投げ縄選択を使うには?(デフォルトは矩形選択)
- ショートカットF8
ビューポートで反対側から表示するには?
- ビューポート上の「目アイコン」の右隣りにある「X Y Z」を、マウスの中ボタンか右ボタンでクリックするだけ。もう一回クリックすれば元に戻る。
詳しくは、http://www.softimage.jp/xsi-tips/2006/08/post_7.html
同じコマンドを繰り返すには?
- ショートカット.(ピリオド)
回転ツールの軸の位置を変えるには?
- Altキーを押しながら左クリックでピボット(回転軸)を設定できる
平行投影ビューの角度を正対から変更するには?
- 平行投影ビュー上部にある「カメラのアイコン」から "Properties..." を選び、「Grobal Transform の Pose タブ」にある「Rotation」の値を弄る。
詳しくは、http://www.softimage.jp/xsi-tips/2006/08/ortho_view.html
便利な選択方法
-
- 連続した頂点(またはポリゴン、エッジ)を一度に選択する方法
- まず、端となる頂点(またはポリゴン、エッジ)を選択し、次いで、Altキーを押しながら別の端となる頂点(またはポリゴン、エッジ)を選択すると、間にある頂点(またはポリゴン、エッジ)が一挙に選択できる。
- 円筒状のオブジェクトで、ぐるっと一回りするエッジを選択する方法
- オブジェクト上で右クリックし、プルダウンメニューからselect edge loopをクリックしてから、エッジをPick
- 選択済のポリゴンに含まれる頂点(またはエッジ)を選択モードを変えると同時に選択する方法
- オブジェクト上で右クリックし、プルダウンメニューからSelect Adjacent→Points(またはEdges)をクリック。逆も可能。
-
-
-
-
- テクスチャ・エディタを呼び出すには?
- ショートカットAlt+7
複雑な形状のテクスチャを楽に展開するには?
- http://www.softimage.jp/xsi-tips/2006/08/uv.html
XSI Mod Tool v4.2にはリラックスが無い・・・。v5.11 Foundationにはあるが。いずれにしろ、この方法はポリゴンの変形が著しいので、人体頭部には不向きだと思います。
テクスチャを割り当てるには?
-
- テクスチャを貼りたいポリゴンを選択
- EditパネルのClusterボタンを押して、ポリゴン・クラスターを作成
- オブジェクトを選び、メニューバーRender → Get-Property → Texture Projection → UV(または任意のProjection)
- 作成済みのポリゴンクラスターを選択
- メニューバーRender → Get-Texture → Image
- Shared Materialという新規作成かを尋ねるダイアログにYes
- ImageでNewをクリック
- New From Fileをクリック
- tga画像を選ぶ
- 投影方法を変えたければ、TextureEditor上で好みのProjectionに切り替える
- Scene ExplorerでTexture_Supportを選択すれば、Transformパネルの各種ツールで投影の位置が変更できる
- オブジェクトを選び、EditパネルのFreeze MボタンでTexture_Supportが消える(投影位置の変更ができなくなる)
ポリゴンクラスターにポリゴンを追加(削減)するには?
-
テクスチャを展開する際に、ポリゴン・クラスターを作成しますが、後になってポリゴンを足したくなったり、逆に減らしたくなった事はありませんか? そんな時、重宝するのが、Editパネル: Clusterボタンの右側にある+と−のボタンです(Clusterボタンは、普段は Group になっています)。
- クラスターに追加したい(もしくは差し引きたい)ポリゴンを選びます
- Scene Explorer上で既存のクラスターをShiftキーを押しながらクリックし、選択します
- Editパネル: Clusterボタンの脇にある+と−のボタンが押せるようになります
- 追加なら+の、差し引くなら−のボタンを押します
- これで、既存のクラスタに変更が施されました
TextureEditor上でのトランスフォームとスケール
-
- 垂直に移動させたい場合は中ボタンでドラッグ。水平に移動させたい場合は右ボタンでドラッグ。
- 縦方向だけを拡大/縮小させたい場合は中ボタンでドラッグ。横方向だけを拡大/縮小させたい場合は右ボタンでドラッグ。
- エッジの色分けの意味は?
-
- 水色
- そこがオブジェクトの端であるならば、オブジェクトが閉じていない事を表す
そうでなければ、エッジ同士が、重なってはいるが繋がっていない事を示す
そのエッジが(エッジの)クラスターである
- 濃い青色
- ハードエッジ。鋭角の設定を施されたエッジ
- 赤色
- 選択中のエッジ
- 白色(オブジェクト選択)
- ハードエッジの実行直後の状態
Clusterを作るには?
-
- クラスターにしたいエッジ(または、ポイント、ポリゴン)を選ぶ
- EditパネルのClusterボタンを押す
Clusterにしたエッジを元に戻すには?
-
- エッジを構成する頂点を複数選び
- Modelツールバー Modify → Poly.Mesh → Weld Boundary Points/Edges
不要な頂点ポイントはどう扱うのが無難か?
-
- 頂点を選択して
- Modelツールバー Modify → Poly.Mesh → Weld Points To Targets
- 目標にしたい頂点をPick
エッジを鋭角に(もしくは、鋭角を元に戻す)するには?
-
- エッジを選択して
- Modelツールバー Modify → Component → Mark Hard Edge/Vertex
- 開いたウィンドウでレ印を入れる(もしくは、外す)
モデルを一部抽出するには
- Modelツールバー Create Poly.Mesh → Extract Polygons (keep)
または、Extract Polygons (delete)
抽出したモデルをマージして合体させるには?
- Modelツールバー Create Poly.Mesh → Merge
Merge Meshesウィンドウでは、属性のマージ「ALL」をした後に「削除(オペレータのフリーズ)」を行う
現在のファイルに別のexpファイルを読み込んでマージするには?(Mod Tool v4.2)
- メニューバーFile → Merge
Mod Tool v6では、scnファイルのマージは出来るが、expファイルのマージは出来ない、という報告アリ。
マージしたScene_RootからObjectを取り出すには?
-
- 取り出すObjectを選択
- ConstrainパネルのCutボタンを押す
読み込んだシーンファイルで見えないオブジェクトがあったらどうする?
- メニューバーView → Unhide All Objects
複数の頂点を揃えるには?
-
- 揃えたい頂点(複数)を選択する
- 画面右手「Transform パネル」上で左クリックし、ポップアップしたメニューの "Collapse Points for Snapping/Absolute Translation" をアクティブ(レ印)にしておく
- TranslateToolのいずれかの座標に揃えたい値(例えばX座標面に揃えたいのならば、X座標に0)を入力する
- 入力を確定(リターンキーを押す)で揃う
- 揃え終わったら、 "Collapse Points for Snapping/Absolute Translation" を、元のように非アクティブ(レ印無し)にしておきましょう
左右対称でモデリングするには?
-
- ポイントやエッジを増やしていく段階であれば、クローンを使う(右半分をクローンしたものを左半分に配置)
- ほとんど完成している状態でポイントの位置を調整していく段階なら、シンメトリマップを適用してから、Transform パネルで Sym をアクティブにする(この方法はシェイプキーの作成時にも使えるので便利)
- vtaのエクスポート
- XSI Mod Tool v4.2では出来ないので、XSI Mod Tool v6で行う。または、XSI製品版か評価版で行う事もできる。
ModToolでの成果を製品版XSIに持っていくには?
- expファイルは製品版では開けませんので、dotXSIファイルを使います。
あらかじめ、Mod Tool上で、dotXSI形式でExportしておけば、製品版XSIでImportできるはず。
※Mod Tool v6では、CrossWalkを使いましょう。
Mod Tool v4.2の場合、三角ポリゴンのカウント数が4,000を超える場合には、Mod Toolの制限にひっかかってしまい、dotXSI形式でのExportがキャンセルされてしまいます。そこで、Valveリグにエンベロープした状態にしておけば上手くいきます(上限は三角ポリゴンのカウント数7,000まで、だったかと思います)。
オブジェクトは、全て三角ポリゴンにされてしまうので、ポリゴンのクアッド変換(Modelツールバー Modify → Poly. Mesh → Quadrangulate)をかけると、元に近くなります。
- ValveBipedを隠すには?
-
- Scene Explorer上でValveBipedをツリー選択(マウス中ボタンクリックのブランチ選択でも可)
- ショートカットH
目玉の入れ方
- http://veazie.org/Tutorials/XSIAddingEyes/HL2_Adding_Eyes.html
(英語)が詳しい。Mod Toolで使える「座標を知る為のvbスクリプト」が置いてある。要約すると・・・
- XSI上で、適切な大きさのSphereを作り、これを左眼球に見立てた位置に置く
- 「座標を知る為のvbスクリプト」を用い、Frontビューで眼球(Sphere)の中心をPickし、X座標とする
- 同じく、「座標を知る為のvbスクリプト」を用い、Rightビューで眼球(Sphere)の中心をPickし、Y座標、Z座標とする
- Sourceエンジンの座標軸は反時計回りに90度ずれているので、Pickで得たY座標とZ座標を入れ替え、尚かつ新しいY座標を負の値(マイナス記号を頭につける)にする。
- 次のようにqcに記述する。
$attachment "eyes" "ValveBiped.Bip01_Head1" X座標 Y座標 Z座標 absolute
|
ただし、X座標にゼロを記述する事(顔が歪んでいないならば)。
- 同じく、qcに次のような記述を加える。
eyeball righteye "ValveBiped.Bip01_Head1" X座標 Y座標 Z座標 "マテリアル名" 眼球の直径 外向きの角度 "虹彩のマテリアル名" 虹彩テクスチャの縮尺
|
ただし、X座標はマイナスの値をとる(Pickして得た数値の頭に、マイナス記号をつける)。
- 同様に左目も記述する。左目のX座標はPickで得た値そのままでよい。
- キャラクターモデルをコンパイルする。hlmv.exeで目の位置を確かめ、おかしければ、眼球の直径、外向きの角度、虹彩テクスチャの縮尺等に変更を加える。
Eye Position Setup:jpにも説明がありますが、QCEyesアプレットは役に立たないと思います。
なお、Valveが使っているデフォルトの「虹彩のマテリアル」には、オフセット値がついています。つまり、画像としては見えないのですが、設定された分だけ余白があるものとして描画されます。したがって、新規に同サイズの虹彩を作って、vtfに変換し、qc上で全く同じ値で記述しても、白目の上に黒目がたくさん見える、という奇妙な現象に遭遇します。これを回避するには余白を画像にこしらえてやり、その上でqc上の数値を変えて下さい。
Rigをモデルにエンベロープするには?
-
ウェイトマップを流用する方法と、自分で作成する方法があります。自分で作成する場合は・・・
- モデルをObject選択
- Animateツールバー Deform → Envelope → Set Envelope
- Scene Explorer上のValveBiped階層下Envelope_DeformersをPick後、右クリック
Envelope_Deformersとは、モーション(Sequenceの事)に関係のあるボーンだけのグループです。逆に言うと、モーションに関係のないボーンやNullなどを含むのは好ましくありません。あらかじめ、こうしたグループが作られていないのならば、自分で作ることもできます。自分で作るには、グループにしたいボーンをタグ付けしておき、EditパネルのGroupボタンを押します。あるいは、ボーンをセレクトし且つポイントした状態で、右クリックして出るプルダウンメニューからAdd to groupを選びます。なお、このグループの名前はなんでもかまいません。便宜上、Envelope_Deformersとしてあるだけです。
[注意] Envelope_Deformersのグループには、下記のヘルパーボーンが欠けていますので、あらかじめグループに追加した上でSet Envelopeしましょう。
ValveBiped.Bip01_L_Bicep
ValveBiped.Bip01_L_Elbow
ValveBiped.Bip01_L_Latt
ValveBiped.Bip01_L_Pectoral ...乳房 Femaleのみ
ValveBiped.Bip01_L_Shoulder
ValveBiped.Bip01_L_Trapezius
ValveBiped.Bip01_L_Ulna
ValveBiped.Bip01_L_Wrist
ValveBiped.Bip01_R_Bicep
ValveBiped.Bip01_R_Elbow
ValveBiped.Bip01_R_Latt
ValveBiped.Bip01_R_Pectoral ...乳房 Femaleのみ
ValveBiped.Bip01_R_Shoulder
ValveBiped.Bip01_R_Trapezius
ValveBiped.Bip01_R_Ulna
ValveBiped.Bip01_R_Wrist
|
Scene Explorer上では、"Object Only"をDisplayするとボーンが見やすくなります。一例としてスクリーンショット(korinの骨の場合)を付けておきます。
forwardと"attachment"のノードに対してはPickをしません。それらはデフォーム用のノードではないからです。また、ValveBiped.Bip01にはウェイトを配分しません。これは集約されるべきノードだからです。
考察: ヘルパーボーンへのウェイト設定ですが、ジオメトリの形状と位置関係によっては、ragdollに歪みを生じさせる原因になります。ですから、ウェイト配分はほとんど行わない場合もアリ・・・なんではないかと思います。ならば、最初からデフォーマとして含まなければ良さそうなものですが、かといって含まないでおくと、コンパイルした際にボーンとして認識されなくなってしまいます。
Lattに関しては、XSI v4.2用のValveアドオンが生成したデフォルトの状態で、Lが右側にRが左側に、という具合にあべこべになってます。これをこのままウェイトをつけてコンパイルすると、脇の下が凹んでいるという、なんとも妙なモデルが出来上がりますので、正しい名前にリネームすべきでしょう。
コンパイルしたモデルをhlmv.exeで見て確認しましょう。身体全体、もしくは、腰から下が90度傾いていたりしたら、Default Rigをエンベロープしコンパイルすると、hlmv.exeで見た時に腰がヘン(Sequenceを実行させると横になる)を参照して矯正を施します。
ウェイトマップを流用する
- 出来合いのモデルから、Valve addonのExport Weightを使って、ウェイトマップをファイルにしておく
- 自作モデルを開き、Import Weightで「ファイル化したウェイトマップ」を適用する
この場合、既存のSequenceとは異なる骨構造になるので、矯正が必要。Default Rigをエンベロープしコンパイルすると、hlmv.exeで見た時に腰がヘン(Sequenceを実行させると横になる)を参照。
チュートリアルに書いたように、既存のAlyxをデコンパイルし、(ウェイトマップと同時に)nullリグを抜き出して使うと、腰がヘンにならず、矯正しなくても済みます。ただし、nullリグにはスケルトンもコントローラーもないので、後の行程でアニメを手付けしたいと考えている場合には不向きです。
ウェイトの調整
- 「SOFTIMAGE|XSI v.4.0 日本語チュートリアルガイド (HTML)」の /tutorials_JP/tut1/character5.html が詳しい。
フェイシャル・アニメーションを作る(シェイプキー)
- 「SOFTIMAGE|XSI v.4.0 日本語チュートリアルガイド (HTML)」の /tutorials_JP/tut1/anim29.html が詳しい。
※Mod Toolではシェイプキーを作っても出力できないので無意味です。
具体的には:
- shape modelingモードにしておきます。
- 初めに、顔の頂点ポイントを選択して、表情の為のクラスタを作る。口の中の頂点ポイントは含まない。
- この「顔クラスタ」を選択して、ValveSource → Shape Tools の Init Shape Keys ボタンを押す。
※ フレームが40個作られました。ここまでの手順は最初に一回行うだけです。
- Proportional modeling(propボタンか、Alt + 2)の状態にする。
propボタンを右クリックでウィンドウが開き、Proportionalが影響する度合い(Distance Limit)を設定できます。
- 「顔クラスタ」を選択した上で、次のフレーム(最初は1)を選ぶ。
- 頂点ポイントの移動ツール(ショートカット M)を使って、作業を行う。
- 表情が完成したら、 Animate Toolバーの Deform → Shape → Save Shape Key を実行する。
- 手順 5 から 7 を繰り返し、フレーム34まで行う。
どのフレームにどの表情を作るべきかはCharacter Facial Animation Shapekey Set:jpに述べられています。
- 今度は「下アゴの歯」のクラスタを作り、(口が開き、下の歯が移動する必要があるフレームに関して)同じ作業を繰り返す。
元の説明文はこちら(ただし、ややこしい説明の仕方だと思います)。
XSI v5以降ではShape Managerを使うと便利。
- 表情を付けるべき「顔面」の頂点ポイントをタグ付けする。
- Shape Managerを開く。
- Edit → Cluster → New from selected points
- Resultの下に、Point - default - ShapeKeyが出来た。
- 今度は「下の歯」の頂点ポイントをタグ付けする。
- Edit → Cluster → New from selected points
- Resultの下に、Point1 - default - ShapeKey1が出来た。
(SDK_Male_reference.scnに倣うならば、)Scene Explorer上で、先程作った最初のポイントクラスタをanim_face、二つ目をanim_teeth_lowerとリネームすればよい。
- ShapeKeyとShapeKey1を雛形として複製し、Character Facial Animation Shapekey Set:jpに則って、表情のライブラリを作っていく。
「下の歯」が動くのは、30〜34フレーム。31と32は同じもの、33と34は同じもの、でかまわない。
- 全部揃ったら、「アニメート」タブに切り替えて、キーを設定していく。
シェイプキーを失わない方法
- http://developer.valvesoftware.com/wiki/Making_Changes_to_Your_Character_Modelが詳しい。
C-SEC: MOD Communitiesの ナレッジベース -> Source SDK ドキュメント 日本語版 -> モデル: 自作キャラクタモデルの修正に、翻訳があります。Valveアドオンを使えば、シェイプアニメーションを保ったまま、頭部と体の合体ができるとのこと。(ただし、エンベロープ設定は引き継げません)
- シェイプアニメーションを持ったオブジェクトを最初に選択し、マージしたいオブジェクトを二番目に選択する
- ValveSource → Shape Tools → Merge Freeze
[追記] v5.11 Foundation版において、ValveSource.5.1.xsiaddon(v5.11用)とValveSource.0105.01.xsiaddon(旧版)とで、この機能を試してみましたが、「予期不能な失敗」というエラーになりました。この機能は、本来、GATORが有しているものですから、Foundation版では使えないのかもしれません。・・・ガックシ・・・
※Mod Tool v6ならば、GATORに関する機能制限がないので、できるはずです。
Foundation版では、以下のようにすると、この問題をなんとかクリアできます。
- シェイプキーの再利用 [参考]
- 例えば、完成済の頭部に、新しく作ったボディを合体させたい場合。「Create: Poly.Mesh → Merge」を行うと、(Foundation版では)元からあったシェイプ・アニメーションが失われてしまう。
この際、Merge Meshesオプションで Deleteボタンを押す前に、新規の"polymsh"へ対して、「ポイントクラスタ名」と「ポイントクラスタの中身」をドラッグ・アンド・ドロップしてやればよい。
- Materials,UVs,VertexColors,WeightMapsに関してはMergeできるので行う。Deleteはまだしない。

- オリジナルのanim_faceとanim_teeth_lowerの二つを選択し、"polymsh"にドラッグ・アンド・ドロップ。
- "polymsh"のClusters階層下にanim_faceとanim_teeth_lowerが出来るが中身は無い。
- オリジナルのanim_faceの中身を複数選択して、"polymsh"のanim_faceにドラッグ・アンド・ドロップ。

- 同様に、オリジナルのanim_teeth_lowerの中身を複数選択して、"polymsh"のanim_faceにドラッグ・アンド・ドロップ。
- "polymsh"のMergeMeshesオペレータをダブルクリックすると、1. のMerge Meshesオプションが開く。
- 今度はDeleteを押す。

ただし、これだけでは、Mixer_Shape_TrackのClip Listはコピーできないと思う。したがって、34個のキー・フレームは再度作り直す事になるが、「Mixer-Sources-Shape」の中身を再利用できる。
キー・フレームの作り直しには、Shape ManagerやAnimation Mixer等を使う。
指のポーズをつけるには?
- 指にもボーンがあるので、基本的にボーンによるデフォームでアニメーションを付けます。例えば、XSI付属の標準Rigの場合、指の親ボーンを選びショートカットF3を押すと、指に関するシノプティック・ページが開くそうです。生憎と、Valve default rigには、それらしきものが用意されておりませんので、自作する事になります。
XSI上でSynoptic Editorを使って、モデルにシノプティックを作成してやります。指に関してプリセットのポーズを作ってやり、シノプティック・スクリプトで制御を関連付ければいいわけです。こうしたシノプティック・ページを駆使して特定のモーションを作った上で、Skeletal AnimationとしてExportすれば、当然ながら指もふさわしいポーズをします。
指の曲げ具合に関しては、カスタムパラメータを作成し、パラメーションコネクションエディタによってリンクすればよさそうです。
また別の方式として、ジオメトリによるアニメーションで指を動かす事も可能です(表情を作ったときのシェイプアニメーションと同じやり方です)。この場合、HLMV.exe上でコントロール可能な事が利点ですが、表情と同様にflexでの操作となります。Gmodでポーズを付けて遊ぶ際には、この方式が好まれるようです。
Valve Guideの右手を修正する
-
v4.2(v5、v6)用Valve AddonのValve Guideは、親指を除く右手指4本に関する親子関係が間違っていて、この部分のガイド(立方体)を動かすと、破綻が生じてしまいます。
右手の部分をSchematicで見ると、右図のようになっています。
(クリックして拡大してください)画像右側にある左手と同じ構成になっていればよいわけなのですが、右手では、RHandEndの子になるべき指4本がRHandの子になっています。
ですから、親子関係を正すべく、Explorer上で指4本をブランチ選択してやり、RHandEndにドラッグ・アンド・ドロップします(左図)。
こうして修正しておけば、Valve Guideで右手指の位置を変更することができ、Create Rig from Guideを行っても、正しい指ボーンが出来上がります。
FemaleのDefault Rigを読み込むには(v5、v6用Valve Addon)
- V5以降用のValve AddonではFemaleのDefault Rigを呼び出せず、代わりにMaleが出ます。これは、 C:\users\[ユーザー名]\Softimage\XSI[バージョン]\Addons\ValveSource\Application\Plugins\ValveSourceTools.js の
oSubMenu.AddCommandItem( "Female Rig", "vstCreateMaleRig" );
|
vstCreateMaleRig を vstCreateFemaleRig に直すことで解決できます。
ポーズの格納
- Valve Guideを利用してCreate Rig from Guideすると、カスタムRigを作ることができます。このカスタムRig(ValveBiped)をエンベロープしたモデルは、XSIの標準リグと同じようにポーズを取らせる事ができます。基本のポーズや、貴方が作ったポーズは次のようにして格納できます。
- ValveBipedをブランチ選択(マウス中ボタンクリック)します。
- Animateツールバーで、Create → Skeleton → Store Skeleton Pose
- ValveBiped内に以下のようなMixerノードができます:
ValveBiped - Mixer - Source - Animation - StoredStaticPose(ValveBiped)
|
StoredStaticPoseは好きな名称に変えてもかまいません。同様な手順で、ローカルな階層だけを選択し(例えば、手と指だけ、というように)、ポーズを格納する事もできます。こうして作っておいたポーズにリセットするには以下のようにします。
- Mixerノード下のポーズ(例えば StoredStaticPose(ValveBiped) )を選びます。
- Animateツールバーで、Create → Skeleton → Apply Skeleton Pose
腕と脚のポーズ付けでフリップを防ぐには
- 例えば、脚を頭上に振り上げるポーズを取らせようとすると、脚が腰を越えた辺りで、脚全体が90度横倒しになってしまいます。これが解説書で触れられているフリッピングというものです。
これを防ぐ為に、あらかじめ、アップベクターコンストレイントというものが用意されています。これを使うとチェインの方向を拘束する事ができます。つまり、脚を頭上に振り上げるポーズを取らせる事が可能になります。
ValveBipedではデフォルトでこのコントローラーが隠れているので、これを出現させましょう。
ValveBipedをブランチ選択(マウス中ボタンクリック)して、メニューバー → Display → Unhide All Objects すると、腕と脚の側に小さい球体が現れます。これが腕と脚のひねり動作を司るコントローラーです。
Scene Explorerで参照すると、ValveBiped下の次の場所にあります。
- LegRollControlParent_L - LegRoll_L
- LegRollControlParent_R - LegRoll_R
- HandContrlPosParentL - ArmROllL
- HandContrlPosParentR - ArmROllR
|
このコントローラーで(Rotateの)X軸を動かすと脚(または腕)のチェインの方向を拘束できます。
実際に動かしてみると、腕のアップベクターコンストレイントでは、キャラクターモデルの背面にあるピラミッド(黄色い辺で構成された透明のもの)が追随して上下するのが分かると思います。同様に、脚のアップベクターコンストレイントでは、キャラクターモデルの腰付近にある小さい立方体(黄色い辺で構成された透明のもの)がコントローラーの角度に追随して動きます。
今度は逆に、キャラクターモデルの脚や腕を上げた状態にして、このコントローラーで(Rotateの)X軸を戻してみましょう。追随して、脚または腕が横倒しになる様子が分かると思います。
Rig from Guideでエラー
- Valve Guideを利用してCreate Rig from Guideすると、カスタムRigを作ることができます。ところが、このオペレーションの最中にエラーが発生して、作業が完了しない場合があります。そんな時は、下記をチェックしてみましょう。
- Scene内に"sphere"という名称のオブジェクトがある → sphereはデフォルトの名称なので、名称を変えましょう
- Layerで、Valve Guideを「選択不可能」状態にしている → 選択可能状態にしてみましょう
Physboxの作り方
- PhysboxはSourceエンジン内の物理制御で用いる「壁」に相当します。Physboxが仮想の障壁となり、物理属性が与えられたアイテムはそこで反発といった挙動ができるのです。この壁が無いと、アイテムはめり込んだり、素通りしてしまいます。
キャラクターの脚がインバース・キネマティックによって、がらくたが積み重なったデコボコの地面でも、自然に歩く事ができるのもPhysboxのおかげです。もしPhysboxがなかったなら、キャラクターの足裏は、がらくたが存在しないかのように、アイテムを素通りして接地してしまう事でしょう。
XSI上でPhysboxを作る際の決まり事を上げておきます。
- キャラクターの基本的なPhysboxは 頭部、胴体上半分、胴体下半分、上腕(左右)、下腕(左右)、手(左右)、腿(左右)、臑(左右)、足(左右) の全15パーツで構成される。
- ウェイト設定はパーツとBoneが一対一で100%となる。ValveBipedでは次のように対応する:
頭部 = Bip01_Head1
胴体上半分 = Bip01_Spine2
胴体下半分 = Bip01_Pelvis
左上腕 = Bip01_L_UpperArm
左下腕 = Bip01_L_Elbow
左手 = Bip01_L_Hand
左腿 = Bip01_L_Thigh
左臑 = Bip01_L_Calf
左足 = Bip01_L_Foot
右上腕 = Bip01_R_UpperArm
右下腕 = Bip01_R_Elbow
右手 = Bip01_R_Hand
右腿 = Bip01_R_Thigh
右臑 = Bip01_R_Calf
右足 = Bip01_R_Foot
|
- ポリゴンの面は内向き(裏返し)になっているので、ゲーム画面では表示されない。
- テクスチャは貼らないが、SMD出力時にPhysbox指定する事により、データ的にはphy.bmpという仮想テクスチャが貼られた事になっている。
- \sourcesdk_content\hl2mp\modelsrc\humans_sdk\Male\ にある人体用Physboxの名称はRagdoll.smd。また、ragdoll.qciで、関節の動きに関する制限を設定している。
Chellやsource 2007 shared models.gcfに含まれているAlyxのデコンパイル
- PortalのプレイヤーモデルChellとEposode OneのAlyxはそのままでは、Cannonfodder's MDL Decompilerでの読み込みに失敗します。ところが、chell.mdlファイル冒頭のID5文字目(バイナリの文字列)
を
のように、ドット" . "(16進で2E)をコンマ" , "(16進で2C)に変更するだけでロードができるようになります。source 2007 shared models.gcfに含まれているAlyxの場合は、" - "(16進で2D)を" , "(16進で2C)にする事で同様にデコンパイルが可能になります。
| A |
対象を画面内に大きく映し出す |
| C |
回転ツール |
| E |
エッジ選択(矩形範囲) |
| F |
選択部分を画面内に大きく映す |
| H |
選択対象を隠す(トグル) |
| I |
エッジ選択(レイキャストで一本ずつ) |
| M |
選択状態に関わらないトランスフォーム(移動) |
| S |
視点変更 マウスボタン(左/中/右)押し下げ状態で利用 |
| T |
ポイント選択 |
| U |
ポリゴン選択(レイキャストで面単位) |
| V |
マニピュレーターを使った、選択対象のトランスフォーム(移動ツール) |
| X |
スケールツール |
| Y |
ポリゴン選択(矩形範囲) |
| Z |
画面の奥行き感の変更 中ボタンでズームイン、右ボタンでズームアウト |
| 1 |
Modelツールバー |
| 2 |
Animateツールバー |
| 3 |
Renderツールバー |
| 8 |
Scene Explorer |
| F7 |
矩形選択 |
| F8 |
投げ縄選択 |
| .(ピリオド) |
同じコマンドの繰り返し |
| Ctrl+Shift+A |
全選択の解除 |
| Ctrl+E |
ウェイト・エディタ |
| Alt+7 |
テクスチャ・エディタ |
- Windows Live OneCare PC セーフティのクリーンアップ スキャンをかけると、XSI Mod Toolが起動しなくなる
- 本来、不要なレジストリが削除されるのだが、XSI Mod Toolにとっては、必要なレジストリがごっそり削除されてしまう。ゆえに、その後はXSI Mod Toolが起動できない。
この場合、「システムの復元」をして以前の状態に戻すか、さもなければ、改めてXSI Mod Toolを再インストールするしかない(ただし、アンインストーラーも起動しなくなる為、再インストールに不都合なレジストリやフォルダを手動で削除せねばならない)。
私も酷い目に遭いましたヨ。
解決法: スタートメニューのSoftimage Products → Softimage XSI 4.2 ModTool → Command Prompt を実行し、(Dos窓上で)runonce.batを実行すると、XSI Mod Toolに関するレジストリが再設定されます。この件に限らず、レジストリが原因で正常に起動できなくなった場合には、runonce.batが有効です。
XSI 6のライセンスを取得するには?
- v5、v6、v7のXSI Essentials、XSI Advancedのユーザーは日本代理店を通じてライセンス(再発行)を申請できます。
XSI 6.02 Foundation のユーザーはライセンス再発行の申請をAutodeskに直接行わなくてはいけません。例えば、Autodesk Serial Numberの欄に何を記入するべきかこれまで説明がありませんでしたが、ようやく日本語解説のページがSOFTIMAGE日本公式ページに用意されました。
抜粋すると・・・
- License Manager→Manage Key Database→Generate Request Codeし、Save
- License Activationフォームに以下を参考に、半角英数及び英文で記入
| Company | 個人名または会社名 |
| Name | 申請者の氏名 |
| Contact Email | 返信先メールアドレス |
| Order Number | 代理店で注文時の受注番号 |
| Reseller name | Daikin、Borndigital、CGiN など |
| Autodesk Serial Number or Registration Code or dongle ID or SLP ID | 購入時Foundation付属のレジストレーションコード (赤いプラスティック板に記載されているもの) |
| Request Code File | 1.でSaveしたファイル |
| Issue Type. | あり得るのは、おそらく次のいずれか |
●My system failed and I needed to reinstall the OS. Now my Host ID has changed and my license no longer works. I need a license for the attached request code. (OSの再インストールをしたので)
●My system is being decommissioned. I need to transfer my license to the attached request code. (マシンを新調したので) |
| Product & Quantity. | ☑ Foundation x "1" |
- License Manager→Manage Key Database→Install Keysし、メールで発行されたファイルを参照
- License Manager→Start Server
(以下はライセンス・マネージャーがオンライン稼働していた時(2009年3月以前)の説明)
xsi wikiのGetting your XSI 6.0 Licenseに説明があります。v5.0 Foundation 日本語版(v6 ダウンロード権利付)ユーザーの場合は、"Customers Who Purchased the Foundation 6.0 Upgrade"の方法で良さそうです。
- スタート → すべてのプログラム → Softimage Products → License Manager を実行
- Stop Server のボタンを押す
- Get License ボタンが押せるようになる
- Login and Registration というウィンドウが開く(参考画像)
- Download License ボタンを押しても、評価用のままだと思うので・・・下へ続く
- Activated License のレ印を解除
- Registration Code Activation に記入
Username は、Softimage.comにログインする時のメールアドレス
Password は、Softimage.comにログインする時のパスワード
Registration Code は、Foundation日本語版パッケージに入っていた赤いプラスチック板に書いてある英数字
- すぐ隣の Activate ボタンを押す
で、良いのじゃないかな?
|