入力が瞬時に/リアルタイムで行われる必要がない場合は、同じ質問をtheodox で受けました。 たとえば、シミュレーション用のパラメータファイルを更新して、あなたのUnreal Engineアプリケーションのパラメータを読み取ることができます。ここ 外部JSONファイル読み取りおよび解析するreadFileのbluemix関数を作成する例である:/ソース/ [プロジェクト名] /MyBlueprintFunctionLibrary.hに
を
USTRUCT(BlueprintType)
struct FResultStruct
{
GENERATED_USTRUCT_BODY()
UPROPERTY(EditAnywhere,BlueprintReadWrite,Category = "Result Struct")
float fieldname1;
UPROPERTY(EditAnywhere,BlueprintReadWrite,Category = "Result Struct")
FString fieldname2;
//Constructor
FResultStruct()
{
fieldname1 = 0;
fieldname2 = "string";
}
};
UCLASS()
class EXPERIMENTALPROJECT_API UMyBlueprintFunctionLibrary : public UBlueprintFunctionLibrary
{
GENERATED_BODY()
public:
UFUNCTION(BlueprintCallable, Category = "MyBPLibrary")
static FResultStruct ReadFile(FString fileName);
};
出力構造体及び機能ヘッダを定義します/ソース/ [プロジェクト名]で
/MyBlueprintFunctionLibrary.cppすることは、たとえば、パラメータ・ファイルパーサーを実装します。
// Read the results file
FResultStruct UMyBlueprintFunctionLibrary::ReadFile(FString fileName)
{
FString saveFilePath = FPaths::ConvertRelativePathToFull(FPaths::GameDir());
fileName = saveFilePath + fileName;
FResultStruct Result;
FString jsonString;
FFileHelper::LoadFileToString(jsonString, *fileName);
TSharedPtr<FJsonObject> JsonParsed;
TSharedRef<TJsonReader<TCHAR>> JsonReader = TJsonReaderFactory<TCHAR>::Create(jsonString);
if (FJsonSerializer::Deserialize(JsonReader, JsonParsed))
{
Result.fieldname1 = JsonParsed->GetNumberField("fieldname1");
Result.fieldname2 = JsonParsed->GetStringField("fieldname2");
}
return Result;
}
そして、あなたは機能を読んで、このファイルを呼び出すと、アプリケーションでその解析されたコンテンツを使用することができ、あなたの非現実的なエンジンの青写真に:あなたはライブ入力が必要な場合は example
、あなたはUE4にHUDを作成する必要があり、すべてのあなたのための入力フィールドを作成することができより労働集約的なものです。
これはライブで実行する必要がありますか?たとえば、FBXまたはAlembicの焼き込みファイルとしてこれをunrealに送ることはできません。 – theodox