<?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; Rigging</title>
	<atom:link href="http://variancetheory.com/category/rigging/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>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>
		<item>
		<title>Syphon Filter PS2 Characters</title>
		<link>http://variancetheory.com/sfos-game-characters/</link>
		<comments>http://variancetheory.com/sfos-game-characters/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 03:56:42 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Characters]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Game Art]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[Rigging]]></category>
		<category><![CDATA[Tech Art]]></category>
		<category><![CDATA[Textures]]></category>

		<guid isPermaLink="false">http://variancetheory.com/blog/?p=150</guid>
		<description><![CDATA[Lead Artist]]></description>
			<content:encoded><![CDATA[<p>I was the Lead Character Artist on Syphon Filter: The Omega Strain at Sony Bend. In addition to heading up concepts, modeling, texturing, and rigging of all game and movie characters for the studio&#8217;s first PS2 title, I worked very closely with the Lead Character Programmer in creating a state-of-the-art character customization system and corresponding pipeline. Below are some samples of artwork and in-game shots.</p>

<a href='http://variancetheory.com/wp-content/uploads/2009/06/SFO_Screen_1.jpg' rel='shadowbox[post-150];player=img;' title='SFO_Screen_1'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/SFO_Screen_1-284x150.jpg" class="attachment-thumbnail" alt="" title="SFO_Screen_1" /></a>
<a href='http://variancetheory.com/wp-content/uploads/2009/06/SFO_Screen_2.jpg' rel='shadowbox[post-150];player=img;' title='SFO_Screen_2'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/SFO_Screen_2-284x150.jpg" class="attachment-thumbnail" alt="" title="SFO_Screen_2" /></a>
<a href='http://variancetheory.com/wp-content/uploads/2009/06/SFO_Screen_3.jpg' rel='shadowbox[post-150];player=img;' title='SFO_Screen_3'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/SFO_Screen_3-284x150.jpg" class="attachment-thumbnail" alt="" title="SFO_Screen_3" /></a>
<a href='http://variancetheory.com/wp-content/uploads/2009/06/SFO_Screen_4.jpg' rel='shadowbox[post-150];player=img;' title='SFO_Screen_4'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/SFO_Screen_4-284x150.jpg" class="attachment-thumbnail" alt="" title="SFO_Screen_4" /></a>
<a href='http://variancetheory.com/wp-content/uploads/2009/06/SFO_Screen_5.jpg' rel='shadowbox[post-150];player=img;' title='SFO_Screen_5'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/SFO_Screen_5-284x150.jpg" class="attachment-thumbnail" alt="" title="SFO_Screen_5" /></a>
<a href='http://variancetheory.com/wp-content/uploads/2009/06/SFO_Screen_6.jpg' rel='shadowbox[post-150];player=img;' title='SFO_Screen_6'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/SFO_Screen_6-284x150.jpg" class="attachment-thumbnail" alt="" title="SFO_Screen_6" /></a>
<a href='http://variancetheory.com/wp-content/uploads/2009/06/DVD_Insert_chars_2.jpg' rel='shadowbox[post-150];player=img;' title='DVD_Insert_chars_2'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/DVD_Insert_chars_2-284x150.jpg" class="attachment-thumbnail" alt="" title="DVD_Insert_chars_2" /></a>
<a href='http://variancetheory.com/wp-content/uploads/2009/06/DVD_Insert_chars_1.jpg' rel='shadowbox[post-150];player=img;' title='DVD_Insert_chars_1'><img width="284" height="150" src="http://variancetheory.com/wp-content/uploads/2009/06/DVD_Insert_chars_1-284x150.jpg" class="attachment-thumbnail" alt="" title="DVD_Insert_chars_1" /></a>

]]></content:encoded>
			<wfw:commentRss>http://variancetheory.com/sfos-game-characters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

