僕の私のUnrealな日々

UE4のBluePrintを使って小さなギミックを作ったりしてます。ブログを通じて情報共有ができたらなと思います。

自分用記事一覧

物忘れが激しい自分が見やすいように作った記事一覧です。

宣伝です。

第4回ぷちコンで3位をいただきました。

[UE4] 第4回UE4ぷちコン、最優秀賞作品発表! | historia Inc - 株式会社ヒストリア

 

受賞したゲームの実行ファイルです!

unrealbussan.hatenablog.com

 

是非遊んでみてください!

 

2015年に作ったギミックたち - 僕の私のUnrealな日々

 

 

チュートリアル的な奴

UE4:Eventノードを使った簡単なBluePrintの作り方

色々あって悲しくなった記事です。

 

実装編

Widget

 ・タイトル画面でのボタンの設置について

ポーズ画面の作り方

 

VR系

Oculusを使ってMMDに壁ドンしてもらう方法

簡単なOculus(VR)用のメインメニューの作り方

UE4+VR:画面の中心とオブジェクト(アクター)が重なった時にイベントを発生させるブループリントについて 

 

Player側の実装系

一人称と三人称の切り替えのBluePrintの作り方 (New:画像を入れ替えたためノードが少し見やすくなりました。)

カメラを動かした一人称と三人称の切り替えの実装について 

アサルトライフルのブループリントの実装について 

アクターへのターゲットのロックオンのブループリントの実装について 

リロードなどのステートマシンを使用しないアニメーションの実装について 

プレイヤーのKey入力を取得するActorの簡易的な実装

 

スローモーションの実装について

走ってくるゴブリンに物理シミュレートを使って転ばせる方法

 

サウンド系

サウンドの音量とピッチをBluePrintで上げ下げする

 

ギミック系

Gateを使った手動扉の実装について

アクターをマウスを使って回転させる 

ジップラインのブループリントの実装について 

ターザン(ぽい)ギミックを実装する。

 

被破壊メッシュ系

被破壊メッシュを使用してアサルトライフルで壁を壊す。

 

その他

レベルブループリントを用いないカメラの切り替えについて

キャラクターを変えた簡単なローカルマルチの実装について

構造体 実装メモ

メモ:NavMeshを動的にする 

コナミコマンドなどのコマンド入力の実装

:BoxCollisionのスケールをLineTraceでHitしたLocationまで伸ばすBPについて

 

マテリアル系

アクターのフェードアウトの実装について 

ギャグアニメによく使われるフェードアウトの作成 

オブジェクトのアウトラインをM_Highlightを使って光らせる。

 

配布物

:電子ロック 配布あり

TheForestっぽいクラフトのギミックのマクロの配布と使い方

 

BluePrint研究(気になったノードを調べる奴)

Random Point in Bounding Box メモ 

マテリアル研究

水に覆われてる球体について

マテリアル:Rotatorを使用してテクスチャを回転させる時に四隅に出てくる部分を消す 

その他

UE4:アセット購入時に使用できないネット専用クレカについて 々

Chaos of War:2月3月の進捗

 

f:id:Bussan_dayo:20180323204031p:plain

 

どうもです。 引き続き作っています。

 

WebPageを作成しました。

www.chaosofwar.com

 

3Dモデル、アニメーション担当が1人増え、5人になりました。 

 

 この2ヶ月で実装したものは以下の通りです。

サウンドの導入

エフェクト及び銃での攻撃のネットワークテスト

仮ゲームルールの追加

その他いろいろ

 

サウンドSEの導入

通常SpawnSoundAtLocationノードを使用してサウンドを再生するのですが、マルチになるとこれがめんどくさい。そこで色々と検証した結果、サウンドSEのみのBPを作成しました。

f:id:Bussan_dayo:20180323195528p:plain

 

続きを読む

UE4:リッスンサーバーでの通知BPの挙動~足音編~

 

 

最近サウンドを入れ始めました。

 

で、足音をいれるため通知BPを作成し、音を鳴らすことに。

f:id:Bussan_dayo:20180218120354p:plain

 

