2008/9/2 火曜日

車を作ろう? 車体のダメージ、タイヤのダメージ

Filed under: Armaアドオン製作支援,  ─車編 — gachopin @ 14:43:19

車体とタイヤで、ダメージでテクスチャの色が変わり、
タイヤを撃つと機能させなくすることができます。

まず、hitpointLodに車体周りに点をおき、body_hitと名付けました。
タイヤはleft_back_wheel_hit、right_back_wheel_hit 等4つ名付けました。
car51.JPG

モデルLodで、車体にダメージがあったときに変更する部分をbodyと名付けました。
タイヤは既にアニメ用に名付けたものを流用します。
car52.JPG

壊れたときのテクスチャはBISのテクスチャを流用してもよいですが、今回はテクスチャにノイズをかけたりして作成。
car53.JPG

あとはconfig.cppで定義するだけです。HitBody、HitLFWheel、HitLBWheel、HitRFWheel、HitRBWheelを定義します。
一例を載せておきます。

class HitLFWheel {armor=0.15;material=-1;name=”left_front_wheel_hit”;visual=”left_front_wheel”;passThrough=0;};
name= はhitpointで名付けた点の名前、visual= はモデルLODのタイヤの名前です。

同じくconfig.cpp内でテクスチャの定義(class Damage)を書きます。

ここから手抜き方法。
ここで本来ならmat[]=の部分にrvmatを指定するのですが、
tex[]={“壊れる前のテクスチャ”,”壊れた後のテクスチャ”};
と書きます。rvmatなら壊れた後のテクスチャのマテリアル等を細かく定義できますが、
私は正直壊れたモデルに丁寧な設定をしたくないのです。
この定義だけでダメージを受けたときテクスチャが壊れた物に換わってくれます。

class Damage
{
tex[]={“\mycar\tex.pac”,”\mycar\tex_destroy.pac”};
mat[]={};
};

また、完全に壊れたら人とドアが消えるようにしたいので、まず乗員のモデルにdamageHideと名付けました。
「壊れたら消える」はアニメとして定義するので、model.cfgのCfgModels内、class AnimationsでdamageHideを定義します。

そして、CfgSkeletonsのskeletonBones[]=に”damageHide”,”” を追加します。

次にドア。ドアは既にアニメの定義がされているので、上記のように定義すると動かなくなってしまいます。
そこでドアは個別にanimationsクラスの定義をします。

人とドアが消えるanimationsクラスの定義はこちら。

class damageHide
{
type=”hide”;
source=”damage”;
selection=”damageHide”;
};
class damageHide_r1 : damageHide {selection=”door_r1″;};
class damageHide_l1 : damageHide {selection=”door_l1″;};
class damageHide_r2 : damageHide {selection=”door_r2″;};
class damageHide_l2 : damageHide {selection=”door_l2″;};
class damageHide_rear1 : damageHide {selection=”door_rear1″;};
class damageHide_rear2 : damageHide {selection=”door_rear2″;};

これで完成、です。

コメントはまだありません »

コメントはまだありません。

この投稿へのコメントの RSS フィード TrackBack URL

コメントをどうぞ

HTML convert time: 0.147 sec. Powered by WordPress ME