【UE4】マテリアルの「step」と「smoothstep」で遊ぼう!【★★】

※この記事で使用しているUnrealのVersionは04.26.0です。 ※この記事のサンプルプロジェクトは以下URLにアップされています。サンプルプロジェクト 4.26から、「step」と「smoothstep」関数が新たにMaterialExpressionに追加されました! 今まで「smoothstep」の方は、MaterialFunctionでありました。(中身はCustomノードで「smoothstep()を呼んでいるようです」) 「step」の方に至ってはMaterialFunctionですらなかったので、「if」ノードで代用か、自分でCustomノードを作成しなければなりません 続きを読む

【UE4】【Python】4.26からPythonPluginがPython3.7.7に対応したので色々まとめてみた 【★★~★★★★】

※この記事で使用しているUnrealのVersionは04.26.0です。 ※この記事のサンプルプロジェクトは以下URLにアップされています。 サンプルプロジェクト みなさん朗報です! ついに「Python Editor Script Plugin」がデフォルトでPython 3(3.7.7)対応になりましたよ!! 今まで あのModule使いたいな~ → Python 2では使えません(´·ω·`)ショボーン と言うようなことが多々あり、色々妥協していた部分がありましたがPython2が非推奨のバージョンとなり、バージョン決定のネックになっていたVFX リファレンス プラットフォームのガイ 続きを読む

【UE4】【C++】メモ:使わないメニューを非表示にする方法【★★★☆】

※この記事で使用しているUnrealのVersionは04.26.0です。 ※この記事のサンプルプロジェクトは以下URLにアップされています。 サンプルプロジェクト 皆さんはToolbarにある「MarketPlace」を開けるアイコンを使ったことはあるでしょうか? おそらくこのアイコンを何度も使ったことがある人は少ないのではないのかと思います。個人的にはこのアイコンを非表示にできたらいいな~と思うこともしばしばあります。 一応「Editor Preference」内の設定の「General – Appearance」内の「User Interface → Use Small To 続きを読む

【UE4】連想配列(Map)と集合(Set)について【★★】

※この記事で使用しているUnrealのVersionは04.26.0です。 ※この記事のサンプルプロジェクトは以下URLにアップされています。 サンプルプロジェクト 今回は、Unrealの連想配列(Map)と集合(Set)についてのお話です。 その前に前置き。 Blueprintの配列(Array)について レベル【★★】 みなさんブループリントで「配列(Array)」は使ったことあるでしょうか? 配列とは、簡単に言うと同じ型の変数を任意の数格納しておける箱のようなものです。 配列って? 例えば数字を保持する「Integer」という型のArrayですが、通常の場合は保持できる数字の数は1つにな 続きを読む

【UE4】メモ:MaterialCustomExpressionノードでIncludeされているush,usfファイルのリストを作成【★★★☆】

※この記事で使用しているUnrealのVersionは04.26.0です。 ※この記事のサンプルプロジェクトは以下URLにアップされています。 サンプルプロジェクト 【UE4】新しくなったMaterialのCustomノードの使い方 【★★★】 で説明しましたが、Engine内や自作のush,usfファイルを正式にIncludeできるようになりました。 しかしここでちょっとした問題が起こったりもします。 「どのマテリアルでどのシェーダーファイルが使われているかわからない」 ということです。 IncludeはMaterialExpressionCustomNodeで行いますが、それはマテリアル、 続きを読む

【UE4】新しくなったMaterialのCustomノードの使い方 【★★★】

※この記事で使用しているUnrealのVersionは04.26.0です。 ※この記事のサンプルプロジェクトは以下URLにアップされています。 サンプルプロジェクト 昨今のバージョンアップで、新規追加機能も豊富に増えていますが、既存の機能がさらに強化されるようなことも多くなりました。 今回は、バージョンアップされて最初若干どう使うかわからなかった、MaterialのCustomノードの使い方を軽くですがメモ程度に紹介します。 MaterialのCustomノードを知らない方もいるかと思いますので、その際は以下の記事をまずはご覧ください(先人たちがいっぱい深淵を除いてくれています) 公式ドキュメ 続きを読む

【UE4】【C++】メモ:文字列の式を動的に計算する(FMath::Eval)【★★★☆】

※この記事で使用しているUnrealのVersionは04.26.0です。 FMathというクラスに「Eval( FString Str, float& OutValue )」という関数があります。 この関数は、文字列の式を計算してfloatで返してくれるようなものです。 ↓FunctionLibraryに実装してみた。 MyBlueprintFunctionLibrary.h MyBlueprintFunctionLibrary.cpp これをビルドして、適当に指揮を入れてみた結果↓ 1+2+3+4 =10.0 3+4*2-5 =6.0 以上

【UE4】メモ:レベル間をまたいだアクターの参照方法【★★】

※この記事で使用しているUnrealのVersionは04.26.0です。 例えば、適当なPersistentLevelに「A」というレベルと「B」というレベルをサブレベルにぶら下げたとします。 さらに、Actorクラスを継承したBlueprintを作成します。 作成したBPの中に、「Actor(Reference)」の型の変数を作成します。 出来たクラスを、先ほど作成したAというレベルとBというレベルに入れてみます。しかし、ActorReferenceの変数にお互いを入れることはできません。 では、Actorクラス内の変数をActor(SoftObjectReference)にしてみます。 続きを読む

【UE4】【C++】メモ:EditorUtilityなクラスのCallInEditorが表示されない【★★★★】

※この記事で使用しているUnrealのVersionは04.26.0です。 例えば、EditorUtilityWidgetに「DetailViews」Widgetを入れ、そのターゲットオブジェクトにEditorUtilityObjectを生成して入れてあげます。 EditorUtilityObjectのクラスには、「CallInEditor」にチェックを入れた関数を用意します。 しかし、EditorUtilityWidgetを起動しても、CallInEditorを付けた関数のボタンは自動生成されません。 ObjectDetails.cppの この中の110行目のcontinue;をコメントアウ 続きを読む

【UE4】【C++】メモ:アニメーションエディターのフレームレート表示について【★★★★】

※この記事で使用しているUnrealのVersionは04.26.0です。 AnimSequenceの場合は、AnimSequenceのフレームレートを参照してTimelineのフレームレートは表示されます。 しかし、AnimMontage,AnimCompositeの場合は、フレームレートに関係なく30fps表示になってしまいます。 AnimModel.cppの55~65行目 に、AnimSequenceのときとそうでないときで処理が分けられているようです。 ここの直値の「30.0」を任意の値に変えると、AnimMontage、AnimCompositeでのTimeline表示が変わります。 続きを読む

【UE4】Blueprintマル秘小細工集~ソースを書かないプランナーがBlueprintでどこまで深淵に至れるか?~【★★★】

※この記事で使用しているUnrealのVersionは04.26.0です。 ※この記事のサンプルプロジェクトは以下URLにアップされています。 サンプルプロジェクト 皆様お久しぶりです。 Unreal Engine 4 (UE4) Advent Calendar 2020 14日目の記事となります! 昨日は おかずさんの 【UE4】GUIフレームワーク「Dear ImGui」を使ってデバッグ・ツール用UIを作ってみよう! < 導入・基本編 > でした。お手軽に導入出来て色々便利そうでとてもよさそうですね! ということで14日目の記事は、4.26新機能系書こうかと思いましたが、それは 続きを読む

【UE4】EditorUtility上のWorldContextについて【★★☆】

※この記事で使用しているUnrealのVersionは04.25.3です。 ※この記事のサンプルプロジェクトは以下URLにアップされています。 サンプルプロジェクト WorldContextについて レベル【★★☆】 最近いろんな人(プログラマー)から「EditorUtility系のBPとかでWorldContextの取得ってどうやるの?」と聞かれることが多かったため、WorldContextについてここにまとめておきます。 普段Level BlueprintやActor Blueprint内で、例えば「Get All Actors of Class」関数を使うとします。 その際は特に不自由な 続きを読む