HeroEngine Forums
Welcome, Guest. Please login or Register for HeroCloud Account.

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Stadi_Thompson

Pages: [1]
1
Design & World Building / Directional Shadows Indoor
« on: Jan 08, 15, 01:27:08 PM »
I noticed the option "Directional Shadows Indoors" is checked in the Render Panel:




I cannot get shadows to cast on objects indoor mainly because the building doesn't let in directional lighting, is there a way to enable this feature to work, was it a feature stripped out?

2
Art & Art Pipeline / Darker Shadows, Shadow Shader help
« on: Nov 08, 14, 01:06:25 PM »
Shadows are too light even when making the Ambient or Side Color 100% black in the lighting panel. Anyone attempt to make the shadows darker by adjusting the shadow shader? If so any help would be appreciated, thanks.

Shadows do not match the world lighting, thus shadows are always weak and faint, example, back/side or ambient lighting set to 100% black, shadows still look like this (shadows should be 100% black):



I purposely took the screenshot of the shadows casting on a lighter concrete texture so they are visible, but out in the wilderness of the game with darker textures/environment shadows are barely visible. I do not know how to script shaders so if anyone has done this or can help out with a tip of what value needs to be modified in the shader I would appreciate it.

3
Art & Art Pipeline / Complete Facegen Tutorial
« on: Jul 21, 14, 03:35:59 PM »
PART ONE

Complete Facegen Tutorial

I strongly recommend reading the Facegen tutorials located in the HeroEngine wiki located here:
http://wiki.heroengine.com/wiki/FaceGen_Pipeline and http://wiki.heroengine.com/wiki/FaceGen_Tutorial . There is a lot of detailed information in these wiki entries that you may need to know and understand before moving forward. This is a compact version I created for the HeroEngine community based off the wiki pages.

Preparing your body morph data files.

-Download and install the HeroEngine Art Pipeline.
-Copy the folder "template_FaceGen_directory" from "C:\HeroEngine\ArtPipeline\Templates" to C:\.

IMPORTANT: Make sure none of the files are marked as "read only", otherwise the whole process will not work.

-Lets rename the folder "template_FaceGen_directory" to "malebody_FaceGen_directory" for this example.
-Each body morph variation must have the same amount of vertices and consist of the same topology. The best way to do this is to make your morph variations from the same base model. Here are my morph variations for my project:



IMPORTANT: Always test your body shapes with the Morpher modifier in 3dsMax to make sure they are morphing correctly. Your morph shapes may have the same amount of vertices and faces, but that doesn't mean the vertex order is the same, this may cause vertex stretching.

-Place all of your full body morph variations models at the 0,0,0.
-Freeze Transforms/Reset Xforms on all of the models after they are scaled appropriately.
-Make sure the model's pivot point is at 0,0,0.
-Detach any eyes, teeth, eye lashes, etc. You just want the basic skin, the basic skin it must be one mesh with one texture.
-Export each mesh to individual OBJ files using the settings shown.



Make sure the settings are exact, otherwise the OBJs will get modified on export and will not work.

IMPORTANT this tutorial is written for 3dsMax units, export setting will be different in Maya.

-Use the following naming scheme when exporting each body shape, name your models xxxxx_tall.obj, xxxxx_heavy.obj, xxxxx_thin.obj etc. Example, malebody_tall.obj, malebody_heavy.obj, malebody_thin.obj
-Create a new folder in "C:\malebody_FaceGen_directory\egm" named "tris"

-Next we are going to setup our script files which bakes the different body shapes OBj files into one morph file.
-Open up process.bat in "C:\malebody_FaceGen_directory" with a text editor.
-Change the line 2 "set logFile="Q:\Template Directory\log.txt" to the directory that you want your log file to be exported to.
-In this example I will change line 2 to set logFile="C:\malebody_FaceGen_directory\log.txt", now save the file.
-The next file we want to setup is "add_morphs.bat" located in "C:\malebody_FaceGen_directory\egm".
-Open up the file in your text editor and edit the lines below line 15.
-For my particular character, the lines I placed below line 15 looked like this:

Code: [Select]
addanimatemorph diff male_average_body.tri male_heavy_body.tri "Heavy" InternalMeanFace.tri
addanimatemorph diff InternalMeanFace.tri male_thin_body.tri "Thin" InternalMeanFace.tri
addanimatemorph diff InternalMeanFace.tri male_muscular_body.tri "Muscular" InternalMeanFace.tri
addanimatemorph diff InternalMeanFace.tri male_short_body.tri "Short" InternalMeanFace.tri
addanimatemorph diff InternalMeanFace.tri male_tall_body.tri "Tall" InternalMeanFace.tri
tri2egm InternalMeanFace.tri InternalMeanFace.egm

