In your first post you said you were not sure what engines to use or even if you would need to make your own. With that reply it looks like things have changed.
Unity is currently a popular engine, there are many good tutorials, books, and guides on how to use it. Ovicior had a good list of engines and technologies as well.
I'm learning unity right now and I was wondering if I can be told the best way to learn the things I have above. C#?
So 3D Animations, UI and HUD development, and "all the other parts of the game."
Yes, C# is the most frequently used programming language for that. Plenty of good books, tutorials, and support materials for that on the Internet if you need help on something specific.
Animations generally require models and animations, so you'll need to either find models and animations in the asset stores, or build your own. Those are both major disciplines on their own. If you've decided on Unity, once you have animations and models, hooking the animations up is a matter of building a graph that shows how animations are applied to your models and how they transition, then calling the right functions in code. It is well documented with the engine and there are many excellent tutorials if you get confused about it.
UI and HUD programming both require UI art and UI programming, but the basic functionality is included in Unity and there are many well-built packages in Unity's asset store that can do quite a lot of amazing things. Similarly, with the large community out there it is easy to find good tutorials or Q&A on any specific topics if you get lost.
However, "all the other parts of the game" is going to be a tough one. You'll need a lot more details for that. It probably includes things like music and audio effects in addition to programming, models, animations, UI art, VFX, and testing. If you don't have a solid background in developing games that is going to be a major exercise. That's the part of a game that feels like work and takes a long time, causing so many ideas to be abandoned.