ネリスさん備忘録

主にUE4の備忘録を残すよ!

【GGJ】GoogleDriveでSVNを利用する方法について【SVN】

GGJでゲーム作ってきました。ネリスさんです。

 

短期のチーム制作で問題になりやすいこととして
お互いの作業内容のマージ作業がありますが
他のチームは主にギガファイル便を利用した手動マージを行っている様子でした。

 

作業したデータを上げてもらい、それをDLして手動でマージする…
不可逆な状態でそれをすると作業、あるいはマージ自体にミスがあった場合
最悪詰みになるので怖いですね。

 

それが嫌なので今回SVNを利用してプロジェクトを共有し
コミット、更新を行うことにしました。

 

大まかなメリットとして

  • GoogleDriveはデフォで15GBの容量があるためSVNに耐えうる
  • アカウントを作るのが結構簡単(使い捨ても視野に入る)
  • 外部へのファイルの同期・共有がリンク共有で便利

 

前置きはここまでにして説明していきます

続きを読む

【UE4】GameplayAbilitySystemについての走り書き

GameplayAbilitiesの使い方(セットアップ編) - おかわりのアンリアルなメモ

上記ブログを参考にして移して、理解したことを自分向けに再説明する。

 

C++前提であること

まず、デフォルトでプラグインは入っていないのでプラグインの設定

そのうえで、Build.csに"GameplayAbilities"を追記

 

任意の(ブログではCharacter)クラスに"AbilitySystemInterface"を多重継承させる

 

クラスにAbilitySystemComponentのメンバを追加し、ゲッターも追加

このAbilitySystemがタグ等を管理している本体か

AbilityListと名前が付けられたメンバはスキル一覧のようなもの。

ゲーム起動時にBeginPlayによって登録が行われるとのこと。

作り方によっては後付けもできるんちゃうかなこれ

 

f:id:LunaNelis:20211108031904p:plain

 

Abilityの作成

GameplayAbilityクラスを継承して作成。

ActivateAbilityイベントで始まり、OnEndAbilityイベントで終了する

始めるときにCommitAbilityノードを呼び出して開始し
終了したいときはEndAbilityノードを呼び出す

 

CommitAbilityは後に出てくるEffect等の反映という理解でいいのかな
たしかデータアセットがどうとかの話もあったし、それのリアルタイム反映がコレか

そのへんはここで

UE4 GameplayAbility Pluginについてのメモ - Qiita

 

GameplayAbilityクラスでアニメーションをさせる場合、専用のモンタージュ再生ノードがある

f:id:LunaNelis:20211108033108p:plain

使い方は普通のPlayMontageノードとほぼ同じ

他の要因でこのアビリティをキャンセルされた場合に出てくるノードっぽいのがある

 

ただ、通知が出たときに実行されるノードがないのが大きな違い。

あとで出てくるノードによってこれを補完している。

f:id:LunaNelis:20211108033402p:plain

とにかくアビリティの発動が終わったらEndAbilityして終了

アビリティを作成したら、キャラクターに登録

f:id:LunaNelis:20211108033545p:plain

 

TryActivateAbilityByClassノードでアビリティを実行

f:id:LunaNelis:20211108033617p:plain

トライと書いてある通り、できない状況ならやらないというノード。

できるかできないかはタグで決定。

X.Y.Zの形式で追加できる。

f:id:LunaNelis:20211108033722p:plain

 

ちなみに、SendGameplayEventtoActorノードを使うことで

f:id:LunaNelis:20211108034034p:plain

アビリティのWaitGameplayEventノードにデータをディレイをかけて送ることができる

f:id:LunaNelis:20211108034107p:plain

これを使ってMontageで当たり判定を生成

当たり判定がSendGameplayEventtoActorを実行し当たった対象を送る

送られてきたときにこのノードが起動し、何らかの処理を実行する。といったことができる。



 

とりあえずここまで

 

【UE4】3Dのサイドスクロールアクションゲームを作ろう!【第二回】

lunanelis.hatenablog.com

続きです。

今回は攻撃を実装していきます。

結果的にこうなる

 

youtu.be

 

 目次

  • 弾を作ろう
  • 弾を動かそう
  • 弾を発射しよう
    • - 次回予告 -

 

続きを読む

【UE4】3Dのサイドスクロールアクションゲームを作ろう!【第一回】

今日から週1で更新できるように頑張りマス

 

何の話をするかというと、UE4のサイドスクロールテンプレートをベースにいわゆるロックマンを作ろうという話。
目的は2Dではなく3Dのサイドスクロールなので、早い話が「Mighty No. 9」のようなゲームを作ることが目標とします。
↓これね

f:id:LunaNelis:20210404014634p:plain

最近だとロックマンXDiveとかかな…

f:id:LunaNelis:20210404021203p:plain



第一回はキャラクターの設定編

続きを読む

【UE4】集中線マテリアルの作り方

 

f:id:LunaNelis:20210309034211p:plain

Concentrated line Material > BlueprintUE.com | PasteBin For Unreal Engine 4

 

思い立って作った集中線マテリアルの詳細。

集中線のパターン作って連番アニメーションさせればいいじゃんって言われたらそこまでなんだけど…

値を調整したりノイズ画像を変えれば集中線の間隔を変えられるのでカスタマイズはできるはず、

【UE4】シーケンサとカメラブレンドの訂正

 

lunanelis.hatenablog.com

↑の追記

前回の処理は「カメラカットがない状態」「SetViewTargetWithBlendを行う」事が主な内容だったが、これについて少し訂正を

シーケンサ起動時の設定にカメラカットを無効化するという設定があるのでこれをTrueにしておくと、元のシーケンサの1フレーム目のカメラカットを空白にする必要がなくなる。

f:id:LunaNelis:20210302233719p:plain

そして、シーケンサ終了時のイベント時にDelay0で待機していたが
これはSetDisableCameraCutsを挟むことで待つ必要がなくなった。

f:id:LunaNelis:20210302234128p:plain

 

ちなみにこういう指摘を受けたからです。

 また、自分の紹介した方法はステージギミックの演出として使うのに適しているが、星光さんの実装であるシーケンサのEventTrackを利用した方法はキャラクターの必殺演出に適しているため、ケースバイケースになる。

 

 そっちの作り方は大体↑の通りなので省略!

必殺演出のほうも需要があれば実装、記事にするかな…

 

とりあえず大事なのは、「カメラカットがない状態」「SetViewTargetWithBlendを行う」事。