ゴマちゃんフロンティア

気まぐれと勢いで作るUnityゲーム開発日記です

「X-WeaponTrail」を使った武器の軌跡について

time 2015/11/03

[2016/04/30]
記事を一部追記しました。

というわけで、文化の日なのでごろごろしているりべるんです。
文化的なことは全くしてないです!
一応、本屋にいって参考書等を読んできたので、それを文化的と捉えるならば・・・といったところです。

20150605_1

今回はAssetStoreにある「X-WeaponTrail」というアセットを使ってみました!
剣などの武器の軌跡をレンダリングしてくれるもので、すごく綺麗な軌跡ができます。

今まではUnity標準であるTrailRendererを使っていましたが、イマイチ使いにくかったり、レンダリングに不満があったりしました。
TrailRendererで軌跡を作るよりは、X-WeaponTrailを使った方がよさそうです。

導入と使い方

AssetStoreから無料でダウンロードできます。
https://www.assetstore.unity3d.com/jp/#!/content/20972

インポートすればプレハブがある上、デモシーンも付いてくるのでとっつきやすいです。
基本的に「X-WeaponTrail」というプレハブを付与するだけでOKです。

shot2ss20151103161523185

キャラクターのアニメーションに合わせる場合、Armatureの剣の動きに対応するBoneの子オブジェクトとして設定します。
メッシュにそのままくっ付けても追従しないので注意が必要です。
マリンパのモデルの場合、上のように「Bone_L_009」の子オブジェクトに設定しました。

プレハブの子オブジェクトに「StartPoint」と「EndPoint」があるので、これで軌跡の幅を調節します。
それぞれ赤と青の点が表示されるため分かりやすいです。

shot2ss20151103160637282

あとは再生して剣を動かすだけ!
設定で変える必要があるのは色くらいで、他は初期状態でも大丈夫な感じです。

shot2ss20151103161243006

通常のマテリアル以外に、歪みが出るマテリアルも提供されています。
重みのある武器でズドンとやる時に使うと味が出るかも。
単に「歪みが出せる」というだけでも貴重ですね。

攻撃時のみ軌跡を表示する方法

簡単な設定で奇跡の表示は出来ますが、現状ではレンダリングを止めることができません。
実際に使う場合は攻撃時のみ表示させることがほとんどです。
ということでちょっと考えてみました!

shot2ss20160430221425374

単純に X-WeaponTrail のプレハブを非アクティブにするだけではダメで、上のように残像が残ってしまいます。
スクリプトのパラメータを弄っても同じでした。

X-WeaponTrail のスクリプトを見ると、初期化時に専用のオブジェクトを生成し、そこで軌跡をレンダリングしているようです。
こいつの有効/無効を切り替えればいけそうです。
Player クラスから Find() するわけですが、オブジェクト名でFindするのは少々厳しそうです。
XWeaponTrail.cs の413行目付近でオブジェクトを生成しているので、そのオブジェクトにタグを設定します。

shot2ss20160430221441984

GameObject.tagに代入すれば動的にタグを設定できることはこれで初めて知ったりします。
タグマネージャに存在しないタグは弾かれてしまうので、予め登録しておきましょう。

あとはPlayerクラスで攻撃中のみアクティブにすればOKです。
単純に setActive() を使います。
AnimatorController を使っているのであればステートのタグで判定すれば良いだけなので、実装部分は割愛します。
以下の記事が参考になると思われます。

【再編集】Unity開発メモまとめ「Animator」

まとめ

短めですが、X-WeaponTrailを使って剣の軌跡を新しくしてみました!
有用なアセットを作成、配布して下さる方には感謝するばかりです。
自分も何か作れるようになってみたいところです。

スポンサーリンク

down

コメントする



PHP

Twitter

イラスト

日記

未分類

ツイッター