User Tag List

Results 1 to 38 of 38

Thread: Denny's Research and Development

Hybrid View

  1. #1

    Denny's Research and Development

    This is my one stop shop for all future mini projects, which I will do to become more adept with UE4. I work as a character rigger and animator during weekdays and have worked a lot with Maya and UE3 prior to UE4. I am aiming to do personal projects with UE4, I do however need to learn the depths of the engine to avoid unpleasant surprises. Do not expect eye candy in this thread. The goal is to learn and understand the engine, not to amaze visitors with jaw dropping art.

    Whenever I create something new that I think is useful to remember, or just showing off what I have been up to, I will post it in this thread. My goal is to post something new every week, unless I have been too busy at work or when I finally end up working on a bigger personal project. With some of my findings I may post guides or tutorials to explain it in detail.

    For each category, the newest entry is at the bottom.


    Prototype content

    UE4 General Topics

    Character Rigging and Animation


    Demo Reel 2015
    Last edited by Denny; 06-26-2017 at 01:50 PM.

  2. #2
    Change default paths, and share content between projects, the unofficial way

    Warning: This is in no way a supported solution by Epic right now. If you use Junctions to share content between projects, be aware that a lot of testing is needed to ensure it is a production ready solution. I have not had problems myself yet, but there could be hidden issues. So tread lightly.

    In my first post I want to share a useful way of circumventing some current limitations with UE4 projects. In Windows, Unreal Projects are by default set to "MyDocs\Unreal Projects". Each project can have a unique path which needs to be set on creation. For The Vault however, you are stuck with a specific path. (..\Unreal Engine\Launcher\VaultCache) This AnswerHub question covers the problem.

    Where are the Vault files stored in the new launcher for 4.2.1?

    So how do we solve this? There actually is an old way of doing this, which is a hidden functionality usually used by sysadmins to administrate servers and workstations. What we need to do is create something called a Junction or Soft Link. (we'll use Junction) Have you ever created a shortcut to a file or a folder before? As you know, this is not the actual folder or file. Double clicking it will lead you to the real thing.

    So what is a Junction then? It is a fancy word for a path that is remapped to a folder on the same or some other harddrive. The main difference from a standard shortcut is that a Junction looks and behaves as if it is the actual folder, even for applications!

    You can watch the video to see the whole process. When you know how it works, it takes a few seconds to do in the future for anything you can imagine.

    To make it clear, an ordinary shortcut to Unreal Projects would look like this:
    C:\..\Desktop\Unreal Projects.lnk (the shortcut on your desktop)
    C:\..\Documents\Unreal Projects (the actual folder you reach through the shortcut)

    For the Junction example, this would be the actual folder on our second harddrive we want to "link".
    D:\Unreal Projects\

    If we create a Junction from that folder, it would look like this.
    C:\..\Documents\Unreal Projects (this is now a Junction)

    It may seem confusing at first. It looks like the folder is on C:\ when you open it. The path even says you are in C:\...\Documents! Don't let that fool you. Internally you are actually on D:\ drive. If we paste any file inside the C:\-drive path, it is actually written in the D:\-drive path. Did you know that Junctions can even be used for network paths? Using this method allows you to put your projects on a local server, like a NAS, to work on the same path as your colleagues do. It's still recommended that you use Perforce or SVN though, too easy to corrupt files otherwise.

    So how do we accomplish this? Usually this involves CMD commands inside windows, but there is a free program to do it easily. Install the program below, it may need a restart.

    1. Go to C:\..\Documents\
    2. Move the folder Unreal Projects to your second harddrive
    3. Right click and drag your moved folder and drop it back inside C:\..\Documents as a Junction.

    If you double click the junction it will appear as if Unreal Projects is still in your Documents folder, and it will do that for Unreal Engine as well! If you open the Launcher you will see that everything is still intact. Only difference is that all your project files now end up on your second hard drive. Any program running on your computer will communicate with the operating system to get files and folders. Programs does not understand the difference between a junction and an actual path. All it knows is if it exists or not, and if it is allowed to read it or not.

    How to share content between projects then? Create a folder for your shared assets. Then create a junction to that folder in your other project. I do advice you tread carefully when working with a shared folder like this, it is possible that there are project specific caches to keep track of assets and you may get weird behaviours. I have not battle tested this myself, but I would expect there are things that could break.

    I hope this is useful!
    Last edited by Denny; 06-21-2014 at 11:19 AM.

  3. #3
    Generic Human Male

    To be able to prototype ideas quickly in the future I will need prototype content. I have modelled and rigged a generic human male in Maya, which I will use for player and AI purposes. I did not use the A.R.T. plugin. I believe a tool like that should be used after having a fundamental understanding of the underlying system.

    The character has a basic skeleton and deformation, with twist bones for shoulders, wrists and legs. I did not create a facial rig because I do not have the time, or the skill, to sculpt a proper face. I have considered doing a generic female too, but I don't know if I will actually gain anything by doing so. I think it's better to save that energy for proper projects later.

    Here are a couple of screenshots of the rig in action, with some poses in the engine. Animations are coming up later.

    Attached Images Attached Images   
    Last edited by Denny; 06-21-2014 at 11:22 AM.

  4. #4
    Changing values during simulation can have unexpected side-effects

    This is directly related to this post I made on AnswerHub a while back. Note that the initial post is not the source of the problem, see the other comments.

    Some animation related aspects, especially State Machines in Animation Blueprints, behaves erratically if default properties are modified during playback / simulation on an actor. If I understand the problem correctly, this is because some components of the actor resets on a default property change, which also causes State Machines to re-evaluate from entry point.

    So a headsup to anyone out there, don't use the details panel for quick debugging of animations on a placed actor. Or at least be aware that you may get odd behavior, You may ask why I was even doing this when I could just work inside the Animation Blueprint? It is because booleans are controlled by another blueprint through the Event Graph, I could not modify the booleans because they would reset back to the other blueprint.

    Note to self: Use other means to debug animations. Using simple level blueprint inputs is fine until an actual controller or AI is implemented to drive the values for me.

  5. #5
    Unarmed movement in level

    I spent three-four hours animating some unarmed cycles in Maya. I did the Idle, Walk, Jog and Run without any references, just to get it quickly over with. They're not perfect, but good enough for prototype use.

    I'm using Root Motion in the first video. I am, however, not going to use root motion for most of my animations though... Because it is very limited in UE4 right now. The only way to get root motion is through AnimMontage and it doesn't allow nifty stuff like 1D Blendspaces. It also doesn't allow blending except when playing/switching a montage. This makes it hard to jump between animations without hitches.

  6. #6
    Unarmed movement in 1D Blendspace

    Here's a video with the animations inside a 1D Blendspace. No root motion of course.

    More to come tomorrow, hopefully.

  7. #7
    Some really good stuff here Denny.
    Been fiddling with blending/overdriving poses based on your "Overgrowth Style" example above.
    Shows promise

    Rule#21: Be polite, be professional, but have a plan to kill everyone you meet.

  8. #8
    Thanks for the feedback fellas!

    Sorry for not doing any updates for a while, life has been super busy. I get my daily UE4-fix at work, so there's not much left to do when I get home. Hopefully I can show some interesting stuff in the future.

  9. #9
    I would love to see some more in-depth Maya related unique content using ART or a custom solution

    Great stuff anyway, really nice RnD

  10. #10
    Thanks Nicolas! I'm going to be honest and say that I will likely never touch ART. I think ART and the whole "default human skeleton" thing might have been one of Epic's worst decisions, because it locked away several workflows that was previously possible in UE3 and now is impossible. As an example, try sharing an animation blueprint with two characters of different skeleton assets and you'll see what I mean. I won't go on a longer rant than this, but if I ever am to make more Maya videos, it is going to be done using conventional methods in Maya.

  11. #11
    Quote Originally Posted by Denny View Post
    Thanks Nicolas! I'm going to be honest and say that I will likely never touch ART. I think ART and the whole "default human skeleton" thing might have been one of Epic's worst decisions, because it locked away several workflows that was previously possible in UE3 and now is impossible. As an example, try sharing an animation blueprint with two characters of different skeleton assets and you'll see what I mean. I won't go on a longer rant than this, but if I ever am to make more Maya videos, it is going to be done using conventional methods in Maya.
    Well, this might interest you...Miquel Campos released today mGear, a rigging framework I used A LOT in Softimage...and its soooo gooodddd!!!!

    Try it, you wont be disappointed

    Honestly I'm really eager to see some tricks in Maya related to rigging ( with or without ART, doesn't really matters ), especially because I'm about to attempt in recreating Naughty Dog The Last of Us rigging style, for both facial animation ( combination of both blend shapes and joints ) and body rig setup ( proxy bones for wrists and clothes UE4-driven animation ), so some nice tricks will be highly appreciated

  12. #12
    Naughty Dog and Bungie always do god-like things with character rigging and pipelines. Studying their methodology more would be fun, but making it look anywhere as good is going to take a lot of hard work. I would love to tackle such a project, but usually it falls short because there are no great character models to work with.

    Whenever I have free time I may look into Miquel's toolset. I personally don't like jumping into other frameworks if I am capable of creating a rig from scratch myself. I already have a lot of tools that I have created myself to streamline my workflow, specifically for games, so I don't know if Miquel's toolset will help me much. It seems great for movie production, hopefully it's good for games as well. In the end we're still in the same spot as with A.R.T.

    I believe that every game should have a custom workflow catered to it. Even if it may be tempting to use an existing solution, it is important to balance the pro's and con's before using it. There are so many technical aspects that need to be setup correctly for an engine.

  13. #13
    Animated interpolation with bounce

    I created this video as a reply to this AnswerHub thread. It shows how to interpolate an object to follow another with a bounce. Might be useful to some of you.

    A candle stick

    In the video I happened to use a model I recently made to practice high poly modelling and then baking down to a low poly object. So I chose a very basic prop. I made the UVs so I could add any material I wanted to the mesh without distortion. The materials in the image below are default ones by Epic, but the mesh, LOD's and normal map by me. It was a great learning experience to get clean normal maps into unreal.

    I used Maya to create the models and Allegorithmic's tools, using the Maya scripts, to bake the normal map.

    Name:  Candlestick_003.jpg
