サードパーソンキャラクターのMaxWalkSpeedの値をボタンを、ゲームパッドのYボタン押す度に変更(速くなっていく)できるようにしています。
この処理はサードパーソンキャラクターのブループリント内に作成しています。
スピードが変わるたびにパーティクルを表示させようと、SpawnEmitterAtLocationでパーティクルを選択し、プレイするとスピードが変わるたびにパーティクルも表示されました。
パーティクルの表示はできましたが、スピードが遅い時にはそんなに問題ないのですが、スピードが速くなるにつれて、パーティクルだけがサードパーソンキャラクターから少し後ろに離れ、取り残されているようになっています。
パーティクルは、サードパーソンキャラクターのにまとわせたいのですが、うまくいきません。
まとわせたいという表現が正しくないかもしれません。
常にまとわせたいということではなく、ゲームパッドのYボタンを押したときに、
ボワッとパーティクルを表示さたいということになります。
サードパーソンキャラクターのMaxwalkspeedが変わってもパーティクルをまとっているようにするには、どのようにすれば良いでしょうか?
「Characterにまとわせたい」という要件であれば、EmitterをCharacterにAttachする、というのが一番楽なやり方になります
SpawnEmitterAtLocation
とは、文字通り「指定した場所にEmitterを発生させる」という処理になります
仮に懐中電灯をEmitterと見立てると、今やっている操作は、懐中電灯のスイッチを入れてその場に置く、ということです
この場合のParticleは、懐中電灯から発生する光になります
パーティクルだけがサードパーソンキャラクターから少し後ろに離れ、取り残されているようになっています。
懐中電灯(Emitter)をその場に置きっぱなしにしていますので、取り残されるのは当然ですね
懐中電灯を一緒に動かしたければ、手に持つのが一番手っ取り早い、というのは想像に難くないと思います
つまり、EmitterをCharacterにAttachすることです
http://api.unrealengine.com/INT/BlueprintAPI/Effects/Components/ParticleSystem/SpawnEmitterAttached/
ちなみに、懐中電灯をON/OFFできるのと同じように、EmitterもON/OFFが可能です
これを駆使すれば、Characterに予めParticleSystemComponentを設定しておけばよく、毎回EmitterをSpawnする必要はありません
参考になれば幸いです
回答有難うございます。
解りやすく説明いただき有難うございます。
懐中電灯をその場に置きっぱなしの状態になっていたので、取り残されているような状態になっていたのですね。
Locationのピンに Get Actor Locationをつなげていたので追従するものとばかり思っていました。
ノードをSpawn Emitter Attachedに変更すると思っていたように、スピードが上がった時だけボワッとパーティクルが発生し横からみてみると、取り残されず追従されていました。
もう1つの方法として教えていただいた、TherdPersonCharacterにパーティクルシステムコンポーネントを追加するという方法ですが、すみません、自分の知識が及ばず理解することができませんでした。
パーティクルシステムをコンポーネントとして追加し、SetVisivilityでON、OFFするということでしょうか?
パーティクルシステムをコンポーネントとして追加し、SetVisivilityでON、OFFするということでしょうか?
概ね合っています
ActivateとDeactivateでON/OFFを切り替えます
回答有り難うございます。
ActivateとDeactivateでON/OFFを切り替えもやってみたいと思います。