Saturday, April 18, 2015

So much to do, so much to see

I have gotten an occlusion culling system implemented into Unity Free! It uses a combination of realtime and baked modes for optimal results. Check out the video for more details. Download the source + an example scene via the link below. It is worth noting that Unity 5, which came out this previous week, includes occlusion culling, LOD and all of the other previously restricted-to-pro engine features. I've additionally done some low level research and done an occlusion culling presentation at work! (Slideshow here)

I've also done some further testing with markerless motion capture tech. iPi Motion Record / Capture yields some satisfying results for simple animations. More complex animations require an additional Kinect to be placed perpendicular to the current camera. Any frames where an arm or leg is occluded (which is rather often) requires manual placement of the limb for each frame. The best option would seem to be using 6 PS Eyes.

The behavior tree has gotten some work as well. I've put in the back end to start setting up the logic and am working toward getting a character moving around with it. I've been dividing time between this and playing with tasty new Unity 5 features, though I've also had my eye on Unreal Engine's freeness too! I've gotten a Google Cardboard VR headest I've been playing with. I'm intrigued by the possibility of using HRTFs for accurate 3D audio response with VR. I've gotten a test scene working with some custom assets I'd made (learning my way around blender a bit too!) to further work with the VR tech.

In the immortal words of Smashmouth's Steven Scott Harwell, "So much to do, so much to see." -MB


Progress
  • Polished occlusion culling script
  • Added baked version that creates cells with mesh information
    • Can be used with realtime scanning or on its own
  • Generates bounding volume of mesh renderers
    • Can define unit size for grid in each dimension. This is the maximum size a given grid cell will be before an additional cell is added in that dimension.
  • Buttons to disable LOD, culling, baked, realtime, or both
  • Created example scene and uploaded with source, avail above.
  • Behavior Tree logic progress
  • Structure of tree logic using event based system
  • Starting creating action logic
  • Primitive data passing through tree
  • Further motion capture research
  • Got a solid walking animation, took a bit of work
  • Tried for some other animations with poorer results
  • Created a test scene for Google Cardboard VR


Goals

  • (Behavior Tree) Make AI character execute GotoGameobject behavior
    • Add arguments to BT nodes
    • Add inspector panel to VBT
    • Write action
    • Make VBT connect to and implement BT logic
      • Write composite and decorator logic into VBT
  • Dig in to Unreal Engine with startup tutorials, using C++

Wednesday, February 4, 2015

Occlusion Culling + LOD Progress (Video)

I've been working on getting an effective occlusion culling solution implemented and have come up with a raycasting based one after a few iterations, in addition to an integrated LOD solution. I'm going to optimize further and then move on to finish the VBT editor.



Progress
  • Occlusion culling script functioning
  • LOD script complete
  • Added new house models, improved model importing workflow
  • New leather armor created
  • Redid character armor equipping method, which will result in far less clipping and easier animations
  • Gameplay flow outlined more thoroughly in GDD
  • Overhauled test town level
  • Added new guard tower model
  • Added new trader post model
  • Added new tavern model
  • Added new town hall model
  • Further research into optimal behavior tree implementation (Node/Task)

Goals
  • Fix time slowdown on framerate drop
  • Further optimize occlusion culling via precalculation (baking)
  • Publish Occlusion Culling + LOD solution to Asset Store
  • Improve lightmapping + lighting
  • Make AI character execute GotoGameobject behavior
    • Add arguments to BT nodes
    • Add inspector panel to VBT
    • Write action
    • Make VBT connect to and implement BT logic
      • Use node / task structure to avoid redundant allocation
      • Write composite and decorator logic into VBT?
  • Improve motion capture importing. Try to not apply root motion on export.
    • Make test capture to debug skeleton mapping

Tuesday, January 27, 2015

Abomination with ragdoll throwing action!

In this and future posts I'll be giving a short description of the work in progress and then list the changes from the previous post, future goals for the next and maybe some screenshots and/or videos at the bottom.


Progress
  • Added Abomination character with a few animations 
  • Added animation to human of being picked up and thrown by abomination 
  • Correlated human and abomination throwing animations, so that they work together and the human is ragdolled and thrown away 
  • Added camera tracking so that camera will now automatically track the player model when it goes ragdoll 
  • Added new version of wealthy town house 
  • Improved model importing workflow 
  • Reorganized repository

Goals
  • Fix time slowdown on framerate drop
  • Look into writing rudimentary occlusion culling for optimization
  • Improve lightmapping + lighting
  • Make AI character execute GotoGameobject behavior
    • Add arguments to BT nodes
    • Add inspector panel to VBT
    • Write action
    • Make VBT connect to and implement BT logic
      • Write composite and decorator logic into VBT?
  • Improve motion capture importing. Try to not apply root motion on export.
    • Make test capture to debug skeleton mapping








Tuesday, January 20, 2015

Mo'cappin, VBT Updates

In the past few days, we've gotten some new motion capture tech working! We're working out a solid workflow currently, but this should do well for the quality of animations.

Amongst the havoc of motion capture, I've made some pretty updates to the Visual Behavior Tree (VBT) Editor. New icons, as well as some additional functionality (scraping the directory to get node types and listing them out). This bad boy will be ready to go after a few more tweaks.


(Some slick new icons in an example tree structure)

Next up is hooking up the VBT for use and refining the mocapped animation workflow to start pumping them out. Be well!

-MB

Thursday, January 15, 2015

Guess Who's Back, VBT Editor

After a bit of dormancy, development on the game is once again in full gear! Major changes to the design have occurred resulting in sharpened focus on magic, strategy and roleplay. I am very excited for what's to come. I'll go into this in more depth in an upcoming post. In the meantime, a teaser...

(In-Progress Visual Behavior Tree [VBT] Editor)

AI will be using behavior trees (as you may have guessed) and so for easy modification and scalability I've started whipping up a visual editor in the Unity GUI. Once this guy is all done, it'll output to XML to be read in at runtime and give our AI some awesome depth and reusability! More soon. -MB