凛(kagring)のUE4とUnityとQt勉強中ブログ

2016 年から UE4 を触り始めました。勉強したもののメモ用のブログです。C++ での Qt、Unity も少しあります。

≫ EDIT

コンポーネント(Component)にタグ(Tag)があるかどうかチェックする(Component Has Tag)

コンポーネント(Component)に指定したタグ(Tag)があるかどうかをチェックする方法です。
こちらを参考にさせていだきました!

・[UE4] 武器切り替え
http://monsho.blog63.fc2.com/blog-entry-132.html

コンポーネントにタグがあるかどうかは
「Component Has Tag」ノードを使います。
コンポーネントのタグチェック001
「Target」にはコンポーネントを指定します。
「Tag」にはチェックしたいタグの名前を指定します。
タグがそのコンポーネントにある場合はTrueを返します。

TagはName型で設定し、複数設定することも可能です。
このTagの主な用途は、特定用途のコンポーネントやアクターの検索です。


記事にある感じだと、検索するための用途に使う時に
これでタグをチェックするのが良さそうですね。

スポンサーサイト

| UE4 | 16:46 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 コンポーネント(Component)にタグ(Tag)を追加する、タグ(Tag)の一覧を取得する(Get Component Tags)

コンポーネント(Component)にタグ(Tag)を追加する方法です。
こちらを参考にさせていだきました!

・[UE4] 武器切り替え
http://monsho.blog63.fc2.com/blog-entry-132.html

タグを追加するには「Get Component Tags」ノードを使います。
コンポーネントにタグの追加002
「Target」はコンポーネントを指定します。

これでタグの一覧を配列として取得することができます。

タグを追加するには、このName 配列に対して「Add」ノードで足してあげるだけです。
コンポーネントにタグの追加001
こんな感じで「NewTag」というタグを追加できます。

実際にコンポーネントを動的に追加してタグを追加するとこんな感じに。
コンポーネントにタグの追加000

タグは記事にある以下のような用途で使うことが多そうです。

コンポーネントやアクターにはTagを追加することが可能です。
TagはName型で設定し、複数設定することも可能です。
このTagの主な用途は、特定用途のコンポーネントやアクターの検索です。

| UE4 | 13:01 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 アクター(Actor)とコンポーネント(Component)の「Event Tick」を実行しない(停止する)ようにする(Set Actor and Component Tick Enabled)

アクター(Actor)とコンポーネント(Component)両方の
Event Tick 時に処理を実行しないように設定をする方法です。

アクター単体だと「Set Actor Tick Enabled」ノード。
コンポーネント単体だと「Set Component Tick Enabled」ノード。

となっているものの両方版みたいですね。

アクターとコンポーネントの両方をセットするには
「Set Actor and Component Tick Enabled」ノードを使います。
コンポーネントとアクターのTICK有効000
「In Actor」にはアクターを指定します。
「In Enabled」には Tick 処理が有効かどうかを指定します。

といった感じですね。

このノードは「UE4 Toolkit」というカテゴリに属しているので
ちょっと謎いのですよね。

| UE4 | 15:13 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 コンポーネント(Component)の「Event Tick」が呼ばれる間隔を変更する(Set Component Tick Interval、Get Component Tick Interval)

アクターの方はすでに知っていたのですが
コンポーネント(Component)で「Event Tick」が呼ばれる間隔を制御する方法です。

公式ドキュメントはこちら。

・Set Component Tick Interval
https://docs.unrealengine.com/latest/INT/BlueprintAPI/Utilities/SetComponentTickInterval/

「Event Tick」時にコンポーネントの処理が呼ばれる間隔を制御するには
「Set Component Tick Interval」ノードを使います。
コンポーネントのTICK001
「Target」には「Component」を指定します。
「Tick Interval」には「Event Tick」が呼ばれる間隔を秒で指定します。

「Tick Interval」で例えば0.5秒を指定した場合、
「Event Tick」が呼ばれたときに前回から0.5秒以上の間隔がある場合に実行される。
可変フレームで作られてると思うので、必ずしも0.5秒間隔でくるとは限らない。
みたいなのかなと思います(自信はない)
0.0秒を指定すると「Event Tick」が毎回呼ばれるといった感じですかね。
(デフォルト値がわからない)

現在コンポーネントにセットされているTick間隔を取得するには
「Get Component Tick Interval」ノードを使います。
コンポーネントのTICK003
「Target」には「Component」を指定します。
「Return Value」には今のコンポーネントのTick間隔が返されます。

アクター単位はなんとなく優先度としてあるのかなーぐらいで
それでも使い所は難しそうな印象なのですが
コンポーネント単位の制御はもっと細かい制御になりそうですね。

| UE4 | 17:06 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 コンポーネント(Component)の「Event Tick」を実行しない(停止する)ようにする(Set Component Tick Enabled、Is Component Tick Enabled)

アクターの方はすでに見つけていたのですが
コンポーネント(Component)の「Event Tick」を停止(実行しないように)する方法です。

公式ドキュメントはこちら。

・Set Component Tick Enabled
https://docs.unrealengine.com/latest/INT/BlueprintAPI/Utilities/SetComponentTickEnabled/