Views: 1167
Size:  75.6 KB
    Name:  Candlestick_002.jpg
Views: 1160
Size:  54.4 KB

  14. #14
    The reason why I haven't been so active here in this thread is because we just released our new game! Another thread already got started, so you can read about it below.

    Guardians of Valor (official thread)
    Last edited by Denny; 06-10-2015 at 12:08 PM.

  15. #15
    My latest demo reel. Has Unity 5, Unreal Engine 3 and Unreal Engine 4 content.

    Last edited by Denny; 07-07-2015 at 03:32 PM.

  16. #16
    Student project - Small game with randomized rooms

    I recently finished a student project for a 3D course. I made an attempt at generating random rooms with different themes, but with the catch that all meshes in the room to be merged at runtime to reduce draw calls. The game features crude mobile style graphics. You can download the playable build below.

    Download playable build (.zip, 76 MB)

    The reason for me attempting this is because I have another top-down project in the making, where I want to generate rooms and reduce draw calls. The hope is that I can re-use this prototype to produce a proper system for merging content.

    I made all the models in Maya and the textures in MS Paint. Some textures were photo sourced because I couldn't be damned to hand paint such a huge area. I also created the materials, particle effects and fire/light effects. Apart from that everything is programmed or made in blueprint, even the animations are procedural. I didn't use any existing classes except Actor. The whole game is contained in a single level blueprint.

    I merge meshes during runtime when the room is spawned. I am quite happy with the system as I support a recursive structure. The floor, walls and ceiling are separate classes which return generated mesh data. I could potentially generate a whole level using recursion if I spent time building the content for it.
    Last edited by Denny; 06-26-2017 at 01:49 PM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts