Twin Stick Shooter 11
やったこと
発射された玉が敵に当たるとダメージが入るようにする
Blueprint Interface (以降BPIと略す)
特徴
・ポリモフィーズムの実現とカプセル化させることができる
・依存度を減らすことができる(castした相手の情報を知らなくて良くなる)
参考 : もんしょ様
もんしょの巣穴blog [UE4] Blueprint Interfaceを使って依存度を下げる
BPI使い方フロー
①BPIの作成と実装
②呼び出し側の実装
③呼び出され側の実装
①
まずBP Interfaceを作成する
関数パネルで関数を定義する
読み取り専用なので処理は書き込めない
②
そうすると全てのBP内で参照できるようになる
先に呼び出し側の処理を実装しないと、呼び出される側でEventノードとして実装できないので先に呼び出す必要があるみたい
(BPInterfaceを IDamageble というファイル名、関数名をAffectHelth名前で実装するとこうなる)
③
あとは呼び出される側の処理を実装する
呼び出されたいBP内で「クラス設定」欄をクリックすると
詳細パネルが出るので、中にある「インターフェース」項目に先ほどのBPIを追加する
そうすると、BPIの処理を実装できるようになる
ex )
BPIの関数に出力も設定すると、イベントとしては扱われず、次のように空の関数が用意されます
あとはこれを実装すればok
Twin Stick Shooter 9-10
やりました
やったこと
9 ...銃と弾の作成
10 ...9で作成したものをキャラクターにアタッチして、弾を発射
ショートカット
マテリアルエディター
ctl +「V」Vectorノードの作成
ctl +「S」Scalar ノードの作成
ctl +「M」Multiply ノードの作成
前に書いたものもあるけど、忘れてたのでもう一回書いとく
ClearTimerが存在しない(ver4.8で確認)
ClearTimer -> ClearTimer By Handle になっています
使い方はSetTimerByEvent(ByFunctionName)の返り値からハンドルを、引数のノードに渡せばok
改めてArrowコンポーネント便利
座標と方向だけ必要な場合とか(今回でいう銃口)に使えるので
本来であれば、多分ボーン名から座標を取得すると思うけど、UEであればそれがゲームエンジン内で完結してしまうので手間が少なくて変更時にとても楽
ゲームエンジンの強みですね
Twin Stick Shooter 8
やりました
内容
敵キャラクターの作成
・dynamic material instance を使用して色を変える
・簡単なaiの作成
これも今までやってきたことの復習みたいなものなので、説明は割愛
それと僕が触っていたUE4のverは4.8だったので、動画内の関数名が一部違いました
10:00~にある関数ノード名が
「SetTimer」
なものは見当たらず、代わりに同機能っぽい
「SetTimer By FunctionName」
がありました
どちらも、引数に与えられた名前の関数を引数に与えられた時間後に実行するというものみたいです
また、「SetTimer ByEvent」と似たような関数、「SetTimer By FunctionName」も存在し
そちらはカスタムイベントを引数としてバインドし、そのイベントを一定時間後に呼び出すというものでした
Sculptris
てっちゃがSculptrisで3DCG制作を解説してみる動画 ‐ ニコニコ動画:GINZA
前々から気になっていたのでちょっと触る
無料だし
操作説明動画をみていざ作成
まず、ドラゴンっぽい頭
うーん
完成度はお察し
でも形だけならそれっぽい
次はバナナマン日村
初心者作業時間1時間くらいでこんな感じ
思ったよりムズイ
触ってみての感想は、
・ペンタブの操作がメインになるので直観的な操作は楽しい
・直観的な操作とは裏腹に、やりたいことと、操作結果がかみ合わないので凄くもやもやする
・まったく作りこんでいないのに20万ポリゴンとかいくので焦る
・すべて曲線的な表現になってしまうので、ロボットとかに向かないなと実感
これを使えるようにするだけでも時間がかかるなー
でも、なんだかんだで2時間くらい楽しんでました
Twin Stick Shooter 6-7
Twin Stick Shooter part 5
dabura.hatenablog.com
続きやります。前やったのが8月なのか。びっくり。
前にVisualStudioのインストールがめんどくさくてずっとやってなかったけど、つい最近思い出したのでやります。
part4はは解説のみだったので飛ばします
何言ってるかさっぱりでしたが、図を見た感じCharacterBP の話かな?
acotorを継承したpawnを継承して作られてますーみたいなのは図を見てわかったけど、細かいところはパスで
というわけでpart5
今回はC++のコードを書いて、変数と関数を宣言しましょうというチュートリアルwww.youtube.com
マクロにメタデータを指定すると、それに応じた振る舞いを持つ
UCLASS
... メタデータを使用するとクラス自体の使用の仕方について指定できる( ブループリントの変数として使用可能/不可能の設定や、新規ブループリント一覧に乗せる/隠ぺい など )
UPROPERTY
... メタデータを使用するとブループリント側からのアクセスの指定とか、エディターで設定できるようにしたり様々
例えば、UPROPERTY(BlueprintReadOnly, VisibleAnywhere , Category = "BaseCharacter")
であれば
・ブループリント側からは読み込みしかできない
・エディタのプロパティエディタで見れるが、編集はできない
・カテゴリーはBaseCharacter
となる
UFUNCTION
... メタデータを使用すると、ノードに実行ピンを使用させるか、させないか などの設定ができる
例えば、UFUNCTION(BlueprintCallable , Category = "BaseCharacter")
であれば
・実行ピンありの関数であり
・カテゴリーはBaseCharacter
となる
その他
Categiry メタデータ
... ブループリント側から 関数/変数 を指定するときにCategiry で指定した名前で探し出すことができる
完成図