Shields Posted June 29, 2018 Share Posted June 29, 2018 (edited) Hey All, I've been trying to work out a simple pipeline to generate a crowd from impostors for use in Unreal 4 using models from Fuse with animations from Mixamo. Creating characters in Fuse is extremely fast and simple, and the one-click option to send it to mixamo to rig it and load in animations opens up a lot of potential for easy crowd generation. However, with a lot of projects shifting towards VR / AR these days we need more and more efficient crowds. The impostor workflow offers a great solution for that, and the GameDev Impostor Camera Rig + GameDev Impostor Texture ROP really set it up to be really nice and easy to generate the output - but I'm running into some issues and could use some outside opinions. For reference, I'm following Mike Lyndon's documentation here: https://www.sidefx.com/tutorials/generating-impostor-textures/ So far, the following steps are working out pretty well - 1) Create Character in Fuse 2) Rig and Animate Fuse Character with Mixamo 3) Import FBX to Houdini 4) Extract FBX Geo to new Geo node 5) Create new Mat inside new Geo node, remap existing materials 6) Create GameDev Impostor Camera Rig at obj level 7) Create ROP Network, create GameDev Impostor Texture inside ROP network 8) Direct Camera Rig towards Impostor Texture, Direct Impostor Texture towards Camera Rig 9) Set Impostor Texture to 'Animation' mode and render out to $HIP/TEST/${OS}_${WEDGE}.$F4.png (or appropriate directory / filetype, this is for testing purposes) The problem I run into is at render time; the ROP is intended (afaik) to render out the frames of animation, rotate the camera, and then render out the frames of animation again from the new angle. It does exactly this, but overwrites the first frames of the animation each time the camera rotates. I thought the _${WEDGE} portion of the file naming would handle this but it doesn't seem to be appended to my filenames. Right now I'm getting "rop_impostor_texture1.0006.png" where 'rop_impostor_texture1' is the name of my impostor texture and '0006' is the frame. Any thoughts as to why this might be happening or possible solutions would be appreciated. Please let me know if any specific screenshots would help (ie. the ROP, Camera Rig, etc). UPDATE 001) **NOTE: This only applies to non-production build 1.20; the naming is set up properly in production build 1.12** Solved the naming / output issue, it turns out the GameDev_Impostor_Texture rop was looking for the wrong output picture parm. This is the field that needs to be re-directed for the output to work as expected: Also worth noting is that if you assemble the sprite sheet expecting the Unreal shader template to work, be sure to have the animation frames in the Y axis and and camera rotation in the X axis. The next major hurdle for me is to try to reduce the camera rotation range to 180 degrees, since I don't need the back views of my crowd characters, and to limit the animation frames... which I'm more concerned about at the moment. I need to retarget a 64 frame animation down to ~16 frames or less. The fewer I can get it down to, the potentially higher resolution I can let the individual sprites be. More updates to come. Edited July 2, 2018 by Shields update, clarified version 1 Quote Link to comment Share on other sites More sharing options...
Marythebest537 Posted August 2, 2018 Share Posted August 2, 2018 Good Job! Can I ask you if you can attach an example Houdini file? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.