There are cheaper ways to have them avoid each other and just use c_move or c_trace for the razors
Yeah, even simple vertical non oriented cube or cylinder detection is really sufficient.
And C_trace, C_move are really slow in 3DGS, if you can avoid sure you will boost a lot performance also.
Using sprites, yeah it ca be a really good option, if you can make at minimum 8 or more directions.
The problem : when you play a 3D animation, what frame the 2D animation should start ?
Also some game use only sprites rendered from 3D models , and it looks really good, parhaps you could go that way also ?