コンポーネント単位で「Event Tick」を実行しないようにするには
「Set Component Tick Enabled」ノードを使います。
コンポーネントのTICK000
「Target」には「Component」を指定します。
「Enabled」には有効ならtrueを。無効ならfalseを指定します。

と、これだけですね。
コンポーネント単体でのTick処理を止めたい場合とかに使う感じですかね。

現在コンポーネントのTickが有効かどうかを調べるには
「Is Component Tick Enabled」ノードを使います。
コンポーネントのTICK002
「Target」には「Component」を指定します。
有効であれば「Return Value」がTrueを返します。

| UE4 | 16:47 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 モデルをキャラクターにアタッチする・メッシュコンポーネントの指定したソケットにメッシュコンポーネントをアタッチする版(Attach To Component)

キャラクターに武器をもたせたり、アクセサリをアタッチしたりする方法を探していて
今回はコンポーネントを追加して、ソケットにアタッチする方法です。

こちらを参考にさせていただきました。というかまんまですね。

・[UE4] 武器切り替え
http://monsho.blog63.fc2.com/blog-entry-132.html

まずはアタッチしたいメッシュを
「Add Static Mesh Component」と「Set Static Mesh」を使って追加します。
メッシュの追加000
こんな感じですね。

ただ追加しただけだとこんな感じになります。
外部アタッチ000
包丁が空中に浮いた感じになります。
これだけだとまだアタッチされていない状態です。

これをグレイちゃんの左手にアタッチします。
アタッチするには「Attach To Component」ノードを使います。
外部アタッチ003
「Target」にはアタッチするコンポーネントを指定します。
今回だと武器のメッシュコンポーネントですね。
「Parent」には親のコンポーネントを指定します。
今回はグレイちゃんのメッシュコンポーネントになります。
「Socket Name」にはアタッチしたいソケット名を指定します。
「Location Rule」にはアタッチしたときの位置情報をどうするかを指定します。
「Rotation Rule」にはアタッチしたときの回転情報をどうするかを指定します。
「Scale Rule」にはアタッチしたときのスケール情報をどうするかを指定します。
「Keep Relative」だと特に現状から何もせずアタッチされます。
「SnapToTarget」だとオフセットなど無しで初期化され、そのソケットにアタッチされます。
「Keep World」がちょっとよくわかりませんね…。
「Weld Simulated Bodies」もちょっとわからないですね…。

とりあえずアタッチしてみました。
外部アタッチ001
無事?左手に包丁を持つことができました。
全然持ててませんが左手にアタッチされています。

とりあえず手にアタッチしてみましたが
元から武器用のソケットをモデルに含めるか、新たにソケットを追加してそこにアタッチするのがよさそうです。

今回やってみたBPはこんな感じです。
外部アタッチ002

とりあえずコンポーネントでアタッチしてみましたが
武器のアタッチはこれらでよさそうです。
それとは別に、アクターをアタッチするというのは今度調べてみようと思います。

| UE4 | 17:37 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 アクター(Actor)にスタティックメッシュコンポーネント(Mesh Component)を追加してメッシュをセットする(Add Static Mesh Component、Set Static Mesh)

アクター(Actor)に対してメッシュコンポーネント(Mesh Component)を追加する方法と
追加したメッシュコンポーネント(Mesh Component)に対して、メッシュをセットする方法です。

こちらを参考にさせていただきました!

・[UE4] 武器切り替え
http://monsho.blog63.fc2.com/blog-entry-132.html

やりたいことはこのサイトに書いてあるとおり、
キャラクターに武器をもたせることなのですが、
今回はその前の準備段階ってところになります。

まず、アクターにメッシュコンポーネントを追加します。
追加するには「Add Static Mesh Component」ノードを使います。
メッシュの追加001
「Target」にはアクターを指定します。

これで「Static Mesh Component」が追加されます。
今回は武器を追加したいのでスタティックメッシュにしました。

次に、このコンポーネントにメッシュをセットします。
メッシュをセットするには「Set Static Mesh」ノードを使います。
メッシュの追加002
「Target」にはメッシュコンポーネントを指定します。
「New Mesh」にはメッシュを指定します。

これでメッシュをセットしたメッシュコンポーネントが追加されました。
実際の処理はこんな感じに。
メッシュの追加003
こんな感じでアクターにメッシュが追加されました。

これだけだとただ追加されただけなので。
次はキャラクターにこのメッシュをもたせたり、アタッチするところをやろうと思います。

| UE4 | 13:53 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 エディタでオブジェクトの移動量や回転量を指定した単位ごとに変化させる

オブジェクトを移動させるときに、微細な移動量ではなく
指定した単位ごとにオブジェクトを動かす方法です。

参考にさせていただいたサイトはこちら。

・UE4 エディタ⑥ オブジェクトを動かす
http://manabibeya.com/ue4tutorial/editor/editor6/

エディタのビューポートの右上にあるマス目状のアイコンを押して有効にします。
グリッド移動000
オレンジになっているのが有効状態です。

