A long over due post about Unreal Engine

I realised today that I haven’t posted anything about Unreal Engine, and since my final major project for uni is made in it I thought this might be a good chance to show off some of the work we’ve done with it. Should be mentioned that I am working with two very talented artists on this project, so the models are not my own, however the shading/rendering is all mine in the following screenshots. Bare in mind this is all work in process stuff.

Most of the shaders are a standard PBR workflow from substance designer/painter, often starting off from substance B2M. I’m trying where possible to stay on top of the new features in UE4, using volumetic fog/lightmaps where I can. Since the game is designed to be played in VR having the 3D volumetric effects has been a real help in getting the look we wanted. As the next few weeks go on I’m excited to have more of the artists work put into the project and really start to get something that feels like a real speakeasy!

Also I post more of my work on twitter,  so follow me there if you want to see more!

Maya MEL exporter part 2

I made some changes to my MEL OBJ exporter so it exports the selected objects one by one, feel free to copy it from below, credits to Rob The Bloke for his MEL script examples on his website and to Jon Macey for hosting it. (Lucky enough to have a guest lecture from Rob recently, he really knows his stuff!)

 

Anyway here is the script feel free to copy: (and let me know if it could be better)

// Adapted from:
// https://nccastaff.bournemouth.ac.uk/jmacey/RobTheBloke/www/mel/GUI_dialogs.html

// This procedure is called when the 'Open' button of the dialog is clicked.
// The procedure recieves the name of the file and it's extension
proc int onOk(string $dirpath,string $type) 
{
   string $path;
   string $name;
   $path = ($dirpath + "/");
   print("Path Set To: "+$path+"\n");
   // create a prompt dialog to request the users name
		
		    string $nameList[] = `ls -selection -long`;
		    select -cl  ;
            for($object in $nameList)
            {
                select -r $object;
                
                xform -cp;
                
    		    string $result = `promptDialog 
    			-title "Name The Asset: "
    			-message ("Enter Name: (" + $object + ")")
    			-button "OK" -button "Cancel"
    			-defaultButton "OK" -cancelButton "Cancel"
    			-dismissString "Cancel"`;
	 
        	 	// if OK pressed
        		if ($result == "OK") {
                    
                        // query the entry typed by the user
        			    $name = `promptDialog -query -text`;
        			    print("Exporting: " + $path + $name + "\n");
                        
                        float $x = getAttr($object+".tx");
                        float $y = getAttr($object+".ty");
                        float $z = getAttr($object+".tz");
                        
                        move -xyz -rpr 0.0 0.0 0.0 $object;
                        rotate -r -os -fo 90 0 0 ;
                    
                        file -force -options "groups=1;ptgroups=0;materials=0;smoothing=1;normals=1" -type "OBJexport" -pr -es ($path + $name);
                        
                        move -xyz $x $y $z $object;
                        rotate -r -os -fo -90 0 0 ;
                    }
        						  
        		else {
        			print("Export Canceled\n");
        		}
		}
   return true;
}

// The final parameter indicates the type of file dialog. 4=Folder Dialog
// The 1st parameter is a function to call when OK is pressed.
// The 2nd parameter is the text to appear on the OK button.
// The 3rd parameter is the type of file, somewhat meaningless here
fileBrowser( "onOk", "Text", "", 4 );