<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Variance Theory &#187; Game Art</title>
	<atom:link href="http://variancetheory.com/category/gameart/feed/" rel="self" type="application/rss+xml" />
	<link>http://variancetheory.com</link>
	<description>The work of Ben Throop - Artist, Designer, and Developer</description>
	<lastBuildDate>Wed, 27 Oct 2010 03:46:34 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Animated Texture Builder</title>
		<link>http://variancetheory.com/animated-texture-builder/</link>
		<comments>http://variancetheory.com/animated-texture-builder/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 06:20:31 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Game Art]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[SubFeatured]]></category>
		<category><![CDATA[Tech Art]]></category>
		<category><![CDATA[Textures]]></category>

		<guid isPermaLink="false">http://variancetheory.com/?p=538</guid>
		<description><![CDATA[Create grid textures from movies.]]></description>
			<content:encoded><![CDATA[<p>Some engines (Unity, Unreal) support animated textures that are formatted in a grid. However not all engines support converting movies into this format.  After looking around for something that would do this and failing to find anything, I wrote a 3dsmax script to help out with this process. It takes in one or more avi&#8217;s and builds a subdivided plane with the corresponding frames mapped to the quads. It then creates a camera. All you need to do at that point is set the render size and render out the camera view.</p>
<p style="text-align: center;"><span style="font-size: large;"><a href="../wp-content/uploads/2009/12/AnimTexBuilder.ms">Download AnimTexBuilder.ms</a></span></p>
<p><a rel="shadowbox;width=900;height=670;" href="http://variancetheory.com/wp-content/uploads/2009/12/2009-12-01_0054.swf"><img class="size-medium wp-image-413 aligncenter" title="AnimTex_Thumb" src="http://variancetheory.com/wp-content/uploads/2009/12/AnimTex.jpg" alt="Animtex_Thumb" /></a></p>
<p><span style="font-size: large;"> </span></p>
]]></content:encoded>
			<wfw:commentRss>http://variancetheory.com/animated-texture-builder/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>VFX &#8211; MUA2</title>
		<link>http://variancetheory.com/vfx-mua2/</link>
		<comments>http://variancetheory.com/vfx-mua2/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 21:50:28 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Game Art]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[Tech Art]]></category>

		<guid isPermaLink="false">http://variancetheory.com/?p=529</guid>
		<description><![CDATA[Cutscene FX for Vicarious Visions/Activision]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="338" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=7338518&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="600" height="338" src="http://vimeo.com/moogaloop.swf?clip_id=7338518&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Towards the tail end of <a href="http://www.vvisions.com">Vicarious Visions</a>&#8216; work on <a href="http://marvelultimatealliance.marvel.com/">Marvel Ultimate Alliance 2</a> for the 360 and PS3, I contacted my old boss <a href="http://www.vvisions.com/about/management.cfm">Steve Derrick</a> and asked if he could use me for anything. The timing was right &#8211; they were a bit short on folks to do FX production. Since I had some experience with the tools and processes at VV, Steve asked me to come on and build some cutscene FX.</p>
<p>This was a blitzkrieg of a job. Entering crunch from the word go, it was 3 weeks to get set up, learn the new system, and produce a series of effects. For the most part, the scenes were entirely set up and just waiting for particles and corresponding effects, like lighting, screen flash, and physics chunks. I was given some solid direction by <a href="http://features.cgsociety.org/story_custom.php?story_id=5273">Brent Gibson</a> and I had creative freedom in deciding how to execute the work which kept my motivation level sky high.</p>
<p>As with any large project, there&#8217;s significant overhead in integration. Checkins were only allowed after a team member had completely validated their work locally. This means lots of syncing, lots of building, and lots of waiting. At that stage of the project though, you do not want to be the sucker that breaks the build. Luckily I escaped the ire of Aaron, the lead engineer, and my checkins all cleared.</p>
<p>Overall, I would&#8217;ve been more productive had I been local for the duration of the contract, but with my wife ready to go into labor at any moment, I wasn&#8217;t able to go on site except for a day to ramp up and pick up a devkit. Still, what I was able to provide even under those circumstances was a win for everyone and I enjoyed the work immensely &#8211; even carrying a rekindled love of particle explosions into the creation of Detonator after my son was born.</p>
]]></content:encoded>
			<wfw:commentRss>http://variancetheory.com/vfx-mua2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Detonator &#8211; Explosions for Unity3D</title>
		<link>http://variancetheory.com/detonator/</link>
		<comments>http://variancetheory.com/detonator/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 16:54:35 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Game Art]]></category>
		<category><![CDATA[Tech Art]]></category>
		<category><![CDATA[Textures]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://variancetheory.com/?p=517</guid>
		<description><![CDATA[Created for the Unity Summer of Code 2009.]]></description>
			<content:encoded><![CDATA[<p>(Update 10/26/2010 &#8211; A version of Detonator for Unity 3.0 is now available.)</p>
<p>Detonator is an extension for <a href="http://unity3d.com">Unity3D</a> that lets you make good looking explosions quickly and easily for your Unity projects. How you use it depends on who you are and what your goals are. Solo coders can quickly get prototype explosions going while artists can stack effects to quickly make complex explosions.</p>
<p><a href="http://variancetheory.com/wp-content/uploads/2009/10/Detonator102shot.jpg" rel="shadowbox[post-517];player=img;"><img class="aligncenter size-medium wp-image-522" title="Detonator102shot" src="http://variancetheory.com/wp-content/uploads/2009/10/Detonator102shot-585x369.jpg" alt="Detonator102shot" width="585" height="369" /></a></p>
<p>Detonator was created originally for the Unity Summer of Code 2009 &#8211; <a href="http://unity3d.com/support/resources/unity-extensions/explosion-framework">Major releases are hosted on the Unity website</a>.</p>
<p><span style="text-decoration: underline;"><span style="font-size: large;"><a href="http://variancetheory.com/wp-content/uploads/2010/10/Detonator-1.3b3.unitypackage">NEW! Download Detonator 1.3b for Unity 3.0</a></span></span></p>
<h4><a href="http://unity3d.com/support/resources/files/Detonator.unitypackage">Download Detonator 1.02 for Unity 2.6</a></h4>
<p>Instead of replicating the documentation here, which will change over time, here&#8217;s the webplayer that shows what Detonator can do.</p>
<p><span id="more-517"></span></p>
<p><em>Please view the full post to see the Unity content.</em></p>
<h3>Bug Reports</h3>
<p>If you find bugs in the package please report them by dropping a comment on this page.</p>
]]></content:encoded>
			<wfw:commentRss>http://variancetheory.com/detonator/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>Arctic Thunder Sleds</title>
		<link>http://variancetheory.com/arctic-thunder-sleds/</link>
		<comments>http://variancetheory.com/arctic-thunder-sleds/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 15:56:21 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Game Art]]></category>
		<category><![CDATA[SubFeatured]]></category>

		<guid isPermaLink="false">http://variancetheory.com/?p=304</guid>
		<description><![CDATA[Concept, Model, Texture]]></description>
			<content:encoded><![CDATA[<p><a href="http://variancetheory.com/wp-content/uploads/2009/06/AT_Turntable.flv" rel="shadowbox[post-304]"></a><br />
<img class="alignleft" title="Arctic Thunder Logo" src="http://ps2media.ign.com/media/previews/image/arcticthunder/arcticthunder_logo_640w.jpg" alt="" width="360" height="154" /></p>
<p>At the tail end of my stint at Inland Productions, I did a few snowmobiles for their port of Midway&#8217;s Arctic Thunder to the PS2 and XBox, but I left for Sony before it was completed.  These vehicles were additions to the ones from the arcade version and were my own concepts, models, and textures. Basically they are tricked out, over the top, arcadey snowmobiles.</p>
<table style="width: 95%;" border="0" cellpadding="5" align="center">
<tbody>
<tr>
<td>
<p style="text-align: center;"><img class="alignleft size-full wp-image-314" title="sarge" src="http://variancetheory.com/wp-content/uploads/2009/06/sarge.jpg" alt="sarge" width="256" height="256" /></p>
</td>
<td>
<p style="text-align: center;"><img class="alignleft size-full wp-image-313" title="indigo" src="http://variancetheory.com/wp-content/uploads/2009/06/indigo.jpg" alt="indigo" width="256" height="256" /></p>
</td>
</tr>
</tbody>
</table>
<p><a rel="shadowbox;width=640;height=480;" href="http://variancetheory.com/wp-content/uploads/2009/06/AT_Turntable1.flv"><img class="size-medium wp-image-310 alignleft" title="Sleds_Thumb" src="http://variancetheory.com/wp-content/uploads/2009/06/Sleds_Thumb-500x375.jpg" alt="Sleds_Thumb" width="500" height="375" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://variancetheory.com/arctic-thunder-sleds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maxscript &#8211; PaintOBB</title>
		<link>http://variancetheory.com/maxscript-paintobb/</link>
		<comments>http://variancetheory.com/maxscript-paintobb/#comments</comments>
		<pubDate>Sat, 27 Jun 2009 22:30:24 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Game Art]]></category>
		<category><![CDATA[SubFeatured]]></category>
		<category><![CDATA[Tech Art]]></category>

		<guid isPermaLink="false">http://variancetheory.com/?p=270</guid>
		<description><![CDATA[Create Collision Boxes From Mesh]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">When I was at Vicarious Visions working on Spiderman 3, artists were responsible for building collision geometry. More often than not, a bounding box was the recommended collision type.</p>
<p style="text-align: left;">Once we started doing Interiors with the system, it became apparent that folks needed a better way to make an OBB and AABB for selected geometry, so I created a tool in Maxscript that let them easily do so. I can&#8217;t share the code, but below is a video that I made while I was working there to introduce the PaintOBB tool to the artists on the team.</p>
<p style="text-align: left;">The idea was to let the artist invoke the tool, then paint over faces on the selected model. The tool would then generate a first pass bounding box based on the selection. Then the user would move their mouse along the desired axis, and the box would shrink wrap to fit around the geometry, creating the most efficient OBB with minimal work.</p>
<p style="text-align: center;"><a rel="shadowbox;width=800;height=700;" href="http://variancetheory.com/wp-content/uploads/2009/06/paintobb.swf"><img class="size-medium wp-image-413 aligncenter" title="PaintOBB_Thumb" src="http://variancetheory.com/wp-content/uploads/2009/06/PaintOBB_Thumb-447x375.jpg" alt="PaintOBB_Thumb" width="447" height="375" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://variancetheory.com/maxscript-paintobb/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>EA&#8217;s Ultimate Hunt Challenge</title>
		<link>http://variancetheory.com/ultimate-hunt-challenge/</link>
		<comments>http://variancetheory.com/ultimate-hunt-challenge/#comments</comments>
		<pubDate>Sat, 27 Jun 2009 16:33:11 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Game Art]]></category>
		<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://variancetheory.com/?p=229</guid>
		<description><![CDATA[UI Art, Textures, Models.]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s some artwork from one of my first titles. You&#8217;ll see a bunch of what look like satellite imagery. These were overhead maps that the player would use to choose their starting location. Some were 8 miles by 8 miles if I remember correctly. Others were a little closer up, like 1 mile by 1 mile. These were really fun to build. I&#8217;d receive an ugly looking snapshot of the world like this:</p>
<table style="width: 100%;" border="0" align="center">
<tbody>
<tr>
<td>
<div id="attachment_252" class="wp-caption alignnone" style="width: 240px"><a href="http://variancetheory.com/wp-content/uploads/2009/06/neb_start.jpg" rel="shadowbox[post-229];player=img;"><img class="size-full wp-image-252" title="neb_start" src="http://variancetheory.com/wp-content/uploads/2009/06/neb_start.jpg" alt="What I'd Get" width="230" height="230" /></a><p class="wp-caption-text">What I&#39;d Get</p></div></td>
<td>
<p><div id="attachment_239" class="wp-caption alignnone" style="width: 240px"><a href="http://variancetheory.com/wp-content/uploads/2009/06/Overhead_nebraska425.jpg" rel="shadowbox[post-229];player=img;"><img class="size-full wp-image-239  " title="Overhead_nebraska425" src="http://variancetheory.com/wp-content/uploads/2009/06/Overhead_nebraska425.jpg" alt="Overhead_nebraska425" width="230" height="230" /></a><p class="wp-caption-text">What I&#39;d Make From That</p></div></td>
</tr>
</tbody>
</table>
<p>Then I&#8217;d take it into Max, get the heightmap for the level, displace it, light it, and then use that for a shade map. Then I&#8217;d take the whole thing into Photoshop and start painting it up. Sometimes I&#8217;d do it up and make a spec map on the water or bump maps on the forests and rerender it.</p>
<p>Then there is a sheet of tile textures that I did for a winter level. The system for this game was actually kind of cool, and was a precursor to systems I would use years later on Spiderman 3. It was a tiling and instancing system that allowed the world to be miles across. So those little square textures would each be one quad on the map. Then using a tile builder, a roughly 16&#215;16 quad tile would be populated with trees and other entities. Then that tile would be arranged on the world map.</p>
<p>The upside of this is a huge world. The downside is that the world was quite repetitive. Anyhow, it was a hunting game. It was 1999. People liked this kind of thing.</p>
<p>Last there were a few low poly models in there too. I show those just to say hey, I made a bunny in under 100 triangles. Those models were even rigged and animated. I&#8217;ll see if I can dig it up, but I have a sick bunny hopping loop that this portfolio is sorely lacking.</p>
<p>***UPDATE***</p>
<p><a href="http://blip.tv/file/get/Mrsriley-Bunnyhop319.flv" rel="shadowbox[post-229]">The bunnyhop is here</a>.</p>
<p>
<a href='http://variancetheory.com/wp-content/uploads/2009/06/various.jpg' rel='shadowbox[post-229];player=img;' title='various'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/various-284x150.jpg" class="attachment-thumbnail" alt="" title="various" /></a>
<a href='http://variancetheory.com/wp-content/uploads/2009/06/groundtex.jpg' rel='shadowbox[post-229];player=img;' title='groundtex'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/groundtex-284x150.jpg" class="attachment-thumbnail" alt="Tileset textures for a winter level" title="groundtex" /></a>
<a href='http://variancetheory.com/wp-content/uploads/2009/06/texas_overhead_multi.jpg' rel='shadowbox[post-229];player=img;' title='texas_overhead_multi'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/texas_overhead_multi-284x150.jpg" class="attachment-thumbnail" alt="" title="texas_overhead_multi" /></a>
<a href='http://variancetheory.com/wp-content/uploads/2009/06/Overhead_texas425.jpg' rel='shadowbox[post-229];player=img;' title='Overhead_texas425'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/Overhead_texas425-284x150.jpg" class="attachment-thumbnail" alt="" title="Overhead_texas425" /></a>
<a href='http://variancetheory.com/wp-content/uploads/2009/06/Overhead_oregon425.jpg' rel='shadowbox[post-229];player=img;' title='Overhead_oregon425'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/Overhead_oregon425-284x150.jpg" class="attachment-thumbnail" alt="" title="Overhead_oregon425" /></a>
<a href='http://variancetheory.com/wp-content/uploads/2009/06/Overhead_nebraska425.jpg' rel='shadowbox[post-229];player=img;' title='Overhead_nebraska425'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/Overhead_nebraska425-284x150.jpg" class="attachment-thumbnail" alt="" title="Overhead_nebraska425" /></a>
<a href='http://variancetheory.com/wp-content/uploads/2009/06/Overhead_montana425.jpg' rel='shadowbox[post-229];player=img;' title='Overhead_montana425'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/Overhead_montana425-284x150.jpg" class="attachment-thumbnail" alt="" title="Overhead_montana425" /></a>
<a href='http://variancetheory.com/wp-content/uploads/2009/06/Overhead_michigan425.jpg' rel='shadowbox[post-229];player=img;' title='Overhead_michigan425'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/Overhead_michigan425-284x150.jpg" class="attachment-thumbnail" alt="" title="Overhead_michigan425" /></a>
<a href='http://variancetheory.com/wp-content/uploads/2009/06/Overhead_iowa425.jpg' rel='shadowbox[post-229];player=img;' title='Overhead_iowa425'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/Overhead_iowa425-284x150.jpg" class="attachment-thumbnail" alt="" title="Overhead_iowa425" /></a>
<a href='http://variancetheory.com/wp-content/uploads/2009/06/oregon_overhead_multi.jpg' rel='shadowbox[post-229];player=img;' title='oregon_overhead_multi'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/oregon_overhead_multi-284x150.jpg" class="attachment-thumbnail" alt="" title="oregon_overhead_multi" /></a>
<a href='http://variancetheory.com/wp-content/uploads/2009/06/nebraska_overhead_multi.jpg' rel='shadowbox[post-229];player=img;' title='nebraska_overhead_multi'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/nebraska_overhead_multi-284x150.jpg" class="attachment-thumbnail" alt="" title="nebraska_overhead_multi" /></a>
<a href='http://variancetheory.com/wp-content/uploads/2009/06/montana_overhead_multi.jpg' rel='shadowbox[post-229];player=img;' title='montana_overhead_multi'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/montana_overhead_multi-284x150.jpg" class="attachment-thumbnail" alt="" title="montana_overhead_multi" /></a>
<a href='http://variancetheory.com/wp-content/uploads/2009/06/iowa_overhead_multi.jpg' rel='shadowbox[post-229];player=img;' title='iowa_overhead_multi'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/iowa_overhead_multi-284x150.jpg" class="attachment-thumbnail" alt="" title="iowa_overhead_multi" /></a>
<a href='http://variancetheory.com/wp-content/uploads/2009/06/mich_overhead_multi.jpg' rel='shadowbox[post-229];player=img;' title='mich_overhead_multi'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/mich_overhead_multi-284x150.jpg" class="attachment-thumbnail" alt="" title="mich_overhead_multi" /></a>

]]></content:encoded>
			<wfw:commentRss>http://variancetheory.com/ultimate-hunt-challenge/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://blip.tv/file/get/Mrsriley-Bunnyhop319.flv" length="150403" type="video/x-flv" />
		</item>
		<item>
		<title>Syphon Filter PS2 Weapons</title>
		<link>http://variancetheory.com/syphon-filter-ps2-weapons/</link>
		<comments>http://variancetheory.com/syphon-filter-ps2-weapons/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 02:11:18 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Game Art]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[SubFeatured]]></category>
		<category><![CDATA[Tech Art]]></category>

		<guid isPermaLink="false">http://variancetheory.com/?p=196</guid>
		<description><![CDATA[Lead Artist]]></description>
			<content:encoded><![CDATA[
<a href='http://variancetheory.com/wp-content/uploads/2009/06/weapons_01.jpg' rel='shadowbox[post-196];player=img;' title='weapons_01'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/weapons_01-284x150.jpg" class="attachment-thumbnail" alt="" title="weapons_01" /></a>
<a href='http://variancetheory.com/wp-content/uploads/2009/06/weapons_02.jpg' rel='shadowbox[post-196];player=img;' title='weapons_02'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/weapons_02-284x150.jpg" class="attachment-thumbnail" alt="" title="weapons_02" /></a>
<a href='http://variancetheory.com/wp-content/uploads/2009/06/weapons_04.jpg' rel='shadowbox[post-196];player=img;' title='weapons_04'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/weapons_04-284x150.jpg" class="attachment-thumbnail" alt="" title="weapons_04" /></a>
<a href='http://variancetheory.com/wp-content/uploads/2009/06/syphonomega_030804_000.jpg' rel='shadowbox[post-196];player=img;' title='syphonomega_030804_000'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/syphonomega_030804_000-284x150.jpg" class="attachment-thumbnail" alt="" title="syphonomega_030804_000" /></a>
<a href='http://variancetheory.com/wp-content/uploads/2009/06/syphonomega_041304_010.jpg' rel='shadowbox[post-196];player=img;' title='syphonomega_041304_010'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/syphonomega_041304_010-284x150.jpg" class="attachment-thumbnail" alt="" title="syphonomega_041304_010" /></a>
<a href='http://variancetheory.com/wp-content/uploads/2009/06/Flamethrower.jpg' rel='shadowbox[post-196];player=img;' title='Flamethrower'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/Flamethrower-284x150.jpg" class="attachment-thumbnail" alt="" title="Flamethrower" /></a>
<a href='http://variancetheory.com/wp-content/uploads/2009/06/syphonomega_041304_0081.jpg' rel='shadowbox[post-196];player=img;' title='syphonomega_041304_008'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/syphonomega_041304_0081-284x150.jpg" class="attachment-thumbnail" alt="" title="syphonomega_041304_008" /></a>
<a href='http://variancetheory.com/wp-content/uploads/2009/06/Gun_Art.jpg' rel='shadowbox[post-196];player=img;' title='Gun_Art'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/Gun_Art-284x150.jpg" class="attachment-thumbnail" alt="" title="Gun_Art" /></a>

<p>My work on the weapons system in Syphon Filter: Omega Strain was pretty broad. I headed up weapons modeling, weapon integration with the character hardpoint system, weapon FX, and some scope artwork. There were around 60 different gun models and I got into a nice groove with modeling production, doing about 3 a day. They were built in 3DSMax and would average around 300 triangles. Our texture budget on SFOS was amazingly tight, since it was a 4 player online-coop game where each character could have a completely different outfit and weapons. So I opted for many guns to go with what at the time was a novel texturing approach used by Metal Gear Solid where the highlights and shadows and specular reflections were painted in and high frequency details were often left to geometry. To up the vertex count to support this detail, it was vital to have efficient tristripping, so I&#8217;d just shoot a planar projection through the side of pieces of the gun to keep all the verts continuous.</p>
<p>Here&#8217;s a short clip showing one of my favorites to model, the FN-P90 &#8211; <a rel="shadowbox;width=974;height=761;" href="http://variancetheory.com/wp-content/uploads/2009/06/P90.swf">Watch Video</a></p>
<p>The weapons were also front and center quite often because of the hardpoint system. When characters stowed their guns, they&#8217;d go to one of four places on the skeleton &#8211; back, thigh right, thigh left, or chest. Since it is a third person game, the back hardpoint would really shove the gun right in the player&#8217;s face, so detail was important to maintain. Still, the texture resolution in multiplayer mode was set to half that of single player, and things would tend to get blurry. Luckily the geometry did much of the work, and considering that the models were all lit by the world, this didn&#8217;t end up being that bad.</p>
<p>Weapon FX had a bunch of different components. The gun flare was an actual model that was turned on and off, and was positioned via the gun&#8217;s skeleton. Yes, guns in this game had skeletons! Initially, the game design was more of an online RPG and had called for a crazy weapon customization system where players could purchase scopes, silencers, and the like. Most of these elements were dropped in the final design, but the gun skeleton was still used for a few things:</p>
<ul>
<li>A bone to align the character&#8217;s trigger hand to dynamically</li>
<li>A bone where the support hand would go</li>
<li>Positioning of the gun flare</li>
<li>A bone for FX to emit from</li>
</ul>
<p>As far as the FX, smoke particles were created and would shoot out of the tip of the gun. A light was also turned on with each shot. Turns out that the system also supported spawning a particle emitter on the bullet as well. And another one when it impacted! This was crazy, the amount of calculation that was being done. Bullet hits were tracked per bone, with ellipsoids around each one. You could shoot a guy in the arm, leg, head, and it would all be tracked. The character programmer even turned the vertex color red wherever a guy was hit. You know, cause that&#8217;s what blood looks like.</p>
<p>So, with that in mind, I got busy with the system late one night and hacked up a flamethrower, and it was awesome. It still is one of the only flamethrowers in-game that I&#8217;ve seen that properly splash fire on a surface that it hits. I&#8217;d get a video for it but the designers put it in the very last level of the game, and I&#8217;ll be damned if I&#8217;m going to play SFOS all the way to the end now. <img src='http://variancetheory.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Besides, I guess they just turned off the online servers recently.</p>
<p>Overall, this project had huge problems and the reviews were pretty harsh &#8211; yet they were fair. The game lost its way and didn&#8217;t excel in any area at all, most importantly in its core mechanic of running around and shooting. The team learned a lot from these failures and put those lessons to use in future titles.</p>
]]></content:encoded>
			<wfw:commentRss>http://variancetheory.com/syphon-filter-ps2-weapons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Female Commando</title>
		<link>http://variancetheory.com/female-commando/</link>
		<comments>http://variancetheory.com/female-commando/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 16:42:33 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Characters]]></category>
		<category><![CDATA[Game Art]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[SubFeatured]]></category>

		<guid isPermaLink="false">http://variancetheory.com/?p=171</guid>
		<description><![CDATA[Personal Work]]></description>
			<content:encoded><![CDATA[
<a href='http://variancetheory.com/wp-content/uploads/2009/06/Ben-Throop-Lian_FlatMegaHires.jpg' rel='shadowbox[post-171];player=img;' title='Commando - Flat'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/Ben-Throop-Lian_FlatMegaHires-284x150.jpg" class="attachment-thumbnail" alt="" title="Commando - Flat" /></a>
<a href='http://variancetheory.com/wp-content/uploads/2009/06/Ben-Throop-Lian_MegaHighRes.jpg' rel='shadowbox[post-171];player=img;' title='Commando - Textured'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/Ben-Throop-Lian_MegaHighRes-284x150.jpg" class="attachment-thumbnail" alt="" title="Commando - Textured" /></a>

]]></content:encoded>
			<wfw:commentRss>http://variancetheory.com/female-commando/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>3DSMax Lipsync Rig &#8211; Convert Bones to Morph</title>
		<link>http://variancetheory.com/3dsmax-lipsync-rig-converting-bones-to-morph/</link>
		<comments>http://variancetheory.com/3dsmax-lipsync-rig-converting-bones-to-morph/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 15:59:40 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Characters]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Game Art]]></category>
		<category><![CDATA[Rigging]]></category>
		<category><![CDATA[SubFeatured]]></category>

		<guid isPermaLink="false">http://variancetheory.com/?p=155</guid>
		<description><![CDATA[Maxscripted Custom Attribute]]></description>
			<content:encoded><![CDATA[<p><a rel="shadowbox;width=974;height=761;" href="http://variancetheory.com/wp-content/uploads/2009/06/HeadMorphCA.swf"><img class="alignnone size-full wp-image-169" title="LipSyncRig" src="http://variancetheory.com/wp-content/uploads/2009/06/LipSyncRig1.jpg" alt="LipSyncRig" width="600" height="468" /></a></p>
<p>This example shows a relatively low-poly head rigged with bones for the standard lipsync viseme targets. This was matched to a system called Animeter that has since been bought and sold a bunch of times. Anyway, the standard targets still apply now.</p>
<p>So, the way this guy works is that we have a head model that is rigged and animated to a different morph target every 5 frames. The script creates a button in the head object&#8217;s rollout called &#8220;Create Morpher Head&#8221;. When the artist hits the button, Max snapshots the head along the timeline to create morph targets. It then assigns the targets to a base head with the Morpher modifier. Then you&#8217;re ready to roll.</p>
<p>The advantage to this is that since morphs are always topology dependent, we can&#8217;t tweak the model very much without ruining the rig. So instead, we make modeling changes to the skinned head and regenerate the morph targets from there. This can save artists a bunch of time.</p>
<p>Below is the source for the script.</p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p155code1'); return false;">View Code</a> MAXSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p1551"><td class="code" id="p155code1"><pre class="maxscript" style="font-family:monospace;">makeHeadCA <span style="color: #66cc66;">=</span> attributes makeHead
<span style="color: white;">&#40;</span>
	<span style="color: #dc143c;">parameters</span> main <span style="color: #dc143c;">rollout</span>:params
	<span style="color: white;">&#40;</span>
		makeHeadBtn type:#boolean ui:makeHeadBtn
	<span style="color: white;">&#41;</span>
	<span style="color: #dc143c;">rollout</span> params <span style="color: #7f007f;">&quot;Make Morpher&quot;</span>
	<span style="color: white;">&#40;</span>
		button makeHeadBtn <span style="color: #7f007f;">&quot;Create Morpher Head&quot;</span>
		<span style="color: #007f00;">on</span> makeHeadBtn pressed <span style="color: blue;font-weight:bold;">do</span>
		<span style="color: white;">&#40;</span>
			headBasis <span style="color: #66cc66;">=</span> $
			nameArray <span style="color: #66cc66;">=</span> #<span style="color: white;">&#40;</span><span style="color: #7f007f;">&quot;head_player_none_male&quot;</span>,<span style="color: #7f007f;">&quot;Eat&quot;</span>,<span style="color: #7f007f;">&quot;Earth&quot;</span>,<span style="color: #7f007f;">&quot;If&quot;</span>,<span style="color: #7f007f;">&quot;Ox&quot;</span>,<span style="color: #7f007f;">&quot;Oat&quot;</span>,<span style="color: #7f007f;">&quot;Wet&quot;</span>,<span style="color: #7f007f;">&quot;Size&quot;</span>,<span style="color: #7f007f;">&quot;Church&quot;</span>,<span style="color: #7f007f;">&quot;Fave&quot;</span>,<span style="color: #7f007f;">&quot;Though&quot;</span>,<span style="color: #7f007f;">&quot;Told&quot;</span>,<span style="color: #7f007f;">&quot;Bump&quot;</span>,<span style="color: #7f007f;">&quot;New&quot;</span>,<span style="color: #7f007f;">&quot;Roar&quot;</span>,<span style="color: #7f007f;">&quot;Cage&quot;</span>,<span style="color: #7f007f;">&quot;EyebrowRaiseLeft&quot;</span>,<span style="color: #7f007f;">&quot;EyebrowRaiseRight&quot;</span>,<span style="color: #7f007f;">&quot;BlinkLeft&quot;</span>,<span style="color: #7f007f;">&quot;BlinkRight&quot;</span>,<span style="color: #7f007f;">&quot;LookUp&quot;</span>,<span style="color: #7f007f;">&quot;LookDown&quot;</span>,<span style="color: #7f007f;">&quot;LookLeft&quot;</span>,<span style="color: #7f007f;">&quot;LookRight&quot;</span>,<span style="color: #7f007f;">&quot;EyebrowRaiseBoth&quot;</span>,<span style="color: #7f007f;">&quot;BlinkBoth&quot;</span><span style="color: white;">&#41;</span>
&nbsp;
			sliderTime <span style="color: #66cc66;">=</span> 0f
			headPosX <span style="color: #66cc66;">=</span> <span style="color: #ff4500;">0.5</span>
			headDone <span style="color: #66cc66;">=</span> <span style="color: #ff4500;">1</span>
			<span style="color: blue;font-weight:bold;">global</span> headM<span style="color: #66cc66;">or</span>phs <span style="color: #66cc66;">=</span> #<span style="color: white;">&#40;</span><span style="color: white;">&#41;</span>
			<span style="color: #5d5d5d; font-style: italic;">--snapshot the main head</span>
			<span style="color: blue;font-weight:bold;">for</span> i <span style="color: #66cc66;">=</span> <span style="color: #ff4500;">1</span> <span style="color: blue;font-weight:bold;">to</span> nameArray.<span style="color: #3c83b1;">count</span> <span style="color: blue;font-weight:bold;">do</span>
			<span style="color: white;">&#40;</span>
				newHead <span style="color: #66cc66;">=</span> snapshot headBasis
				headPosX <span style="color: #66cc66;">=</span> headPosX <span style="color: #66cc66;">+</span> .5
				newHead.<span style="color: #0000cd;">name</span> <span style="color: #66cc66;">=</span> nameArray<span style="color: white;">&#91;</span>i<span style="color: white;">&#93;</span>
				newHead.<span style="color: #3c83b1;">pos</span>.<span style="color: #3c83b1;">x</span> <span style="color: #66cc66;">=</span> headPosX
				append headM<span style="color: #66cc66;">or</span>phs newHead
				sliderTime <span style="color: #66cc66;">=</span> sliderTime <span style="color: #66cc66;">+</span> 5f
			<span style="color: white;">&#41;</span>
			sliderTime <span style="color: #66cc66;">=</span> 0f
&nbsp;
			<span style="color: #5d5d5d; font-style: italic;">--now add the morpher plus the targets</span>
			mainHead <span style="color: #66cc66;">=</span> headM<span style="color: #66cc66;">or</span>phs<span style="color: white;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: white;">&#93;</span>
			addmodifier mainHead <span style="color: white;">&#40;</span>m<span style="color: #66cc66;">or</span>pher<span style="color: white;">&#40;</span><span style="color: white;">&#41;</span><span style="color: white;">&#41;</span>
			<span style="color: blue;font-weight:bold;">global</span> theM<span style="color: #66cc66;">or</span>pher <span style="color: #66cc66;">=</span> mainHead.<span style="color: #3c83b1;">morpher</span>
			select mainHead
&nbsp;
			<span style="color: blue;font-weight:bold;">for</span> i <span style="color: #66cc66;">=</span> <span style="color: #ff4500;">1</span> <span style="color: blue;font-weight:bold;">to</span> <span style="color: white;">&#40;</span>headM<span style="color: #66cc66;">or</span>phs.<span style="color: #3c83b1;">count</span> <span style="color: #66cc66;">-</span> <span style="color: #ff4500;">1</span><span style="color: white;">&#41;</span> <span style="color: blue;font-weight:bold;">do</span>
			<span style="color: white;">&#40;</span>
				<span style="color: #0000cd;">print </span><span style="color: white;">&#40;</span><span style="color: #7f007f;">&quot;adding &quot;</span> <span style="color: #66cc66;">+</span> headm<span style="color: #66cc66;">or</span>phs<span style="color: white;">&#91;</span>i<span style="color: #66cc66;">+</span><span style="color: #ff4500;">1</span><span style="color: white;">&#93;</span>.<span style="color: #0000cd;">name</span><span style="color: white;">&#41;</span>
				WM3_MC_BuildFromNode mainHead.<span style="color: #3c83b1;">morpher</span> i headM<span style="color: #66cc66;">or</span>phs<span style="color: white;">&#91;</span>i<span style="color: #66cc66;">+</span><span style="color: #ff4500;">1</span><span style="color: white;">&#93;</span>
			<span style="color: white;">&#41;</span>
		<span style="color: white;">&#41;</span>
	<span style="color: white;">&#41;</span>
<span style="color: white;">&#41;</span>
&nbsp;
CAs <span style="color: #66cc66;">=</span> custattributes.<span style="color: #3c83b1;">getdefs</span> $head_basis.<span style="color: #3c83b1;">skin</span>
<span style="color: blue;font-weight:bold;">if</span> CAs.<span style="color: #3c83b1;">count</span> &amp;gt; <span style="color: #ff4500;">0</span> <span style="color: blue;font-weight:bold;">then</span>
<span style="color: white;">&#40;</span>
	<span style="color: blue;font-weight:bold;">for</span> i <span style="color: #66cc66;">=</span> <span style="color: #ff4500;">1</span> <span style="color: blue;font-weight:bold;">to</span> CAs.<span style="color: #3c83b1;">count</span> <span style="color: blue;font-weight:bold;">do</span>
	<span style="color: white;">&#40;</span>
		custattributes.<span style="color: #0000cd;">delete </span>$head_basis.<span style="color: #3c83b1;">skin</span> i
	<span style="color: white;">&#41;</span>
<span style="color: white;">&#41;</span>
<span style="color: #0000cd;">custAttributes.<span style="color: #3c83b1;">add</span> </span>$head_basis.<span style="color: #3c83b1;">skin</span> makeHeadCA</pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://variancetheory.com/3dsmax-lipsync-rig-converting-bones-to-morph/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

