TRLE Level BOX
This Site is an unofficial site by TRLE fan.

TRLE講座

■カスタムオブジェクト作成(その3)

ここではカスタムの動的オブジェクト作成について書いています。
前項を理解した上での説明ですので、分からない部分は前項を参照してください。

AnimationEditorは強制終了することが多いので、アニメの自動再生機能は停止し、こまめにセーブして、WADMergerを再起動後、作業を続行してください。
wadは2つほどバックアップをとっておいたほうが良いでしょう。
再起動することで、強制終了を少しでも減らすことができますし、変更したはずの設定が再起動しないと正常に表示されないというバグがあるためです。

動的オブジェクトのオブジェクト名を変更する場合

カスタム動的オブジェクト作成では最も簡単な方法です。
静的オブジェクトではWADMergerで名前を変更しても意味がありませんが、動的オブジェクトはWADMergerで名前を変更するだけで全く新しい動的オブジェクトに変更できるものがあります。
(例えば、SASをTROOPに変更するとか。)
色々なオブジェクトを試してください。

動的オブジェクトを移動する場合

移動の説明の前に、AnimationEditorのNo AnimationとAnimation0の違いについて説明します。
trle704_01.jpg
「No Animation」は個々のメッシュは移動できても、メッシュの回転はできません。
ただし、Mesh0だけは移動できません。Metasequoiaでしか移動できません。
「No Animation」でメッシュを移動させると他のAnimationにも影響が出るので注意してください。
主に、メッシュが複数ある場合に使用します。
trle704_02.jpg
「Animation0」は個々のメッシュの回転はできても、メッシュの移動は全体でしかできません。
「Animation0」でオブジェクトを移動させても他のAnimationには影響が出ません。
主に、メッシュが一つしかない場合やアニメーションを作成する場合に使用します。
そのためメッシュを移動させる場合は

  1. AnimationEditorの「No Animation」から移動させる。
  2. AnimationEditorの「Animation0」から移動させる。
  3. Metasequoiaでメッシュを移動させる。

の3つの方法があります。
ここでは、使用頻度の高いAnimationEditorを使う方法で説明しますが、AnimationEditorではなくMetasequoiaで移動させないと正常に機能しないものもあります。
状況に応じて移動方法を使い分けてください。
なお、Metasequoiaでの移動方法は「Metasequoia講座」などを参照してください。

AnimationEditorのNo Animationで移動させる手順。

  1. WADMergerで変更する動的オブジェクト(説明上ANIMATING2とします。)のみのwad(説明上New.wadとします。)を作成します。
  2. AnimationEditorを起動し、ANIMATING2のNo Animationでメッシュを選択。XYZ座標を変更してメッシュを移動させます。
    メッシュの移動を細かく指定したい時はMeshtreeEditorを使用してください。
  3. New.wadを保存して実際にANIMATING2がゲーム内で移動されているかどうか確認してください。
    移動した位置に問題がある場合は、手順2を繰り返します。
    問題なければ必要に応じてColisionを変更します。

AnimationEditorのAnimation0で移動させる手順。

  1. WADMergerで変更する動的オブジェクト(説明上ANIMATING2とします。)のみのwad(説明上New.wadとします。)を作成します。
  2. AnimationEditorを起動し、ANIMATING2のAnimation0でオブジェクトを選択。XYZ座標を変更してオブジェクトを移動させます。
  3. New.wadを保存して実際にANIMATING2がゲーム内で移動されているかどうか確認してください。
    移動した位置に問題がある場合は、手順2を繰り返します。
    問題なければ必要に応じてColisionを変更します。

動的オブジェクトを回転する場合

回転の説明の前に、AnimationEditorのNo AnimationとAnimation0の違いについて説明します。

「No Animation」は個々のメッシュは移動できても、メッシュの回転はできません。
「Animation0」は個々のメッシュの回転はできても、メッシュの移動は全体でしかできません。
動的オブジェクトはMesh0に連結しているため、Mesh0を回転させることで他のメッシュも回転します。

その上回転には、回転の中心が存在します。
回転の中心がズレているとどんなにAnimationEditorで正確な角度を設定しても、上手く回転しません。
回転の中心はMetasequoiaの原点(XYZの座標が全て「0」になる所)になるので、AnimationEditorで上手く回転が出来ない場合は、Metasequoiaで回転の中心を変更する必要があります。
そのためメッシュを回転させる場合は

  1. AnimationEditorの「Animation0」から回転させる。
  2. Metasequoiaで回転させる。
  3. Strpix(REV13以降)で回転させる。

の3つの方法があります。
ここでは、使用頻度の高いAnimationEditorを使う方法で説明しますが、AnimationEditorではなくMetasequoiaで回転させないと正常に機能しないものもあります。
状況に応じて回転方法を使い分けてください。

Metasequoiaでの回転方法は「Metasequoia講座」などを参照してください。
Strpixでの回転は「Edit」メニューの「Mirror」で行いますが、Metasequoiaの鏡像作成と同じなので細かい角度までは指定できません。
また、回転の中心も変更できません。
単純な回転を行いたい時に使用してください。

