如果输入不必立即/实时发生,我对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