-Now run/execute process.bat in "C:\malebody_FaceGen_directory"
-After the process is done, check your log.txt file to make sure everything went well. Any errors will be listed in the log file. My successful log file reads:

Code: [Select]
G:\malebody_FaceGen_directory\egm>del InternalMeanFace.*

G:\malebody_FaceGen_directory\egm>cd objs

G:\malebody_FaceGen_directory\egm\objs>REM

G:\malebody_FaceGen_directory\egm\objs>REM ***OBJ->TRI***

G:\malebody_FaceGen_directory\egm\objs>REM

G:\malebody_FaceGen_directory\egm\objs>REM Copy objs to extensionless files

G:\malebody_FaceGen_directory\egm\objs>FOR %f IN (*.obj) DO COPY "%f" *.

G:\malebody_FaceGen_directory\egm\objs>COPY "repopmale_base.obj" *.
        1 file(s) copied.

G:\malebody_FaceGen_directory\egm\objs>COPY "repopmale_fit.obj" *.
        1 file(s) copied.

G:\malebody_FaceGen_directory\egm\objs>COPY "repopmale_heavy.obj" *.
        1 file(s) copied.

G:\malebody_FaceGen_directory\egm\objs>COPY "repopmale_short.obj" *.
        1 file(s) copied.

G:\malebody_FaceGen_directory\egm\objs>COPY "repopmale_tall.obj" *.
        1 file(s) copied.

G:\malebody_FaceGen_directory\egm\objs>COPY "repopmale_thin.obj" *.
        1 file(s) copied.

G:\malebody_FaceGen_directory\egm\objs>REM Use extensionless files to iterate through objs, converting to tris

G:\malebody_FaceGen_directory\egm\objs>FOR %f IN (*.) DO fileconvert obj-tri "%f" "%f" 

G:\malebody_FaceGen_directory\egm\objs>fileconvert obj-tri "repopmale_base" "repopmale_base" 

G:\malebody_FaceGen_directory\egm\objs>fileconvert obj-tri "repopmale_fit" "repopmale_fit" 

G:\malebody_FaceGen_directory\egm\objs>fileconvert obj-tri "repopmale_heavy" "repopmale_heavy" 

G:\malebody_FaceGen_directory\egm\objs>fileconvert obj-tri "repopmale_short" "repopmale_short" 

G:\malebody_FaceGen_directory\egm\objs>fileconvert obj-tri "repopmale_tall" "repopmale_tall" 

G:\malebody_FaceGen_directory\egm\objs>fileconvert obj-tri "repopmale_thin" "repopmale_thin" 

G:\malebody_FaceGen_directory\egm\objs>REM Delete extensionless files

G:\malebody_FaceGen_directory\egm\objs>DEL *.

G:\malebody_FaceGen_directory\egm\objs>REM Reposition tri files

G:\malebody_FaceGen_directory\egm\objs>MOVE *.tri ..\tris\
G:\malebody_FaceGen_directory\egm\objs\repopmale_base.tri
G:\malebody_FaceGen_directory\egm\objs\repopmale_fit.tri
G:\malebody_FaceGen_directory\egm\objs\repopmale_heavy.tri
G:\malebody_FaceGen_directory\egm\objs\repopmale_short.tri
G:\malebody_FaceGen_directory\egm\objs\repopmale_tall.tri
G:\malebody_FaceGen_directory\egm\objs\repopmale_thin.tri
        6 file(s) moved.

G:\malebody_FaceGen_directory\egm\objs>cd ..\

G:\malebody_FaceGen_directory\egm>REM

G:\malebody_FaceGen_directory\egm>REM ***Build EGM***

G:\malebody_FaceGen_directory\egm>REM

G:\malebody_FaceGen_directory\egm>copy tris\*.tri .\
tris\repopmale_base.tri
tris\repopmale_fit.tri
tris\repopmale_heavy.tri
tris\repopmale_short.tri
tris\repopmale_tall.tri
tris\repopmale_thin.tri
        6 file(s) copied.

G:\malebody_FaceGen_directory\egm>call add_morphs.bat

G:\malebody_FaceGen_directory\egm>REM ********          add_morphs.bat             *************************************************************

G:\malebody_FaceGen_directory\egm>REM * This file is where you specify the base and extreme meshes that make up                                *

G:\malebody_FaceGen_directory\egm>REM * the controls of your base statistic. Each line has the following form:                                 *

G:\malebody_FaceGen_directory\egm>REM * addanimatemorph diff input.tri extremeMeshName.tri "Display Name of This Control" InternalMeanFace.tri *

G:\malebody_FaceGen_directory\egm>REM *                                                                                                        *