AnimationEditorで回転させる手順。

  1. WADMergerで変更する動的オブジェクト(説明上ANIMATING2とします。)のみのwad(説明上New.wadとします。)を作成します。
  2. AnimationEditorを起動し、ANIMATING2のAnimation0でメッシュを選択。XYZの角度を変更してメッシュを回転させます。
    複数のメッシュに別々の回転をさせたい場合は、一つずつ回転させてください。
  3. New.wadを保存して実際にANIMATING2がゲーム内で回転されているかどうか確認してください。
    回転した角度に問題がある場合は、手順2を繰り返します。
    問題なければ必要に応じてColisionを変更します。

動的オブジェクトにメッシュを追加する場合

メッシュを追加するよりもサンプルレベルや製品版からメッシュが追加されているもの(COMPASS_ITEMは2個、HAIRは6個といった具合。)
を流用し、メッシュを差し替える方が簡単だと思いますが、メッシュを追加したい方のために一応説明しておきます。
先述したメッシュの重複をなくすためメッシュを追加する必要があるかもしれませんし、WADMergerのMeshEditorにはバグがあるので、MeshtreeEditorとの併用で説明します。

  1. Metasequoiaで追加したいメッシュを作成します。
    または、既存のオブジェクトから流用します。
    メッシュの作成/変更については、Metasequoiaや「Metasequoia講座」などを参照してください。
  2. 作成/変更したメッシュをdxfファイルへ変換します。変換したdxfファイルは説明上Change.dxfとします。
    dxfファイルの出力については、Metasequoiaを参照してください。
  3. WADMergerでメッシュを追加したい動的オブジェクト(説明上ANIMATING2とします。)のみのwadを(説明上New.wadとします。)作成します。
  4. StrpixでNew.wadを開き、「Add New Empty Mesh」を選択します。
    trle704_03.jpg
    追加されたメッシュ番号(メッシュの一番最後の番号になります。)にChange.dxfファイルをImportします。
    追加したメッシュに仮にでもテクスチャを貼ってNew.wadを保存します。
    (WADMergerでのエラー対策のため。)
  5. AnimationEdiorでANIMATING2を開きMeshEditorでメッシュの階層を表示させます。
    trle704_04.jpg
    プルダウンからExtra Mesh 0を選択し、『Add』をクリックしてメッシュを既存のものに連結し、New.wadを保存します。
    上手く追加できないときはAnimationEditorのアニメ自動再生機能をオフにしたり、「No Animation」ではなく「Animation0」で試してください。
    または、手順3からもう一度試してみてください。
    それでもダメな時はわかりません。
  6. MeshtreeEditorを起動し、保存したwadを開きます。連結したばかりのメッシュはopCode、dx、dy、dzが全て0のはずです。
    trle704_05.jpg
    そうでない場合は0に修正してNew.wadを保存します。
  7. 既存のメッシュに上手く追加されている場合は次の手順に進んでください。
    そうでない場合はメッシュを移動/回転させます。
  8. ゲーム内で正常に表示されるか確認します。表示されない場合は、手順7を繰り返します。
    場合によってはメッシュの繋がりも変更します。
  9. 最後に必要に応じてテクスチャやColisionを変更します。

メッシュの重複について。

先述したメッシュの重複の通り、Strpixで一つしか追加されていないからと追加し続けると、AnimationEditorで見たとき驚くことになります。

MeshEditorのバグについて。

WADMergerのMeshEditorのバグに、メッシュの連結でメッシュのXYZ座標がおかしくなってしまうというものがあります。
そのため、複数メッシュを連結する場合はまとめてメッシュを連結してからその後でMeshtreeEditorで確認(必要なら修正)してください。

動的オブジェクトからメッシュを削除する場合

  1. WADMergerで変更する動的オブジェクト(説明上ANIMATING2とします。)のみのwad(説明上New.wadとします。)を作成します。
  2. AnimationEditorを起動し、MeshEditorでメッシュを選択。『Delete』をクリックします。
    エラーが表示されて削除できない場合は、MeshtreeEditorでエラーが表示されていないか確認してください。
    エラーが表示されている場合は、エラーがなくなるまでopCodeを変更します。
    それでも、削除出来ない場合はよくわかりません。AnimationEditorのバグではないかと思います。
  3. New.wadを保存します。
  4. MeshtreeEditorを起動して、ANIMATING2を開きメッシュの繋がりに問題がないか確認してください。
    問題があればエラーが表示されるので、opCodeを変更して修正してください。
    TR Wad Reorganizerでも削除が出来るようです。

静的オブジェクトを動的オブジェクトに変換する場合

前項と、ほぼ同じ手順です。
Export先が動的オブジェクトになり、AnimationEditorでの移動、回転作業が場合によっては必要です。

動的オブジェクトにメッシュを流用(または自作)する場合

前項と、ほぼ同じ手順です。
変更前のオブジェクトが動的オブジェクトに、Export先が動的オブジェクトになり、
AnimationEditorでの移動、回転作業が場合によっては必要です。