Custom vertex shader

Im searhing info about vertex shaders in UE and found some ways to do it

  1. Make Custom Mesh factory and etc
  2. Through Custom node with HLSL code
  3. Through Global shaders

im a bit confused of all this ways. I need something like vertex shader which take custom data like
1)One int field (my logical index)
2)StructuredBuffer<float4x4> buffer of matrixes
3) Also i need to take bone info inside shader like weight of bones and index of bones(is it possible?)
4) Get info from UVs inside shader

and important thing this shader must be use instancing. Which one of these ways suits most of all. What way should i check more and try to realize