需要があるのかどうか全くわかりませんが、タイトルの通り最新のVisual Studio 2019でUE4.27をソースコードからビルドして、パッケージングまでしようとすると、諸々細工が必要でした。ひょっとするとVisua …
カテゴリー: Unreal Engine 4
[UE4][C++]UMGでColor Pickerを活用する
Unreal Engine 4で、ランタイム時にテクスチャやマテリアルの色を自由に指定したいときに、UE4 Editorで採用されているColor Pickerを使いたいと思ったことがある方も少なくないのではないでしょう …
[UE4][ComputeShader][HLSL][C++]Unreal Engine 4で(RW)StructuredBufferを用いたComputeShaderを利用する(その3:実際に用いる)
その1:イントロ、その2:C++側シェーダクラスに続き、今回でようやく完結です。 FGlobalShaderクラスを継承したクラスをどのように呼び出すのかを見ていきましょう。 サンプルソースコード一式をGitHub上で公 …
[UE4][ComputeShader][HLSL][C++]Unreal Engine 4で(RW)StructuredBufferを用いたComputeShaderを利用する(その2:C++側シェーダクラス)
その1:イントロでは文字通りイントロ(と愚痴…)だけになってしまいましたので、その2では具体的な実装を解説します。 1. C++経由で変数をHLSL側に渡す 2. C++側の変数にはFVectorも入れる 3. Stru …
[UE4][ComputeShader][HLSL][C++]Unreal Engine 4で(RW)StructuredBufferを用いたComputeShaderを利用する(その1:イントロ)
UnityではGPGPUをフル活用するためにComputeShaderを用いた美しい可視化事例がたくさんあり、特にIndie Visual LabさんによるUnity Graphics Programming (vol. …
[UE4][HLSL]Custom Expressionsによるポストプロセス基礎の基礎
Unreal Engine 4のポストプロセスは、Blueprintsと同様にノードを組み合わせて作ることが基本です。 ノードを駆使することで色々出来るのですが、マテリアルノードにはFor文が無く、ループを回すことが出来 …
[C++][UE4] std::string -> floatへの変換をtry / catch無しで行う
std::string文字列がfloatになり得るかどうかをチェックしつつfloatへの変換を行う場合、通常はstd::stofを用いて
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
// Copyright SCIEMENT, Inc. // by Hirofumi Seo, M.D., CEO & President #include <string> #include <iostream> float stofTryCacth(const std::string& a, bool* is_float) { float result = 0.0f; try { result = std::stof(a); } catch (const std::invalid_argument&) { std::cout << "Error: The string '" << a << "' is not float." << std::endl; *is_float = false; return result; } catch (const std::out_of_range&) { std::cout << "Error: The string '" << a << "' is float but out of range." << std::endl; *is_float = false; return result; } *is_float = true; std::cout << "'" << a << "' -> " << result << std::endl; return result; } int main() { float result; bool is_float; result = stofTryCacth("3.14", &is_float); // '3.14' -> 3.14 result = stofTryCacth(" 3.14", &is_float); // ' 3.14' -> 3.14 result = stofTryCacth("3.14 ", &is_float); // '3.14 ' -> 3.14 result = stofTryCacth(" 3.14 ", &is_float); // ' 3.14 ' -> 3.14 result = stofTryCacth("3.14abc", &is_float); // '3.14abc' -> 3.14 result = stofTryCacth("abc3.14", &is_float); // Error: The string 'abc3.14' is not float. result = stofTryCacth("abc", &is_float); // Error: The string 'abc' is not float. result = stofTryCacth("3.14e2", &is_float); // '3.14e2' -> 314 result = stofTryCacth("3.14e-2", &is_float); // '3.14e-2' -> 0.0314 result = stofTryCacth("314.e-2", &is_float); // '314.e-2' -> 3.14 result = stofTryCacth(".314e-2", &is_float); // '.314e-2' -> 0.00314 result = stofTryCacth("3.14e100", &is_float); // Error: The string '3.14e100' is float but out of range. result = stofTryCacth("-3.14e100", &is_float); // Error: The string '-3.14e100' is float but out of range. return 0; } |
のように行うかと …
[C++][CUDA][UE4]CUDA関数をUnreal Engine 4で用いる
ゲームエンジンの強力なグラフィックス能力は、ゲームや映像の範疇を越え、「空間」に関するあらゆるデータの描画に用いることが出来ます。医療もその1つです。 ただ、ゲームエンジンは描画以外のロジック部分は基本的にはCPU上でシ …