That’s quite long. I think your solution looks reasonable – but it can be optimized, either on your side or engine side. Can you submit a testcase to reproduce? That is, a minimal application (code + data) showing the slowness. I would be happy to take a look and measure + suggest.
If really the loop you showed in post ( Sharing Animations Between Multiple Characters With the Same Skeleton - #14 by Hamid ) takes 10 seconds, then we can figure out why:
- how many routes you have?
- Is the searching (2 calls to
Target.RootNode.TryFindNodeByName) so slow? Maybe we could optimize it by a dictionary with hashtable (justTDisctionary<String,TX3DNode>), built once and reused? - Is the addition
Target.RootNode.AddRouteso slow? We could optimize it by adding aAddRoutes(RoutesList)API to engine.