G:\malebody_FaceGen_directory\egm>REM * Things that you change are as follows:                                                                 *

G:\malebody_FaceGen_directory\egm>REM *    input.tri : -On the first line, this should be the name of your base mesh gr2 (but with a tri extension)

G:\malebody_FaceGen_directory\egm>REM *                -On every line after the first, this should be InternalMeanFace.tri                     *

G:\malebody_FaceGen_directory\egm>REM *    extremeMeshName.tri : the name of the extreme mesh for the control, with a .tri extension           *

G:\malebody_FaceGen_directory\egm>REM *    "Display Name of This Control" : the string displayed to the user (via HSL) that tells what this control does

G:\malebody_FaceGen_directory\egm>REM *      *

G:\malebody_FaceGen_directory\egm>REM * Note that FaceGen requires at least 3 controls. If you don't have that many,                           *

G:\malebody_FaceGen_directory\egm>REM * fill in the remaining control lines with "dummy" controls that have extremeMeshName.tri                *

G:\malebody_FaceGen_directory\egm>REM * set to the same name as your base mesh (with a .tri extension); this will make controls that do nothing.

G:\malebody_FaceGen_directory\egm>REM **********************************************************************************************************

G:\malebody_FaceGen_directory\egm>addanimatemorph diff repopmale_base.tri repopmale_heavy.tri "Heavy" InternalMeanFace.tri

G:\malebody_FaceGen_directory\egm>addanimatemorph diff InternalMeanFace.tri repopmale_thin.tri "Thin" InternalMeanFace.tri

G:\malebody_FaceGen_directory\egm>addanimatemorph diff InternalMeanFace.tri repopmale_fit.tri "Fit" InternalMeanFace.tri

G:\malebody_FaceGen_directory\egm>addanimatemorph diff InternalMeanFace.tri repopmale_short.tri "Short" InternalMeanFace.tri

G:\malebody_FaceGen_directory\egm>addanimatemorph diff InternalMeanFace.tri repopmale_tall.tri "Tall" InternalMeanFace.tri

G:\malebody_FaceGen_directory\egm>tri2egm InternalMeanFace.tri InternalMeanFace.egm
5 diff morphs converted to EGM modes

G:\malebody_FaceGen_directory\egm>ECHO YES   | copy InternalMeanFace.tri "..\customizer_1_1\data\"
        1 file(s) copied.

G:\malebody_FaceGen_directory\egm>ECHO YES   | copy InternalMeanFace.egm "..\customizer_1_1\data\"
        1 file(s) copied.

G:\malebody_FaceGen_directory\egm>ECHO YES   | copy InternalMeanFace.tri "..\ctl\"
        1 file(s) copied.

G:\malebody_FaceGen_directory\egm>ECHO YES   | copy InternalMeanFace.egm "..\ctl\"
        1 file(s) copied.

G:\malebody_FaceGen_directory\egm>del .\tris\*.tri

G:\malebody_FaceGen_directory\egm>del InternalMeanFace.*

G:\malebody_FaceGen_directory\egm>del .\*.tri

G:\malebody_FaceGen_directory\ctl>customCtl InternalMeanFace.egm InternalMeanFace.tri dummy.egt si.ctl

G:\malebody_FaceGen_directory\ctl>copy si.ctl "templateBody.ctl"
        1 file(s) copied.

G:\malebody_FaceGen_directory\ctl>del InternalMeanFace.*

G:\malebody_FaceGen_directory\ctl>if exist ..\facegen_modeller_3_0\nul copy "templateBody.ctl" "..\facegen_modeller_3_0\si.ctl"

G:\malebody_FaceGen_directory\ctl>copy si.ctl ..\fg\
        1 file(s) copied.

G:\malebody_FaceGen_directory\fg>copy ..\ctl\si.ctl .\
        1 file(s) copied.

G:\malebody_FaceGen_directory\fg>BlankFGCoord si.ctl "defaultTemplate.fg"
Read 5 symmetrical geometry controls, 0 asymmetrical geometry controls, and egm basis number 20040219.
Read 3 symmetrical texture controls, 0 asymmetrical texture controls, and egt basis number 0.
Writing 8 controls.
G:\malebody_FaceGen_directory\fg>del si.ctl

-Let's setup this morph data we just generated above in Facegen Customizer.
-To acquire Facegen Customizer, you simply email Facegen support saying you have a HeroCloud license under your name and email.
-Run Customizer.exe from "C:\malebody_FaceGen_directory\customizer_1_1"
-Enter your serial number you received from Facegen support if not already registered.
-Select "New Project". In the dialogue box set the project name and the model set name "malebody", and used "C:\malebody_FaceGen_directory\" as the data directory



