僕の私の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:アセット購入時に使用できないネット専用クレカについて 々

UE4:[C++]ActionMappingの取得

アクションマッピングで設定したキーをC++で呼び出します。
色々と調べながらなのでアレかもしれません。動きはしました。
BPに慣れすぎるとコンパイル時間が長く感じますね。効率が悪い。


input.h

private:
	UInputComponent* InputComponent = nullptr;
	
	void InputEvent();
input.cpp


void UInput::BeginPlay()
{
	Super::BeginPlay();

	//入力を取得
	InputComponent = GetOwner()->FindComponentByClass<UInputComponent>();


       //取得できた場合の処理
	if(InputComponent){
		InputComponent->BindAction("InputMappings", IE_Pressed, this, &UInput::InputEvent);
	}
	// ...
	
}

void UInput::InputEvent()
{
	UE_LOG(LogTemp, Warning, TEXT("入力ゲット!"))
}


このブログはBPのみとしたいので近々他のブログに移すと思います。

UE4:C++にてLineTraceにてオブジェクトの取得

LineTraceでオブジェクトの名前をLogに出すメモです。
ActorComponentでC++を作成しPawnのコンポーネントに追加しています。自分の環境では動きました。
自分用メモなので参考にしないでください。いずれどこかに移します。

LineTrace.h
private:
 float DirectLength= 1000.f;

LineTrace.cpp

#define OUT
void ULineTrace::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction)
{
 Super::TickComponent(DeltaTime, TickType, ThisTickFunction);
 FVector PlayerViewLocation;
 FRotator PlayerViewRotation;
 GetWorld()->GetFirstPlayerController()->GetPlayerViewPoint(OUT PlayerViewLocation, OUT PlayerViewRotation);

 FVector TraceEnd = PlayerViewLocation + PlayerViewRotation.Vector()*DirectLength;
 FHitResult Hit;
 GetWorld()->LineTraceSingleByObjectType(OUT Hit, PlayerViewLocation, TraceEnd, FCollisionObjectQueryParams(ECollisionChannel::ECC_WorldStatic));
 
 AActor* HitActor = Hit.GetActor();
 if (HitActor) {
 UE_LOG(LogTemp, Warning, TEXT("LineTraceHit:%s"), *(HitActor->GetName()))
 }
 // ...

UE4:気になったノード達(不定期更新)

気になったノードのメモです。

不定期更新になります。このページに追記していく予定です。

 

GetActorEyesViewPoint

f:id:Bussan_dayo:20170523015558p:plain

 

アクターの座標と回転を取得出来ます。

f:id:Bussan_dayo:20170523015729p:plain

回転は360°単位で取得出来ます。

 

 

2-3月の進捗

 

2-3月の進捗です。

www.youtube.com

1月に作ったUIはいろいろあって消えました。

 

それを気にコントローラーに全対応することにしたのでまたのちほど作り直します。

クエスト発生からのシーケンス再生の処理を作りました。

 

f:id:Bussan_dayo:20170402174853p:plain

 

シーケンス内にイベントを設置してそこからテキスト、シーケンスの終了などを指定しています。

 

f:id:Bussan_dayo:20170402175015p:plain

レベルブループリントで取得しか出来ないっぽかったのでこのように、シーケンスのアクターをレベルにおいて、そこから関数を呼び出すようにしています。

 

コンボ周りはモンタージュ内の通知にてNotifyBPを作成し、そこからモンタージュを呼び出しています。

f:id:Bussan_dayo:20170402175341p:plain

 

データテーブルでモーションを管理してみたりしたのですが、次のコンボモーションをNotifyにて設定したほうが安牌でした。

 

空中攻撃はChracterクラスを継承しているとMovementModeを切り替える必要があるのできちんと通知を作らないとバグが起こりそうですね。そこが怖い。

 

ターゲットのロックオンをひっそり入れたのですが、これは作り直す予定です。

精度が余りにも酷いので・・・

 

 

今月も時間を見つけて少しづつ作っていきます。

 

今月に期待

以上

UE4:Widgetからドラッグアンドドロップでアクターをスポーンさせる

お久しぶりです

Twitterの方で制作方法を教えてくれと連絡が来ましたので、ブログに書きます。 

それが以前作ったこちらのなります。

www.youtube.com

(懐かしい・・・)

 

 

 

Widgetの内部処理はめんどいので簡易版を

youtu.be

 

 

必要なBP

FPSテンプレート

PlayerController

設置のActor

Enum

Widget

 

仕様

Widgetのボタンを押すと指定したメッシュを出すことが出来る

デリートボタンを押してメッシュをクリックすると消す

エディットボタンでメッシュの位置、角度の編集

マウスホイールで角度の調整

 

続きを読む

1月の進捗

お久しぶりです。

 

最近ゲームを作ってます。

帰宅時の数時間と土日の時間を使って製作を進めています。

 


1月の進捗

 

今のところ計画通りの進捗となっています(最悪のケースを想定したプラン

まだステージも作れていないですし、アニメーションも全然なので今月は土日予定を入れずドコドコ作っていこうと思います。

 

製作特にブログに書くようなネタを見つけることが出来なかったため、また改めて何か発見しましたら書こうと思います。

 

ドラッグアンドドロップも公式の動画にありますし、アイテムクラフトも純粋にテーブルに色々と条件入れてチェックしてるだけですし(処理をブログに書こうとすると気が滅入る

 

ただドラッグアンドドロップの公式の動画は結構汎用性を考えるとちょっと厳しいのでEnum作ってテーブルを参照してテクスチャや名前を呼び出す方法にしました。

 

では、また

 

もう一年の1/12終わったヤバイ!!!嫌だ!!!

うあああああん;;;;;;;;

以上。