昨日はエフェクト作成の勉強をして、だいたい作り方を覚えて、
startcontentsの中に入っているエフェクトを取り出して、
現在のプロジェクトに適応するまでやりましたが、
今日は、ドカンから発射ボタンを押したところで、エフェクトを動作させるようにしました。
実装するにあたって新しく学ばなければならなかったことがありました。
1.キャラクタが中に入っているドカンを特定する
Bluerprintの関数内にGetAllActorsWithTagという関数があるので、
それを使ってアクターを取得して、爆発エフェクトを起こすようにしました。
idから探すので、コストがかかるみたいですが、Openworldではないから
大丈夫なはず。
idから探すで思い出したのが、パズドラ作っている会社に派遣でゲームプログラムを組んでいるときに、大きな声で「idからオブジェクトを探すのはコストがかかるからやめてください」と怒られていた人がいて、
なんのゲームかはわからないけど、Unityで作ってるんだなと思ったことがあった。(俺はandroidのnativeゲームを作っていた)
そうUnityでもandroidでもobjectをidで探すのはコストがかかるようになってるのでした。
2.customのbluerpintイベントを定義して呼び出す。
チュートリアルだかなんだかで、Blueprintでカスタムイベントが定義できるということを見て、ドカンのBlueprint内にparticleのクラスを埋め込んで、
カスタムイベントでparticleを発動するイベントを呼び出せば、実装できるんじゃないかと思って、カスタムイベントを作ったら、他のBluerprintクラスで
ちゃんと呼び出すことができました。
3.Blueprint内でarray objectを参照する
先ほどのGetAllActorsWithTagはsがついている通り、配列で返ってくるので、
配列をindexで参照するなどの処理が必要でした。
BluePrint内にgetというindex参照できる機能がすでにあるので、
getを使うことにより解決しました。
色々新しいことを学んだけど、ue4のことだけで、何一つとして自分の頭を使っていないのが大きな問題なので、原理を学ぶためには別に勉強しないといけない。
そうしないとただの、ツール使いだわ。
2018/4/1