2020/11/09
今回はAssetStoreで配信されているアセット「X-WeaponTrail」の紹介です。
https://assetstore.unity.com/packages/tools/particles-effects/x-weapontrail-20972
武器を振ったときの軌跡を表示してくれるアセットで、とても見栄えが良くなります。
意外と使われていないようですが、私的にはかなりおすすめで、自分のゲームでも多用しています。
導入と使い方
アセットストア (記事冒頭のURL) からダウンロードします。
有料なのでご注意ください。そこそこお値段するので、セールやクーポンが来るまで待つのも手です。
インポートすると中に「X-WeaponTrail」というプレハブがあるので、これを表示したいキャラクターの子オブジェクトに追加します。
キャラクターのアニメーションに合わせる場合、Armatureの武器の動きに対応するBoneの子オブジェクトとして設定します。メッシュにそのままくっ付けても追従しないので注意が必要です。
このあたりはインポートした中にあるデモシーンを見ると分かりやすいです。
プレハブの子オブジェクトに「StartPoint」と「EndPoint」があるので、これで軌跡の位置と幅を調節します。
それぞれ赤と青の点が表示されるため分かりやすいです。
次にプレハブ自体に付いている「X WeaponTrail」コンポーネントを設定します。
といっても「MyColor」を必要に応じて変えるくらいで、他は初期値で問題ないかと思います。
ここまでできたら再生して武器を動かしてみましょう。
上手く設定できていれば、上のような軌跡が表示されます。
軌跡の表示・非表示を切り替えたい場合
実際のゲームで使う場合、常に軌跡を出しっぱなしにするというケースは少ないですよね。
WeaponTrailクラスのメソッドを呼び出すと表示・非表示を切り替えられます。例えばこんな感じ。
using UnityEngine; using XftWeapon; public class WeaponTrailTest : MonoBehaviour { [SerializeField] private XWeaponTrail weaponTrail; void Start() { // 開始時は非表示にしておく weaponTrail.Deactivate(); } public void StartAttack() { weaponTrail.Activate(); } public void EndAttack() { weaponTrail.Deactivate(); } }
これはサンプルなので、StartAttack()
とEndAttack()
の呼び出し元は割愛しています。実際のゲームに合わせて実装してあげてください。
ちなみに私の場合はStateMachineBehaviour
を利用し、アニメーションの途中でそれぞれ呼ばれるようにしています。
weaponTrail
フィールドの参照はあらかじめインスペクター上から設定しておきましょう。
以下は「攻撃する瞬間にActivate()
」「攻撃を終えた後にDeactivate()
」を呼び出した例です。
こんな感じで簡単に制御できるので、試してみてください。
コメント
はじめまして。
X-WeaponTrailについて調べているうちにこちらへ参りました。
購入して使っているのですが、
どうしても軌跡が出っぱなしで困っています。
公式の方に従ってやってみているつもりなのですが、
うまくいかず・・・
記事も拝見しましたが、もしご迷惑でなければ、
もう少し教えていただけないでしょうか・・・。
X-WeaponTrailについてweb検索やtwitterなどで調べても、
使用している方が少ないようでして・・・。
しろから  2020年8月3日 1:54 AM
しろからさん
コメントありがとうございます。
こちら記事が古くて申し訳ありません。
現時点の最新バージョン(1.4.4)の場合、XWeaponTrailクラスのメソッドから表示・非表示が行えます。
・表示したいとき: `XWeaponTrail.Activate()`
・非表示にしたいとき: `XWeaponTrail.Deactivate()`
なので使用しているクラスにXWeaponTrailのフィールドを作り、インスペクター上から参照を設定してあげた後で、上記メソッドを呼び出す形でいかがでしょうか?
riberunn  2020年8月3日 9:52 AM
りべるん様
お早いお返事ありがとうございます。
私は
デフォルトでは軌跡をオフにし、
剣を振るときのみアニメーションイベントのインスペクターからオンにしようと
考えていたのですが、
まずデフォルトでオフにするのがどうしてもできず・・・
そもそもアニメーションイベントでオン、という認識も間違っているのでしょうか?
プログラミングも含め初心者の質問で申し訳ありません・・・。
しろから  2020年8月3日 4:02 PM
りべるん様
記事に詳しくしていただきありがとうございます。
おかげさまで
軌跡のオンオフができるようになりました・・・!
本当にありがとうございます!
しろから  2020年8月3日 8:47 PM