-Click Next twice.
-Browse/Add the directory "C:\malebody_FaceGen_directory\customizer_1_1\data\InternalMeanFace.tri" into both fields.



-Click next a few times until you get the the seam vertices screen.



-Click next.
-Click "Start Setup", this can take up to minutes or hours to generate cache files depending on the complexity of your models. It takes about 5-10 minutes on an i5 processor

IMPORTANT: It is very important that you keep your body morph data and your head morph data in separate folders, otherwise Customizer will get confused.



Preparing your head morph data files.

-Copy the folder "template_FaceGen_directory" from "C:\HeroEngine\ArtPipeline\Templates" to C:\.

IMPORTANT, Make sure none of the files are marked as "read only", otherwise the whole process will not work.

-Lets rename the folder "template_FaceGen_directory" to "malehead_FaceGen_directory" for this example.
-Open your game character inside of your 3d application (3ds Max in this example). Make sure your characters head is detached from the body. The head must also be skinned to the skeleton of the game model. Make sure your character is of proper scale for HeroEngine. Your character should be setup similar to the images below.




-Import the "facegen_meanface.obj" model from "C:\HeroEngine\ArtPipeline\Templates\template_FaceGen_directory\customizer_1_1\" into the current scene. IMPORTANT, this tutorial is written for 3dsMax, there is a different meanface OBJ file for Maya due to vertex order being different.
-Rotate, uniform Scale and Translate "InternalMeanFace" until it fits like a mask over your game head model. Reset xform/freeze transform and reset the pivot point to 0,0,0 making sure it still covers the face like a mask. IMPORTANT: DO NOT scale the InternalMeanFace non-uniformly, do not squash, skew or stretch. Also do not edit the vertices. the InternalMeanFace should look similar to the image below once positioned.



Make sure the settings are exact, otherwise the head will get modified on export and will not work.
-Export the head model separately using the settings shown. (If your game model's head mesh is not triangulated, export it as an HGM model then drag and drop it on the file HGM2Obj.exe, located in "C:\HeroEngine\ArtPipeline\HGMToObj" and use the outputted OBJ, instead)



-I named it "male_average_head.obj" in this example. Save the head to C:\malehead_FaceGen_directory\ (you will not be running any scripts during the head setup, so the directory is not as important)

-You must now export the InternalMeanFace separately using the settings shown below. Save the Internalmeanface to C:\malehead_FaceGen_directory\ , I named it "male_meanface.obj" (you will not be running any scripts during the head setup, so the directory is not as important).



-Open up customizer.exe in "C:\malehead_FaceGen_directory\customizer_1_1".
-Create a new project using the settings in the image below for this example.



-Proceed to the next part of the process. Here we will setup the internalmeanface to match your high res male face. When the two models are imported the should look like the image below.



-Proceed by pressing next until you reach the seam setup. Select all of the vertices around the neck.



-Proceed and click "Start Setup". This Takes 2 hours or so on an i5 processor machine.

4
General Discussion / Congrats on The Elder Scrolls Online
« on: Apr 05, 14, 06:56:08 PM »
I picked up a copy of The Elder Scrolls Online for my son, first thing I see when installing it is a full screen Powered by HeroEngine logo splash. Congrats on that, hopefully it brings a lot of business to IF.

5
Design & World Building / [Resolved] Rain
« on: Feb 06, 13, 07:58:36 PM »
Rain isn't showing when you increase the slider in the weather tab.  Not sure if it's already been posted or an isolated issue with our server. Thanks.

6
I have been unsuccessful exporting VDA animations with meshes embedded into the animation file. Example I want to include a pick axe in my mining animation, I unchecked "Exclude Meshes" in the Hero Exporter VDA animation rollout. Just exports the bones and animation. Any idea, is this a bug or does VDA just not support mesh objects? I figured it did since it had an option to include and exclude meshes. I know this can be done with FX, but trying to avoid that would be much easier for me to have it attached to the animation in Max. Thanks.

7
Design & World Building / [Resolved] Merge ReGrid
« on: Mar 10, 11, 01:19:34 PM »
Seem to have mixed results on block size. On Nvidia card the higher the block size the better the FPS. Our programmers both have ATI cards, seem to be opposite results. I get 20-40 more FPS with 128 or 256 block size vs 64. ATI guys are experiencing significant loss. Anyone know much about Merge/Regrid option in the Terrain Panel?

8
Design & World Building / [Resolved] Shadows not casting indoors
« on: Jan 01, 11, 04:26:31 PM »
We have a series of models which are mesh interior rooms, once imported shadows from omni lights and spot lights do not cast shadows no matter what settings are enabled in the render panel.

Pages: [1]