これだけで無効の状態だと、滑らかに微細に移動していたものが
カクカクしたグリッド単位で移動するようになります。

単位の設定はマス目状のアイコンの隣のアイコンを押して設定します。
グリッド移動001
ここで選択した単位で吸着して動くようになります。

小数点など微細な情報がいらない場合はこれらを使ってもいいかもですね。
隣にあるアイコンでは回転角度も設定できるので
こちらも用途に合わせて使ってみるのがよいかもしれないですね。

| UE4 | 16:19 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 スケルトンにソケットを作成して追加する

モデルをアタッチしたり、
特定の位置や回転の取得をするのにソケットを使います。

これはモデルにしこまれていたりするのですが
ゲームの都合で色々取りたい場合などもあります。
このソケットはUE4上でスケルトンに追加することができます。

公式ドキュメントはこちら。

・スケルタルメッシュ ソケット
https://docs.unrealengine.com/latest/JPN/Engine/Content/Types/SkeletalMeshes/Sockets/index.html

「スケルタルメッシュ」の「スケルトンツリー」を開きます。
スケルトンツリーの中から、追加したい場所のボーンを右クリックして
「ソケットを追加」を選択します。
ソケットを追加000
あとは独自の名前をつけてあげます。

これだけで、モデルをアタッチする先に追加したソケットが指定できるようになります。
ソケットを追加001
「HeadUp」というソケットを追加してみました。

ソケットは、ペルソナ内で スケルトンツリー、[Details (詳細)] パネル、 [Viewport(ビューポート)] ウィンドウを使用して直接編集することができます。

スケルトンツリー内でソケットをクリックすると、ビューポートで回転ウィジェット、平行移動ウィジェットが利用できるようになります。こうしたウィジェットを使用して、ボーンに対してソケットを再配置できます。

とあるように、位置などを自由に変更できるので都合の良い状態にしましょう。

アタッチメントをつけたり、武器をもたせたり、
エフェクトを発生させる位置の取得など、
様々な用途に使えるので積極的に使っていきたいですね。

| UE4 | 14:40 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 外部モデルをキャラクターにアタッチする・エディタでアウトライナ設定静的版

キャラクターに武器をもたせたり、
アクセサリーなどのアタッチメントをキャラクターにくっつけるための方法です。

こちらを参考に。いつもお世話になってます!

・UE4 ソケットのアタッチをノードを使わずに行う
http://unrealengine.hatenablog.com/entry/2016/11/22/213000

今回の手法はBPやコンポーネントの制御もせず、
レベルに配置されたアクターやメッシュ同士をアウトライナ上でアタッチする方法です。

やりかたは簡単で
「アウトライナ上でアクターを選択して、他のアクターにドロップする」です。
メッシュをアタッチエディタで000
するとこんな感じで階層構造になってアタッチすることができます。

アタッチする場合は、アタッチ元の可動性の設定が
「ムーバブル」になってないといけないので注意してください。
静的アタッチ002
これはまた別のオブジェクトですが。

というわけでできたのがこちら。
メッシュをアタッチエディタで001

参考サイトの手順を踏んでいるのですが、ソケット選択がでてこないのですよね。
バージョン違いなのか、何か設定がいるのかちょっと不明です。
調べてみないとですね。

| UE4 | 11:44 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 外部モデルをキャラクターにアタッチする・エディタでブループリント設定静的版

キャラクターに武器をもたせたり、
アクセサリーなどのアタッチメントをキャラクターにくっつけるための方法です。

こちらを参考に。いつもお世話になってます!

・UE4 ソケットのアタッチをノードを使わずに行う
http://unrealengine.hatenablog.com/entry/2016/11/22/213000

簡単にいうと「コンポーネントを追加」して、
「親ソケットを指定」してあげるといったものですね。

まずはアタッチ先のキャラクターのBPを開いて
アタッチしたいモデルのコンポーネントを追加しましょう。
静的アタッチ001
今回は「StaticMesh」コンポーネントを追加してみました。

そうしたら、追加したコンポーネントのメッシュを
「ムーバブル」に変更して、「親ソケット」を指定してあげましょう。
静的アタッチ002
今回は般若のお面のモデルを顔にアタッチしてみます。
顔に当たるので親ソケットには「Head」を指定しました。

ソケットは「スケルトンツリー」で確認することができます。
静的アタッチ004
グレイちゃんのスケルトンはこんな感じになってます。

そうしたら後は、「位置」「回転」「拡大・縮小」パラメータをいじって
いい感じの場所になるようにしてみます。
静的アタッチ003
プレビューで見ながら設定できるので楽ですね。

これだけでグレイちゃんに般若のお面をつけることができました。
静的アタッチ000
ゲームとしてつくるならエディタ上ではなく、
動的に読み込んでゲームで設定することになりそうですが
NPCだったりのキャラクターはこうやって構築してもいいかもしれませんね。
エディタで見ながら構築できますし。

これをBPでやったり、つけるためのソケットを新規で追加したりなどできそうなので
次はこれらを調べていこうかなと思います。

| UE4 | 14:38 | comments:0 | trackbacks:0 | TOP↑

| PAGE-SELECT | NEXT