NiagaraDataInterfaceおよびDynamicParameterの拡張に関して

NiagaraDataInterface内のGetMaterialParametersVM(FVectorVMExternalFunctionContext& Context)をoverrideしてModule側で入力された値InstanceDataに保持しているのですが、GPU使用時も同様にInstanceDataにModuleで入力した値を入れることが出来ますでしょうか。

↓----部分でInstanceDataに入力値を入れていますが、GPU設定時だとInputBase.GetAndAdvance()に当たる部分がushファイルの-----部分で返ってくるためInstanceDataに値を入れることが出来ません…

void UNDI_UVRotation::GetParametersVM(FVectorVMExternalFunctionContext& Context)
{
VectorVM::FUserPtrHandlerpInstanceData(Context);
FNDIInputParamInputBase(Context);
FNDIInputParamInputBlend(Context);
FNDIInputParamInputAlpha(Context);
FNDIInputParamInputBlendAlpha(Context);
FNDIInputParamInputBaseDistortion(Context);
FNDIInputParamInputBlendDistortion(Context);
FNDIOutputParamOutputValue(Context);

for (int32 i = 0; i < Context.GetNumInstances(); ++i)
{

    pInstanceData->Base            = InputBase.GetAndAdvance();
    pInstanceData->Blend           = InputBlend.GetAndAdvance();
    pInstanceData->Alpha           = InputAlpha.GetAndAdvance();
    pInstanceData->BlendAlpha      = InputBlendAlpha.GetAndAdvance();
    pInstanceData->BaseDistortion  = InputBaseDistortion.GetAndAdvance();
    pInstanceData->BlendDistortion = InputBlendDistortion.GetAndAdvance();

    OutputValue.SetAndAdvance(true);
}

}

↓ushファイル

bool bSuccess_{ParameterName};

void UVRotationParams_{ParameterName}(

in float In_Base,
in float In_Blend,
in float In_Alpha,
in float In_BlendAlpha,
in float In_BaseDistortion,
in float In_BlendDistortion,
//-----------------------------------
out bool Out_bSuccess)
{
Out_bSuccess = true;
}

ushファイルの----の設定部分から情報を抽出することが出来ればCPU同様にInstanceDataに値を保持することが出来るかと考えています。
ただ抽出方法や使用方法が合っているかも分かっていませんので、こちらの用途として合っているのか・可能なのかご教授いただけないでしょうか。

また、NiagaraからMaterialParameterへ直接、値を渡す方法としてDynamicparameter(Parameter1 ~ Parameter4)の計16個使用出来るかと思いますが、16より大きい値を渡せるようにするにはEngineの拡張で出来るものなのでしょうか。