f:id:Bussan_dayo:20180218121848p:plain

 

 

すると、音が複数回なることに気づく。クライアントを3人で行うとクライアントで歩いた際に4重になって音が聞こえる。

 

調べて見るとデディケートサーバーだとうまくいくらしい。

 

困っているとそこに

 

 

 

てことで相談すると、

アニメーション通知はマルチキャストと同じ挙動になるとおもうので、クライアントからサーバーで実行してレプリケートの仕組みを作るか、各々のローカルだけで再生するための通知を出すかを振り分けたら解決するはずです

 

 なるほど・・・・。

 

続きを読む

12,1月の製作進捗

 

お疲れ様です。

 

 

作ってます。

 

11月から色々とありエフェクトデザイナー、レベルデザイナーの参加で計4人になりました。 ありがたいです。

 

団体のTwitterが出来ました。

 

 

 

エフェクト周りですが、デザイナーが2人になり本格的に作業が進み始めました。

そこで早速求められた物がエフェクト動作をチェックするツールです。

その為パーティクルチェッカーと言うものを作成しました。

 

 

 

動作としてはエフェクトを設定し終了条件を設定、終了後次のエフェクトのスポーン及びなかった場合終了というものです。

 

動作パターンも幾つか作成しました。ただスポーンするだけのエフェクト、直線運動、放射型、ソケット配置型などです。設定を選択肢、終了条件を入れます。例えば何秒後やオブジェクトに当たったらや、終了後何秒後にエフェクトを消すかなど様々です。

 

続きを読む

UE4:コンポーネントに設置したSkeltalMeshのメッシュを動的に変えるとサーバーとクライアントで同期されない

 

 

 

作ってる最中にそういった問題があったので、テストプロジェクトで検証

 

f:id:Bussan_dayo:20180118020702p:plain

 

 

 スケルタルメッシュを設置

 

ジャンプしたら頭の上にあるスケルタルメッシュのMeshを変更したい。

何も考えずに行うと

サーバー側で処理を行っても同期はされない

f:id:Bussan_dayo:20180118021134p:plain

サーバーやクライアント関係なく同期はされない。ということで処理を組んでいく。

 

 

最初サーバーで実行した後にイベントを発生させる

f:id:Bussan_dayo:20180118021428p:plain

f:id:Bussan_dayo:20180118021343p:plain

 この場合だとサーバーにはすべて見えるがとクライアント側だと何も見えていない・・・

 

色々と検証した所、最初の処理をサーバーで実行、それをマルチキャストで拡散し、処理を行う。

 

 

f:id:Bussan_dayo:20180118021905p:plain

 

 

同期が出来た。

f:id:Bussan_dayo:20180118021944p:plain

サーバーとクライアント1の同期、クライアント1とクライアント2の同期も出来ていた。

 

 

的なメモブログ

今後も何かアレば書いていこうと思います。

 

 

------

 

 

11月進捗:ネットワーク、クラフトシステムとスポーン、乗車のマルチ

 

 

てことでやってます。

今月行ったことは

 ・ネットワーク処理の移植

 

 

・クラフトシステム とアイテムのスポーン処理

 

 

・車4人乗り 

 

となります。

 

UIは仮となります。 

 

・ネットワークの移植について

これは以前作成したテストプロジェクトから処理を移植したものです。

 

 

 

 

ただWidgetを作り直して処理を移しただけですが、部屋の作成、検索が動かないだったりしました。部屋の作成検索はエディターを立ち上げたら治ったりと意味不明な部分もありました。部屋が検索出来てJoinも成功したのにレベル移動がされないこともありました。

 

f:id:Bussan_dayo:20171126170131p:plain

 

部屋の作成について

MemberCountに参加人数を設定してAcceptを押すと

f:id:Bussan_dayo:20171126170219p:plain

 

GameinstanceのLaunchLobbyに飛ぶようにしました。CountNumは先程設定した参加人数です。

GameInstanceのLaunchLobby関数内も以下のようになっています。とてもシンプル・・・

f:id:Bussan_dayo:20171126170412p:plain

 

