如果輸入不必立即/實時發生,我對theodox有相同的問題, 。 例如,您可以爲您模擬更新參數文件並讀取虛幻引擎應用程序中的參數。 下面是創建的READFILE bluemix功能讀取和解析外部JSON文件的一個示例:
在/源/ [項目名稱] /MyBlueprintFunctionLibrary.h,定義輸出struct和函數頭
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和創建輸入字段所有參數,這是更加勞動密集型的imo。
這必須運行嗎?你不能把這個發送給虛幻的FBX或Alembic文件嗎? – theodox