Yes, using an engine reduces the difficulty and makes development easier.
It doesn't removed the difficulty all together though; development is easier but is not necessarily easy, and a lot of hard work is usually still required to build a complete game.
Using an engine means spending some time to familiarise yourself with the functionality that engine offers and with the way the engine works; for most good engines -- especially high profile ones like those you mentioned -- a lot of effort goes into trying to provide the majority of common functionality a game might need and trying to do so in a way that makes sense and is reasonably easy to use, so for most people writing most games it's much less effort to learn to use an engine than it is to write one for yourself.
An engine will usually do little or nothing to make asset creation easier however; someone still has to create all of the 3d models, textures, animations, etc. Unless you're making a cookie-cutter game and can just work with existing templates or pre-built functionality an engine doesn't help with your actual game design; someone still needs to design a fun game and game world, balance all of the challenges and abilities, create fun levels, etc. You'll often find that you need to do plenty of work to configure or even extend an engine to meet the specific needs of your game because the engine provides general functionality that all games need rather than the specific things your game needs.
Using an engine usually makes development easier -- that's why they exist -- but it doesn't necessarily make it easy. There is still lots of hard work to do.
Using an engine might not make development easier if:
- You're creating a very simple game (as StarMire touches on with his point about 2d games above). If you're reasonably skilled and the game only needs a few basic features and won't be overly difficult to test it may be quicker to write from scratch than to learn to use an engine that provides a lot of things you don't need.
- You're creating a very unusual game that needs very different functionality than any existing engine offers. Even then it may still be beneficial to use an engine for some basic low-level functionality, or at least an existing framework or library for the boring stuff (window creation, basic input handling, etc.) that all games have in common.
- You're targeting a platform your engine of choice doesn't properly support.
In the overwhelming majority of cases where the goal is to create a good quality game as quickly as possible rather than to learn about the low level technology or get programming practice I would recommend to look for and use a suitable engine rather than writing from scratch. It saves you a lot of the boring repetitive work that has little to do with the actual game itself, it should be proven and well tested, and other users of the engine may be able to offer you help that would be much more difficult to give if they first had to understand the specifics of your own custom-written code.
Hope that helps!