部屋の参加について

Joinボタンを押すと以下のようになっています。

f:id:Bussan_dayo:20171126170546p:plain

 

FindSessionから出たSessionResult配列を一度FindSession関数で処理を入れていますがこれは部屋検索の条件を関数内で行っています。

今回はとりあえず一部屋のみ作成しているのでなので直繋ぎです。

f:id:Bussan_dayo:20171126170720p:plain

 

GameInstanceのJoinServer関数に関しては以下のとおりです。

とてもシンプル

f:id:Bussan_dayo:20171126170841p:plain

 

 その場合はGamemodeの設定でGamoMode>UseSeamlessTravelにチェックを付けると飛びました。このあたりの設定は忘れない方が良さそうですね。

f:id:Bussan_dayo:20171126165959p:plain

 

移動前レベルで設定した衣類に関してはやっかいなのでいつか書きます。

 

 

・ クラフトシステムに関して

 

f:id:Bussan_dayo:20171126171100p:plain

 

 これは持ち物からクラフトできるものをリスト化し、クラフトを行える処理です。

 

基本的に設定方法はテーブルで管理しており、

 これがアイテムのテーブル。

f:id:Bussan_dayo:20171126171212p:plain

 

 そしてこれがクラフトアイテムの作成条件のテーブルです。

f:id:Bussan_dayo:20171126171312p:plain

 

なぜテーブルを分けたかというとリスト化する際に条件を全検索するため処理がかからないようにするためです。あと管理しやすさ。

 

処理に関してですが、画像からわかるように子Widgetを多用しており子Widgetの中に子Widgetを入れてその中に子Widgetを入れていたりして書くにはやっかりなので割愛です。

f:id:Bussan_dayo:20171126171501p:plain

 

・アイテムのスポーンについて

まず置く場所を決めるプレビューActorがあり、位置を決めてるとホストとクライアントが同期されるようになっています。

f:id:Bussan_dayo:20171126171920p:plain

 

f:id:Bussan_dayo:20171126171952p:plain

 

処理に関してはおわかりのとおりです

f:id:Bussan_dayo:20171126172211p:plain

 

プレビュー用

f:id:Bussan_dayo:20171126172249p:plain

 

 スポーン処理

f:id:Bussan_dayo:20171126172327p:plain

 

クライアント側のレプリケーション処理

f:id:Bussan_dayo:20171126172355p:plain

 

作成した関数が多いため詳しくは割愛。いつか気力が出たらきっちり書きたいと思います。

 

・車の乗車下車のマルチ対応

以前作成した実験用のBPは作り直し再度親のクラスを作成しました。

f:id:Bussan_dayo:20171126172713p:plain

 

それを継承した車のActorがこちら

f:id:Bussan_dayo:20171126172809p:plain

 

 

乗車時に乗車キャラをスポーンしてPossessにて操作キャラを変更しています。

乗車時の処理

f:id:Bussan_dayo:20171126173129p:plain

 

キャラスポーン時

f:id:Bussan_dayo:20171126172952p:plain

 

 

 乗車中の処理

f:id:Bussan_dayo:20171126173157p:plain

 

いつか詳しくブログにかければと思います。気力が出れば。

 

 

まだビジュアル周りの事に手を出せていないので早くそっちに行けるようにしたいですね。

 

以上です。

 

 

 

 

進捗報告2

 

 

お疲れ様です。

 

 

今月の進捗を書こうと思います。

 

 

 

 

 

 

 

一応進めてます。

 

一応アニメーション同期周りやダメージ周りの検証を一通り終えたので少しづつ実装を行っています。最近メンタルが崩壊しかけたのでジムに通っているため進みが遅いです。あともう少し仕様を固めないと後々困りそうですね。

 

何か知見が出来たらまた記事にしようと思います。(ただネットワーク周りの説明がしんどいので思っているだけですが。)

 

 

てことで来月も頑張ります。

 

 

※協力してくれる暇人の方募集中です。

アイディア出しのブレインストーミングを一緒にしてくれる方など。

 

以上