<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2448899023407783266</id><updated>2026-06-08T00:19:36.452-06:00</updated><title type='text'>The Art of Duylinh</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dnguyenart.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://dnguyenart.blogspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>DNguyen</name><uri>http://www.blogger.com/profile/09146918089818318184</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_M8BKFDoah14/Sv2uEalb-0I/AAAAAAAAAMM/ebn7XE2V708/S220/Me_Laying_Down.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>106</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2448899023407783266.post-9172795433775055465</id><published>2017-03-03T09:40:00.003-06:00</published><updated>2017-03-03T09:40:38.067-06:00</updated><title type='text'>A Change in Direction</title><content type='html'>It has been a long time since I have posted anything here. &amp;nbsp;I&#39;ve made a slight career change and added the word &quot;Technical&quot; before &quot;Artist&quot; to my title. &amp;nbsp;Back in March of 2013, the company I worked at had shut down and gave me a chance to look at my current career path. &amp;nbsp;As an artist, I have worked at many companies, but it was usually for a project or two. &amp;nbsp;Companies had a tendency to layoff artists fairly often or outsource their jobs overseas for a much cheaper solution. &amp;nbsp;Due to this, I started to improve on my technical skill sets and learn a lot more about programming. &lt;br /&gt;
&lt;br /&gt;
A few months after the layoff, I landed a new job at Seasun Games as a Senior Technical Artist building tools, creating animation state-machines and designing pipeline architectures. &amp;nbsp;It truly is amazing what you can accomplish in a short time if you really put your mind to it. &amp;nbsp;I still do art on the side, as it is my true passion. &amp;nbsp;Being able to create tools and infrastructure has helped augment mine and many other&#39;s abilities to do so too. &amp;nbsp;I&#39;ll be making a series of posts that will outline some of the projects I have been working on, and the theory on how some of these are done. &amp;nbsp;It&#39;s nice to back!&lt;br /&gt;
&lt;br /&gt;
A few Gundams I have worked on during the gap!&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqZ0ZAww56KMUg-tP2H05CzNEvOYhSCf74bX1kY6h5QyoGdCm8emvWY20eNdm8y_LYuAfeePp_CZjstfTsNXBUAjQJoor3aL2t5bfWKekWECUcD7orcAhQn3rw0z2gGg8wb3pVXg_xT9BI/s1600/20160619_183610.jpg&quot; imageanchor=&quot;1&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPAlvqaNNjoQownWa_OTXiXMWDHlciy-zqZe_L_awH-m2T1cdPCtl7SMV-KGRqAi0u8PN2GyQw843y7DTiju1FCAgTrdv5AC22f1B9fO8P7wdkX-uQis6ADG8yHbrZICsR8GOAbTq0U9G2/s1600/20160605_131605.jpg&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPAlvqaNNjoQownWa_OTXiXMWDHlciy-zqZe_L_awH-m2T1cdPCtl7SMV-KGRqAi0u8PN2GyQw843y7DTiju1FCAgTrdv5AC22f1B9fO8P7wdkX-uQis6ADG8yHbrZICsR8GOAbTq0U9G2/s640/20160605_131605.jpg&quot; width=&quot;360&quot; /&gt;&lt;/a&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqZ0ZAww56KMUg-tP2H05CzNEvOYhSCf74bX1kY6h5QyoGdCm8emvWY20eNdm8y_LYuAfeePp_CZjstfTsNXBUAjQJoor3aL2t5bfWKekWECUcD7orcAhQn3rw0z2gGg8wb3pVXg_xT9BI/s640/20160619_183610.jpg&quot; width=&quot;360&quot; /&gt;&lt;br /&gt;
&lt;img height=&quot;359&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlxOzi80arYfH_n8jBra4yHQrYiezvjbUpB_d5SGEUehyTfEcFcxPIUh1nGdQfUueINongz3HNUsEuV0tY47kAK7NI1_OxRmTDruKe-RzTLxig-pkJgldnSnX93h2DlYYYXKrGwOgT0_QI/w1689-h950-no/&quot; width=&quot;640&quot; /&gt;&lt;br /&gt;
&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjql0w2c0f3OVlXSyNkpfLzPn363cfJ67Vhf0aukgfLHtBqHFOw2dl6NZtgr7xmeeJFeyNMv3dS2wnAFK9YfSUwC_Rg5_spFgnoR-EQHVccNYkbr0D5a4I54ugjqhy56u2B3OMQ4vIj0YcY/w507-h901-no/&quot; /&gt;&lt;br /&gt;
&lt;img height=&quot;359&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-_4qGRmhtb2yYx6m74jOLXRF4tP1utvnleHNWMOzslkV9bkQvl_9xMW-a5NTR_j7xPpYm47bTC_ysCnoglWvisjW2xfCgiYuktnavTmfSr5241Zc1kkQIDrmjSXEe4qH-1BrAHP9p-gDN/w1602-h901-no/&quot; width=&quot;640&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://dnguyenart.blogspot.com/feeds/9172795433775055465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2448899023407783266/9172795433775055465' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/9172795433775055465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/9172795433775055465'/><link rel='alternate' type='text/html' href='http://dnguyenart.blogspot.com/2017/03/a-change-in-direction.html' title='A Change in Direction'/><author><name>DNguyen</name><uri>http://www.blogger.com/profile/09146918089818318184</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_M8BKFDoah14/Sv2uEalb-0I/AAAAAAAAAMM/ebn7XE2V708/S220/Me_Laying_Down.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPAlvqaNNjoQownWa_OTXiXMWDHlciy-zqZe_L_awH-m2T1cdPCtl7SMV-KGRqAi0u8PN2GyQw843y7DTiju1FCAgTrdv5AC22f1B9fO8P7wdkX-uQis6ADG8yHbrZICsR8GOAbTq0U9G2/s72-c/20160605_131605.jpg" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2448899023407783266.post-8894032506754469744</id><published>2015-06-09T23:14:00.001-05:00</published><updated>2015-06-09T23:14:22.883-05:00</updated><title type='text'>Final Fantasy Realm Reborn</title><content type='html'>I&#39;ve been playing Final Fantasy Realm Reborn a lot lately, and decided to do a sketch of my character.&lt;br /&gt;
&lt;br /&gt;
&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/Venetia_zpsm7ex8scp.jpg&quot; /&gt;</content><link rel='replies' type='application/atom+xml' href='http://dnguyenart.blogspot.com/feeds/8894032506754469744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2448899023407783266/8894032506754469744' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/8894032506754469744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/8894032506754469744'/><link rel='alternate' type='text/html' href='http://dnguyenart.blogspot.com/2015/06/final-fantasy-realm-reborn.html' title='Final Fantasy Realm Reborn'/><author><name>DNguyen</name><uri>http://www.blogger.com/profile/09146918089818318184</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_M8BKFDoah14/Sv2uEalb-0I/AAAAAAAAAMM/ebn7XE2V708/S220/Me_Laying_Down.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2448899023407783266.post-4570838556383877969</id><published>2015-05-19T21:29:00.000-05:00</published><updated>2015-05-19T21:35:56.367-05:00</updated><title type='text'>Batman!</title><content type='html'>&lt;span style=&quot;text-align: center;&quot;&gt;Was reading some comics and just had to draw Batman.&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/batman_Sketch_zpsctufioi2.jpg&quot; /&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/batman_Colors_zpsifsahaik.jpg&quot; /&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://dnguyenart.blogspot.com/feeds/4570838556383877969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2448899023407783266/4570838556383877969' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/4570838556383877969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/4570838556383877969'/><link rel='alternate' type='text/html' href='http://dnguyenart.blogspot.com/2015/05/batman.html' title='Batman!'/><author><name>DNguyen</name><uri>http://www.blogger.com/profile/09146918089818318184</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_M8BKFDoah14/Sv2uEalb-0I/AAAAAAAAAMM/ebn7XE2V708/S220/Me_Laying_Down.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2448899023407783266.post-4391935130244082925</id><published>2015-05-12T15:43:00.005-05:00</published><updated>2015-05-12T15:43:59.591-05:00</updated><title type='text'>Gundam Exia Dark Matter 1/100</title><content type='html'>Just finished building the Exia Dark Matter 1/100 Gundam! &amp;nbsp;Great and fun build. &amp;nbsp;Some pieces do fall out a bit easily, so I&#39;ll just glue those pieces on. &amp;nbsp;All damage detail done using the Tamiya weathering kits. &amp;nbsp;Those things are just great. &lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgH1S1sFHjH55fvLXpc1Dckp4-OEW5swCmGRdLGDKG_2w6SVxqcaA3DhqLk-3UmbCjZ6n-VKLNhsswzZwlq0g7ECbef3IWe8PgwSlasEkFQKBSa6OAj_pepmxu3Ri980o2Fp16CMnrrmCsO/s1600/ExiaDM_001.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgH1S1sFHjH55fvLXpc1Dckp4-OEW5swCmGRdLGDKG_2w6SVxqcaA3DhqLk-3UmbCjZ6n-VKLNhsswzZwlq0g7ECbef3IWe8PgwSlasEkFQKBSa6OAj_pepmxu3Ri980o2Fp16CMnrrmCsO/s1600/ExiaDM_001.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV3GfyIB3x4O5fRv09og3Xz5CJ-jmZMkk2-e3MeEjFQAFdTS_ZQxvr3xkAJA5C-ykPJglruV-ROfoVgqtTs3lclTxQAUvJXX4iHD6Pq0jT0vDojkNH_hl5qXFC9Tiglft6GvcyqU1NYvFv/s1600/ExiaDM_002.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;425&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV3GfyIB3x4O5fRv09og3Xz5CJ-jmZMkk2-e3MeEjFQAFdTS_ZQxvr3xkAJA5C-ykPJglruV-ROfoVgqtTs3lclTxQAUvJXX4iHD6Pq0jT0vDojkNH_hl5qXFC9Tiglft6GvcyqU1NYvFv/s640/ExiaDM_002.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhykm9RDlCAxEsKRbuNk9d2IYMzz6fAU8dU1iIgj7Gwa2O84SqbL6AdE-z64k2NZl0qhpT2NmmDi93RwFEofeEdpZxP2Zn8AiQlpI0xUuJdeG82u3LIHFtEG8VTM1j0bmwDo2_FLtwflHjg/s1600/ExiaDM_003.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhykm9RDlCAxEsKRbuNk9d2IYMzz6fAU8dU1iIgj7Gwa2O84SqbL6AdE-z64k2NZl0qhpT2NmmDi93RwFEofeEdpZxP2Zn8AiQlpI0xUuJdeG82u3LIHFtEG8VTM1j0bmwDo2_FLtwflHjg/s1600/ExiaDM_003.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-NGzALHaUvG12RgfgGm14VfTpv5t6CbXyCiZ6aIBu5EkZl-8IMeHVDKO-mMWtWxksAoZBOOozBTbz4QU4cZjbKyBJ47Wg9x0zYMG7F5aWouitLRm0k69X6oHPEaMDvOD59olOOHfnUeel/s1600/ExiaDM_004.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;426&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-NGzALHaUvG12RgfgGm14VfTpv5t6CbXyCiZ6aIBu5EkZl-8IMeHVDKO-mMWtWxksAoZBOOozBTbz4QU4cZjbKyBJ47Wg9x0zYMG7F5aWouitLRm0k69X6oHPEaMDvOD59olOOHfnUeel/s640/ExiaDM_004.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi24CuLoMYOcHokNw81kSQK5VQv54H7rYkgiFUfmlCkPMYZquCYGXtxeC5saplVMRbNV_TFBjsFR8Ffuo0bOxzkm9Aevb0oeIPDesV3cCT1Klh4ZVeIBdPGJtPxM2a4FMEbl1-sHN3PD8IH/s1600/ExiaDM_005.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi24CuLoMYOcHokNw81kSQK5VQv54H7rYkgiFUfmlCkPMYZquCYGXtxeC5saplVMRbNV_TFBjsFR8Ffuo0bOxzkm9Aevb0oeIPDesV3cCT1Klh4ZVeIBdPGJtPxM2a4FMEbl1-sHN3PD8IH/s1600/ExiaDM_005.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP1KCLVic-omFWfd61exxNmRXCiiPtOjWVHrfRqcXIq2pUXUDL-c_ku2L0zaCrL0v1-WBnyG1Mrn6f5HEffwTQxSWFxF64rBYlbYqXfBP_WvlCP-gY7qdv6Xw2CwTDHSGNd26W7T4Kzu4M/s1600/ExiaDM_006.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;426&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP1KCLVic-omFWfd61exxNmRXCiiPtOjWVHrfRqcXIq2pUXUDL-c_ku2L0zaCrL0v1-WBnyG1Mrn6f5HEffwTQxSWFxF64rBYlbYqXfBP_WvlCP-gY7qdv6Xw2CwTDHSGNd26W7T4Kzu4M/s640/ExiaDM_006.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvvAIqB4-J7B6dBihfHe-cISsqNP592_U6VFftmuQShGHjvW_FY3ojdaKKyqeolyop1OtmyKV145jaH1TQwgW854tFYr-ZQBqU97qdcbtvr34xJ-FEkb8oTG9-hOpqf7Pe1gNeMdO8EEL-/s1600/ExiaDM_007.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvvAIqB4-J7B6dBihfHe-cISsqNP592_U6VFftmuQShGHjvW_FY3ojdaKKyqeolyop1OtmyKV145jaH1TQwgW854tFYr-ZQBqU97qdcbtvr34xJ-FEkb8oTG9-hOpqf7Pe1gNeMdO8EEL-/s1600/ExiaDM_007.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1Rm6Ldefc13rsZdsAPgapll-t5OyIolsvkx17jUl0eO_7JIx-V-YEc2EE7n7oSovjPeYiU5BK0bfNJdBUQ9qX5fRlljNPDFnEHiZ89Dt-TvTVwEx6Y9Pimhiy5sHK_XVVlSjR3iZCNJ8j/s1600/ExiaDM_008.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;426&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1Rm6Ldefc13rsZdsAPgapll-t5OyIolsvkx17jUl0eO_7JIx-V-YEc2EE7n7oSovjPeYiU5BK0bfNJdBUQ9qX5fRlljNPDFnEHiZ89Dt-TvTVwEx6Y9Pimhiy5sHK_XVVlSjR3iZCNJ8j/s640/ExiaDM_008.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://dnguyenart.blogspot.com/feeds/4391935130244082925/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2448899023407783266/4391935130244082925' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/4391935130244082925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/4391935130244082925'/><link rel='alternate' type='text/html' href='http://dnguyenart.blogspot.com/2015/05/gundam-exia-dark-matter-1100.html' title='Gundam Exia Dark Matter 1/100'/><author><name>DNguyen</name><uri>http://www.blogger.com/profile/09146918089818318184</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_M8BKFDoah14/Sv2uEalb-0I/AAAAAAAAAMM/ebn7XE2V708/S220/Me_Laying_Down.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgH1S1sFHjH55fvLXpc1Dckp4-OEW5swCmGRdLGDKG_2w6SVxqcaA3DhqLk-3UmbCjZ6n-VKLNhsswzZwlq0g7ECbef3IWe8PgwSlasEkFQKBSa6OAj_pepmxu3Ri980o2Fp16CMnrrmCsO/s72-c/ExiaDM_001.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2448899023407783266.post-7656372037219019012</id><published>2015-03-02T10:10:00.001-06:00</published><updated>2015-03-02T10:10:19.775-06:00</updated><title type='text'>New Website Coming Soon!</title><content type='html'>I have decided to finally make a website after all of these years. &amp;nbsp;It is currently still a work in progress.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;website:&amp;nbsp;&lt;a href=&quot;http://dnguyenart.net/&quot;&gt;dnguyenart.net&lt;/a&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://dnguyenart.blogspot.com/feeds/7656372037219019012/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2448899023407783266/7656372037219019012' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/7656372037219019012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/7656372037219019012'/><link rel='alternate' type='text/html' href='http://dnguyenart.blogspot.com/2015/03/new-website-coming-soon.html' title='New Website Coming Soon!'/><author><name>DNguyen</name><uri>http://www.blogger.com/profile/09146918089818318184</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_M8BKFDoah14/Sv2uEalb-0I/AAAAAAAAAMM/ebn7XE2V708/S220/Me_Laying_Down.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2448899023407783266.post-804986185818137800</id><published>2013-10-23T01:48:00.003-05:00</published><updated>2013-10-23T01:49:45.435-05:00</updated><title type='text'>A digital drawing for a friend</title><content type='html'>Here&#39;s a digital drawing I made for my friend Laura.&lt;br /&gt;
&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/Laura_LR_zps9dbdc30f.jpg&quot; /&gt;</content><link rel='replies' type='application/atom+xml' href='http://dnguyenart.blogspot.com/feeds/804986185818137800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2448899023407783266/804986185818137800' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/804986185818137800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/804986185818137800'/><link rel='alternate' type='text/html' href='http://dnguyenart.blogspot.com/2013/10/a-digital-drawing-for-friend.html' title='A digital drawing for a friend'/><author><name>DNguyen</name><uri>http://www.blogger.com/profile/09146918089818318184</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_M8BKFDoah14/Sv2uEalb-0I/AAAAAAAAAMM/ebn7XE2V708/S220/Me_Laying_Down.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2448899023407783266.post-9046768944511954713</id><published>2013-06-03T00:29:00.000-05:00</published><updated>2013-06-03T00:29:52.483-05:00</updated><title type='text'>Painting of Anna Kendrick</title><content type='html'>I recently found the time to watch Pitch Perfect, and really enjoyed the film. &amp;nbsp;I decided to go ahead and do a painting of the main actor of the film.&lt;br /&gt;
&lt;br /&gt;
Painted using Photoshop&lt;br /&gt;
&lt;br /&gt;
&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/AnnaKendrick_LR_zps420909e3.jpg&quot; /&gt;</content><link rel='replies' type='application/atom+xml' href='http://dnguyenart.blogspot.com/feeds/9046768944511954713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2448899023407783266/9046768944511954713' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/9046768944511954713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/9046768944511954713'/><link rel='alternate' type='text/html' href='http://dnguyenart.blogspot.com/2013/06/painting-of-anna-kendrick.html' title='Painting of Anna Kendrick'/><author><name>DNguyen</name><uri>http://www.blogger.com/profile/09146918089818318184</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_M8BKFDoah14/Sv2uEalb-0I/AAAAAAAAAMM/ebn7XE2V708/S220/Me_Laying_Down.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2448899023407783266.post-8542579603562703610</id><published>2013-04-25T15:00:00.000-05:00</published><updated>2013-04-25T15:00:13.525-05:00</updated><title type='text'>Samsung Galaxy SIII</title><content type='html'>Here&#39;s a model I made of my Samsung Galaxy SIII. &amp;nbsp;It was made last year as an example model for my students in the Hard Surface and Organic Modeling class. &lt;br /&gt;
&lt;br /&gt;
Modeled in Maya. &amp;nbsp;Rendered using Mental Ray.&lt;br /&gt;
&lt;img alt=&quot; photo GS3_zpsd635b231.jpg&quot; border=&quot;0&quot; src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/GS3_zpsd635b231.jpg&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot; photo GS3Wires_zps58f8d5e4.jpg&quot; border=&quot;0&quot; src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/GS3Wires_zps58f8d5e4.jpg&quot; /&gt;</content><link rel='replies' type='application/atom+xml' href='http://dnguyenart.blogspot.com/feeds/8542579603562703610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2448899023407783266/8542579603562703610' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/8542579603562703610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/8542579603562703610'/><link rel='alternate' type='text/html' href='http://dnguyenart.blogspot.com/2013/04/samsung-galaxy-siii.html' title='Samsung Galaxy SIII'/><author><name>DNguyen</name><uri>http://www.blogger.com/profile/09146918089818318184</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_M8BKFDoah14/Sv2uEalb-0I/AAAAAAAAAMM/ebn7XE2V708/S220/Me_Laying_Down.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2448899023407783266.post-7730786876133056099</id><published>2013-04-23T16:55:00.000-05:00</published><updated>2013-04-23T16:57:06.516-05:00</updated><title type='text'>It&#39;s been a long hiatus</title><content type='html'>It&#39;s been a while since I&#39;ve last updated this blog. &amp;nbsp;I feel it&#39;s time I start updating it again. &amp;nbsp;A lot has happened since my last post. &amp;nbsp;First off, I started working at Maxis in August and have shipped a title while working there as a 3D Generalist. &amp;nbsp;The company has been great! &amp;nbsp;The people are awesome, and I get to work on a franchise that I&#39;ve adored as a child. &amp;nbsp;It&#39;s always nice to be able to work on something that you&#39;ve only dreamed about working on since childhood. &amp;nbsp;I can&#39;t say we didn&#39;t have any hitches during the launch, but we can only hope it goes much more smoothly next time.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot; photo simcity-box-limited-edition-1l_zps8e6acd70.jpg&quot; border=&quot;0&quot; src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/simcity-box-limited-edition-1l_zps8e6acd70.jpg&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here are a few other pieces I have worked on.&lt;br /&gt;
&lt;br /&gt;
A female sculpt using ZBrush&lt;br /&gt;
&lt;img alt=&quot; photo womanAnatomy_zps3b2832de.jpg&quot; border=&quot;0&quot; src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/womanAnatomy_zps3b2832de.jpg&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
An old male sculpt using ZBrush&lt;br /&gt;
&lt;img alt=&quot; photo OldManSculpt_zps7d1b4432.jpg&quot; border=&quot;0&quot; src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/OldManSculpt_zps7d1b4432.jpg&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
An ink/painting of Loki for a friend&lt;br /&gt;
&lt;img alt=&quot; photo LokiBlog_zps787395a9.jpg&quot; border=&quot;0&quot; src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/LokiBlog_zps787395a9.jpg&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
There were plenty more pieces, but I just don&#39;t like them that much anymore. &amp;nbsp;Tis the life of an artist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://dnguyenart.blogspot.com/feeds/7730786876133056099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2448899023407783266/7730786876133056099' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/7730786876133056099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/7730786876133056099'/><link rel='alternate' type='text/html' href='http://dnguyenart.blogspot.com/2013/04/its-been-long-hiatus.html' title='It&#39;s been a long hiatus'/><author><name>DNguyen</name><uri>http://www.blogger.com/profile/09146918089818318184</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_M8BKFDoah14/Sv2uEalb-0I/AAAAAAAAAMM/ebn7XE2V708/S220/Me_Laying_Down.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2448899023407783266.post-9169289158920590393</id><published>2012-07-02T11:55:00.000-05:00</published><updated>2012-07-02T11:55:40.293-05:00</updated><title type='text'>Painting for my Grandma</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
This is a painting I made for my grandma using Adobe Photoshop CS6.&lt;a href=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/GrandmaPaintingLR.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/GrandmaPaintingLR.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://dnguyenart.blogspot.com/feeds/9169289158920590393/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2448899023407783266/9169289158920590393' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/9169289158920590393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/9169289158920590393'/><link rel='alternate' type='text/html' href='http://dnguyenart.blogspot.com/2012/07/painting-for-my-grandma.html' title='Painting for my Grandma'/><author><name>DNguyen</name><uri>http://www.blogger.com/profile/09146918089818318184</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_M8BKFDoah14/Sv2uEalb-0I/AAAAAAAAAMM/ebn7XE2V708/S220/Me_Laying_Down.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2448899023407783266.post-2034810863069041174</id><published>2012-04-19T11:45:00.002-05:00</published><updated>2012-04-19T11:49:55.330-05:00</updated><title type='text'></title><content type='html'>It&#39;s been a while since my last update, so here you all go!&lt;br /&gt;&lt;br /&gt;Work in progress of a Centaur I&#39;m still making&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/CentuarWeb.jpg&quot;&gt;&lt;br /&gt;&lt;br /&gt;Tyrion Lannister from Game of Thrones&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/TyrionForWeb.jpg&quot;&gt;&lt;br /&gt;&lt;br /&gt;Arya Stark from Game of Thrones&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/AryaForWeb.jpg&quot;&gt;&lt;br /&gt;&lt;br /&gt;Work in progress of my niece Ava Frederick&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/AvaWeb.jpg&quot;&gt;</content><link rel='replies' type='application/atom+xml' href='http://dnguyenart.blogspot.com/feeds/2034810863069041174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2448899023407783266/2034810863069041174' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/2034810863069041174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/2034810863069041174'/><link rel='alternate' type='text/html' href='http://dnguyenart.blogspot.com/2012/04/its-been-while-since-my-last-update-so.html' title=''/><author><name>DNguyen</name><uri>http://www.blogger.com/profile/09146918089818318184</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_M8BKFDoah14/Sv2uEalb-0I/AAAAAAAAAMM/ebn7XE2V708/S220/Me_Laying_Down.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2448899023407783266.post-7574590117406025416</id><published>2011-11-21T12:37:00.003-06:00</published><updated>2011-11-21T12:38:44.433-06:00</updated><title type='text'>Drawing for my Grandpa</title><content type='html'>This is a drawing I made yesterday for my grandpa.  It&#39;s graphite on 18 x 24 drawing paper.  I just used a 4H for the line drawing underneath, 2B for the majority of the drawing and a 4B for the darker areas.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/GrandpaDrawing.jpg&quot;&gt;</content><link rel='replies' type='application/atom+xml' href='http://dnguyenart.blogspot.com/feeds/7574590117406025416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2448899023407783266/7574590117406025416' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/7574590117406025416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/7574590117406025416'/><link rel='alternate' type='text/html' href='http://dnguyenart.blogspot.com/2011/11/drawing-for-my-grandpa.html' title='Drawing for my Grandpa'/><author><name>DNguyen</name><uri>http://www.blogger.com/profile/09146918089818318184</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_M8BKFDoah14/Sv2uEalb-0I/AAAAAAAAAMM/ebn7XE2V708/S220/Me_Laying_Down.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2448899023407783266.post-2846192144740058009</id><published>2011-11-01T23:42:00.002-06:00</published><updated>2011-11-01T23:45:36.206-06:00</updated><title type='text'>New painting for Dua</title><content type='html'>Medium - Wacom Intuos 4 and Photoshop CS5.  I sure do love the Blur&#39;s Good Brush.  It just makes laying down color with texture so quickly.  I also like how much they resemble traditional mediums.  As usual, I start with a sketch and colored it in afterwards.  I kind of like that mixture of styles.  It&#39;s kind of interesting to see how my style has changed through the years.  &lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/Dua_LR.jpg&quot;&gt;</content><link rel='replies' type='application/atom+xml' href='http://dnguyenart.blogspot.com/feeds/2846192144740058009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2448899023407783266/2846192144740058009' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/2846192144740058009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/2846192144740058009'/><link rel='alternate' type='text/html' href='http://dnguyenart.blogspot.com/2011/11/new-painting-for-dua.html' title='New painting for Dua'/><author><name>DNguyen</name><uri>http://www.blogger.com/profile/09146918089818318184</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_M8BKFDoah14/Sv2uEalb-0I/AAAAAAAAAMM/ebn7XE2V708/S220/Me_Laying_Down.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2448899023407783266.post-2746435727082843245</id><published>2011-11-01T15:37:00.002-06:00</published><updated>2011-11-02T00:05:23.695-06:00</updated><title type='text'>Nikon d200 Model</title><content type='html'>Started modeling the Nikon d200 camera.  I&#39;m teaching a hard surface and organic modeling class this quarter and requiring my students to model a digital slr of their choice.  I figured making them a model for reference would be good too.  Why the D200? A student sent me an email asking me how I would approach modeling some parts and I decided to keep running with it.  I started this earlier today and taking random breaks in between.  &lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/DSLR_001.jpg&quot;&gt;&lt;br /&gt;&lt;br /&gt;*Update&lt;br /&gt;Was super lazy after the first post of the camera and only worked a little bit on it.  Fixed some issues on the model after finding some better references.  Maybe I should have modeled the camera I actually own instead of finding pictures online.  I suppose that would have been the &quot;smart&quot; thing to do haha.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/DSLR_002.jpg&quot;&gt;</content><link rel='replies' type='application/atom+xml' href='http://dnguyenart.blogspot.com/feeds/2746435727082843245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2448899023407783266/2746435727082843245' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/2746435727082843245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/2746435727082843245'/><link rel='alternate' type='text/html' href='http://dnguyenart.blogspot.com/2011/11/nikon-d200-model.html' title='Nikon d200 Model'/><author><name>DNguyen</name><uri>http://www.blogger.com/profile/09146918089818318184</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_M8BKFDoah14/Sv2uEalb-0I/AAAAAAAAAMM/ebn7XE2V708/S220/Me_Laying_Down.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2448899023407783266.post-7286459153153358211</id><published>2011-10-11T20:29:00.001-05:00</published><updated>2011-10-11T20:32:44.292-05:00</updated><title type='text'>Solar System Generator using Python</title><content type='html'>This is a script I created after learning Python for Maya.  It&lt;br /&gt;actually proved to be fairly easy especially knowing MEL prior&lt;br /&gt;to it.  I decided to learn the language due to students struggling&lt;br /&gt;with their 3d Scripting class.  Sadly, the white spacing at the&lt;br /&gt;left doesn&#39;t want to copy over, so if you plan on using the script,&lt;br /&gt;make sure to add the proper white spacing to the script.&lt;br /&gt;&lt;br /&gt;################################################################&lt;br /&gt;##Script: SolarSytemGenerator.py&lt;br /&gt;##Scripted By: Duylinh Nguyen&lt;br /&gt;##Description: Generates a Solar System with user inputs&lt;br /&gt;##Instructions: Select Entire Script and press Ctrl+Enter&lt;br /&gt;##Type SolarSysGen() in command bar to execute script.&lt;br /&gt;################################################################&lt;br /&gt;&lt;br /&gt;#imporint maya commands and mel&lt;br /&gt;import maya.cmds as cmds&lt;br /&gt;import maya.mel as mel&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#Declaring the global variables&lt;br /&gt;sel = &#39;sel[]&#39;&lt;br /&gt;#star global variables&lt;br /&gt;starName = &#39;star&#39;&lt;br /&gt;starRad = 1.0&lt;br /&gt;starPosX = 0.0&lt;br /&gt;starPosY = 0.0&lt;br /&gt;starPosZ = 0.0&lt;br /&gt;#sat global variables&lt;br /&gt;sat = &#39;sat[]&#39;&lt;br /&gt;satName = &#39;sat&#39;&lt;br /&gt;satRad = 1.0&lt;br /&gt;satRotX = 0.0&lt;br /&gt;satRotY = 0.0&lt;br /&gt;satRotZ = 0.0&lt;br /&gt;satRotSpeed = 0.0&lt;br /&gt;satOrbitScaleX = 1.0&lt;br /&gt;satOrbitScaleZ = 1.0&lt;br /&gt;satOrbitRotX = 0.0&lt;br /&gt;satOrbitRotY = 0.0&lt;br /&gt;satOrbitRotZ = 0.0&lt;br /&gt;satOrbitSpeed = 0.0&lt;br /&gt;#background stars variables&lt;br /&gt;BGSphereName = &#39;starrySky&#39;&lt;br /&gt;BGSphereRad = 1.0&lt;br /&gt;BGStarsAmount = 100.0&lt;br /&gt;#asteroid belt variables&lt;br /&gt;astBeltName = &#39;asteroidBelt&#39;&lt;br /&gt;astBeltScaleX = 1.0&lt;br /&gt;astBeltScaleZ = 1.0&lt;br /&gt;astBeltSecRad = 0.5&lt;br /&gt;astBeltRotX = 0.0&lt;br /&gt;astBeltRotY = 0.0&lt;br /&gt;astBeltRotZ = 0.0&lt;br /&gt;&lt;br /&gt;#defs (aka functions) are used to have a set of actions stored within a section.  This&lt;br /&gt;#allows you to do repetative tasks easier.&lt;br /&gt;&lt;br /&gt;#The main interface window was placed into a def so the user simply needs to call it&lt;br /&gt;#instead of always having to run the full script over and over.&lt;br /&gt;&lt;br /&gt;#Main interface window to create solar system&lt;br /&gt;def SolarSysGen():&lt;br /&gt;    #Checks to see if the window exists.  If it does, close it and create a new one.&lt;br /&gt;    if cmds.window ( &quot;SSGWindow&quot;, exists = True ):&lt;br /&gt;        cmds.deleteUI ( &quot;SSGWindow&quot;, window = True )&lt;br /&gt;    &lt;br /&gt;    #Creates the window&lt;br /&gt;    SSGWindow = cmds.window( &quot;SSGWindow&quot;, title = &quot;Solar System Generator&quot;, wh = ( 380, 200 ) )&lt;br /&gt;    #The layout used for the window&lt;br /&gt;    cmds.rowColumnLayout ( numberOfColumns = 1, columnWidth = ( 1, 370 ) )&lt;br /&gt;    #Create star button that calls the CreateStarWindow def&lt;br /&gt;    cmds.button ( label = &quot;Create Star&quot;, command = &quot;CreateStarWindow()&quot; )&lt;br /&gt;    #Separators are used to either fill in gaps or give you extra space between your layout controls&lt;br /&gt;    cmds.separator ( height = 20, style = &quot;none&quot; )&lt;br /&gt;    #Descriptive text to tell the user what they need to do&lt;br /&gt;    cmds.text ( align = &quot;center&quot;, font = &quot;boldLabelFont&quot;, label = &quot;Select One Star&quot; )&lt;br /&gt;    #Create satellite button that calls the CreateSatelliteWindow def&lt;br /&gt;    cmds.button ( label = &quot;Create Satellite&quot;, command = &quot;CreateSatelliteWindow()&quot; )&lt;br /&gt;    cmds.separator ( height = 20, style = &quot;none&quot; )&lt;br /&gt;    cmds.text ( align = &quot;center&quot;, font = &quot;boldLabelFont&quot; , label = &quot;Select One Star or Satellite&quot; )&lt;br /&gt;    #Create asteroid belt button that calls the createAsterBeltWindow def&lt;br /&gt;    cmds.button ( label = &quot;Create Asteroid Belt&quot;, command = &quot;createAsterBeltWindow ()&quot; )&lt;br /&gt;    cmds.separator ( height = 20, style = &quot;none&quot; )&lt;br /&gt;    #Create star background button that calls the createBGSStarWindow&lt;br /&gt;    cmds.button ( label = &quot;Create Star Background&quot;, command = &quot;createBGStarsWindow ()&quot; )&lt;br /&gt;    #displays the window&lt;br /&gt;    cmds.showWindow ( SSGWindow )&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#this def is used to display the CreateStarWindow&lt;br /&gt;def CreateStarWindow () :&lt;br /&gt;    &lt;br /&gt;    #adding global in front of the variable allows you to call the global variables declared in the&lt;br /&gt;    #start of the script.  If global is not added to the front of these variables, they will be&lt;br /&gt;    #considered local instead.  Global variables allow you to use these variables across multiple&lt;br /&gt;    #defs and not just within the function.  Only declare global if you know you need to use it &lt;br /&gt;    #in multiple defs.&lt;br /&gt;    &lt;br /&gt;    global starName&lt;br /&gt;    global starRad&lt;br /&gt;    global starPosX&lt;br /&gt;    global starPosY&lt;br /&gt;    global starPosZ&lt;br /&gt;    &lt;br /&gt;    #checks if any of the sub windows are opened.  If so, it closes them and spawns a new one&lt;br /&gt;    if cmds.window( &quot;satWindow&quot;, exists = True):&lt;br /&gt;        cmds.deleteUI (&quot;satWindow&quot;,window = True)&lt;br /&gt;    if cmds.window (&quot;ErPlWindow&quot;, exists = True):&lt;br /&gt;        cmds.deleteUI (&quot;ErPlWindow&quot;, window = True)&lt;br /&gt;    if cmds.window( &quot;StarWindow&quot;, exists = True ):&lt;br /&gt;        cmds.deleteUI( &quot;StarWindow&quot;, window = True )&lt;br /&gt;    if cmds.window( &quot;bgStarsWin&quot;, exists = True ):&lt;br /&gt;        cmds.deleteUI( &quot;bgStarsWin&quot;, window = True )&lt;br /&gt;    if cmds.window( &quot;astBeltWin&quot;, exists = True ):&lt;br /&gt;        cmds.deleteUI( &quot;astBeltWin&quot;, window = True )&lt;br /&gt;    &lt;br /&gt;    #creates the window    &lt;br /&gt;    StarWindow = cmds.window( &quot;StarWindow&quot;, title = &quot;Create Star&quot;, wh = (300,200))&lt;br /&gt;    cmds.columnLayout ()&lt;br /&gt;    #control that prompts the user for the name and the button calls the CreateStar def&lt;br /&gt;    cmds.textFieldButtonGrp ( starName, label = &#39;Star Name&#39;, text = starName, buttonLabel = &#39;Create Star&#39;, buttonCommand = &#39;CreateStar()&#39;)&lt;br /&gt;    #sliders that control attributes on the object&lt;br /&gt;    starPosX = cmds.floatSliderGrp ( label = &#39;Position X&#39;, field=True, minValue=-100.0, maxValue=100.0, fieldMinValue=-100.0, fieldMaxValue=100.0, value=0.0 )&lt;br /&gt;    starPosY = cmds.floatSliderGrp ( label = &#39;Position Y&#39;, field=True, minValue=-100.0, maxValue=100.0, fieldMinValue=-100.0, fieldMaxValue=100.0, value=0.0 )&lt;br /&gt;    starPosZ = cmds.floatSliderGrp ( label = &#39;Position Z&#39;, field=True, minValue=-100.0, maxValue=100.0, fieldMinValue=-100.0, fieldMaxValue=100.0, value=0.0 )&lt;br /&gt;    starRad = cmds.floatSliderGrp ( label = &#39;Radius&#39; , field = True, minValue=-100.0, maxValue=100.0, fieldMinValue=-100.0, fieldMaxValue=100.0, value=1.0 )&lt;br /&gt;    cmds.showWindow (StarWindow)&lt;br /&gt;&lt;br /&gt;def CreateStar () :&lt;br /&gt;    #these variables were used in both the CreateStarWindow and CreateStar defs, hence being global&lt;br /&gt;    global starName&lt;br /&gt;    global starRad&lt;br /&gt;    global starPosX&lt;br /&gt;    global starPosY&lt;br /&gt;    global starPosZ&lt;br /&gt;    &lt;br /&gt;    #this finds what the user typed and stores it into the starNameQuery&lt;br /&gt;    starNameQuery = cmds.textFieldButtonGrp ( starName, query = True, text = True)&lt;br /&gt;    #Creates a polygon sphere, gives it the name the user inputted and assigns it to the variable Star.  Star is an array&lt;br /&gt;    Star = cmds.polySphere ( r = 1, sx = 20, sy = 20, ax = (0, 1, 0), cuv = 2, ch = 1, name = starNameQuery)&lt;br /&gt;    #connects the slider with the attribute&lt;br /&gt;    #Star[0] = grabbing the first name out of the list.  Every object by default has 2.&lt;br /&gt;    #ie. Star[0] = Sun , Star[1] = SunShape&lt;br /&gt;    #The + sign is used to attach text after the variable&lt;br /&gt;    #ie. Star[0] + &quot;translateX&quot; = Sun.translateX&lt;br /&gt;    cmds.connectControl ( starPosX, Star[0] + &quot;.translateX&quot;)&lt;br /&gt;    cmds.connectControl ( starPosY, Star[0] + &quot;.translateY&quot;)&lt;br /&gt;    cmds.connectControl ( starPosZ, Star[0] + &quot;.translateZ&quot;)&lt;br /&gt;    #connectControl can control multiple attributes at the same time.  Just make sure to place a comma afterwords.&lt;br /&gt;    cmds.connectControl ( starRad, Star[0] + &quot;.scaleX&quot;, Star[0] + &quot;.scaleY&quot;, Star[0] + &quot;.scaleZ&quot;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#Creates the sat and Orbit&lt;br /&gt;def CreateSatelliteWindow () :&lt;br /&gt;    #declaring global variables that will be used in the CreateSatelliteWindow and CreateSat defs&lt;br /&gt;    global satName&lt;br /&gt;    global satRad&lt;br /&gt;    global satRotX&lt;br /&gt;    global satRotY&lt;br /&gt;    global satRotZ&lt;br /&gt;    global satRotSpeed&lt;br /&gt;    global satOrbitScaleX&lt;br /&gt;    global satOrbitScaleZ&lt;br /&gt;    global satOrbitRotX&lt;br /&gt;    global satOrbitRotY&lt;br /&gt;    global satOrbitRotZ&lt;br /&gt;    global sel&lt;br /&gt;    global satOrbitSpeed&lt;br /&gt;&lt;br /&gt;    #checks to see what objects are selected&lt;br /&gt;    sel = cmds.ls ( sl = True )&lt;br /&gt;    selObj = cmds.listRelatives ( cmds.listRelatives( parent = True ), parent = True )&lt;br /&gt;    #checks to see if the type of object that is selected is a mesh&lt;br /&gt;    if cmds.objectType ( cmds.listRelatives ( sel[0] ) ) == &#39;mesh&#39;:&lt;br /&gt;        selSize = len(sel)&lt;br /&gt;        #checks to see if only one object is selected&lt;br /&gt;        if selSize == 1:&lt;br /&gt;            if cmds.window( &quot;satWindow&quot;, exists = True):&lt;br /&gt;                cmds.deleteUI (&quot;satWindow&quot;,window = True)&lt;br /&gt;            if cmds.window (&quot;ErPlWindow&quot;, exists = True):&lt;br /&gt;                cmds.deleteUI (&quot;ErPlWindow&quot;, window = True)&lt;br /&gt;            if cmds.window( &quot;StarWindow&quot;, exists = True ):&lt;br /&gt;                cmds.deleteUI( &quot;StarWindow&quot;, window = True )&lt;br /&gt;            if cmds.window( &quot;bgStarsWin&quot;, exists = True ):&lt;br /&gt;                cmds.deleteUI( &quot;bgStarsWin&quot;, window = True )&lt;br /&gt;            if cmds.window( &quot;astBeltWin&quot;, exists = True ):&lt;br /&gt;                cmds.deleteUI( &quot;astBeltWin&quot;, window = True )&lt;br /&gt;            &lt;br /&gt;            satWindow = cmds.window (&quot;sattWindow&quot;,title = &quot;Create Satellite&quot;)&lt;br /&gt;            cmds.columnLayout ()&lt;br /&gt;            cmds.textFieldButtonGrp ( satName, label = &#39;Satellite Name&#39;, text = satName, buttonLabel = &#39;Create Satellite&#39;, buttonCommand = &#39;CreateSat()&#39;)&lt;br /&gt;            satOrbitScaleX = cmds.floatSliderGrp ( label = &#39;Orbit Scale X&#39;, field = True, minValue = -100.0, maxValue = 100.0, fieldMinValue = -100.0, fieldMaxValue = 100.0, value = 0.0 )&lt;br /&gt;            satOrbitScaleZ = cmds.floatSliderGrp ( label = &#39;Orbit Scale Z&#39;, field = True, minValue = -100.0, maxValue = 100.0, fieldMinValue = -100.0, fieldMaxValue = 100.0, value = 0.0 )&lt;br /&gt;            satOrbitRotX = cmds.floatSliderGrp ( label = &#39;Orbit Rotate X&#39;, field = True, minValue = -100.0, maxValue = 100.0, fieldMinValue = -100.0, fieldMaxValue = 100.0, value = 0.0 )&lt;br /&gt;            satOrbitRotY = cmds.floatSliderGrp ( label = &#39;Orbit Rotate Y&#39;, field = True, minValue = -100.0, maxValue = 100.0, fieldMinValue = -100.0, fieldMaxValue = 100.0, value = 0.0 )&lt;br /&gt;            satOrbitRotZ = cmds.floatSliderGrp ( label = &#39;Orbit Rotate Z&#39;, field = True, minValue = -100.0, maxValue = 100.0, fieldMinValue = -100.0, fieldMaxValue = 100.0, value = 0.0 )&lt;br /&gt;            satRad = cmds.floatSliderGrp ( label = &#39;Satellite Radius&#39; , field = True, minValue = -100.0, maxValue=100.0, fieldMinValue = -100.0, fieldMaxValue = 100.0, value = 1.0 )&lt;br /&gt;            satRotX = cmds.floatSliderGrp ( label = &#39;Satellite Rotate X&#39; , field = True, minValue = -100.0, maxValue=100.0, fieldMinValue = -100.0, fieldMaxValue = 100.0, value = 1.0 )&lt;br /&gt;            satRotZ = cmds.floatSliderGrp ( label = &#39;Satellite Rotate Z&#39; , field = True, minValue = -100.0, maxValue=100.0, fieldMinValue = -100.0, fieldMaxValue = 100.0, value = 1.0 )&lt;br /&gt;            satRotSpeed = cmds.floatSliderGrp ( label = &#39;Satellite Rotate Speed&#39; , field = True, minValue = -10000.0, maxValue=10000.0, fieldMinValue = -10000.0, fieldMaxValue = 10000.0, value = 0.0 )&lt;br /&gt;            satOrbitSpeed = cmds.floatSliderGrp ( label = &#39;Orbit Speed&#39; , field = True, minValue = 0, maxValue=100, fieldMinValue = 0, fieldMaxValue = 100, value = 0.0 )        &lt;br /&gt;            cmds.showWindow ( satWindow )&lt;br /&gt;        &lt;br /&gt;        #if there are more than one object selected, an error window will pop up notifying the user of their error   &lt;br /&gt;        else:&lt;br /&gt;            if cmds.window( &quot;satWindow&quot;, exists = True):&lt;br /&gt;                cmds.deleteUI (&quot;satWindow&quot;,window = True)&lt;br /&gt;            if cmds.window (&quot;ErPlWindow&quot;, exists = True):&lt;br /&gt;                cmds.deleteUI (&quot;ErPlWindow&quot;, window = True)&lt;br /&gt;            if cmds.window( &quot;StarWindow&quot;, exists = True ):&lt;br /&gt;                cmds.deleteUI( &quot;StarWindow&quot;, window = True )&lt;br /&gt;            if cmds.window( &quot;bgStarsWin&quot;, exists = True ):&lt;br /&gt;                cmds.deleteUI( &quot;bgStarsWin&quot;, window = True )&lt;br /&gt;            if cmds.window( &quot;astBeltWin&quot;, exists = True ):&lt;br /&gt;                cmds.deleteUI( &quot;astBeltWin&quot;, window = True )&lt;br /&gt;            ErPlWindow = cmds.window ( &quot;ErPlWindow&quot;,title = &quot;Error&quot; )&lt;br /&gt;            cmds.rowColumnLayout (numberOfColumns = 1, columnWidth = ( 1, 370 ) )&lt;br /&gt;            cmds.text ( label=&quot;Error: Too many objects selected&quot; )&lt;br /&gt;            cmds.showWindow ( ErPlWindow)&lt;br /&gt;&lt;br /&gt;    #if nothing is selected, it will error and nothing will pop up&lt;br /&gt;    else:&lt;br /&gt;        #print command only pops up in the script editor&lt;br /&gt;        print &quot;error: nothing is selected&quot;&lt;br /&gt;&lt;br /&gt;def CreateSat () :&lt;br /&gt;    &lt;br /&gt;    global sel&lt;br /&gt;    global satName&lt;br /&gt;    global satRad&lt;br /&gt;    global satRotX&lt;br /&gt;    global satRotY&lt;br /&gt;    global satRotZ&lt;br /&gt;    global satRotSpeed&lt;br /&gt;    global satOrbitScaleX&lt;br /&gt;    global satOrbitScaleZ&lt;br /&gt;    global satOrbitRotX&lt;br /&gt;    global satOrbitRotY&lt;br /&gt;    global satOrbitRotZ&lt;br /&gt;    global satOrbitSpeed&lt;br /&gt;    &lt;br /&gt;    #finds the name the user input&lt;br /&gt;    satNameQuery = cmds.textFieldButtonGrp ( satName, query = True, text = True)&lt;br /&gt;    sat = cmds.polySphere ( r = 1, sx = 20, sy = 20, ax = (0, 1, 0), cuv = 2, ch = 1, name = satNameQuery)&lt;br /&gt;    #make note how single quotes &#39; and double quotes &quot; can be interchanged.&lt;br /&gt;    #creates a new variable to name the orbit based on the satellite name  &lt;br /&gt;    satOrbitName = sat[0] + &#39;Orbit&#39;&lt;br /&gt;    #creates the orbit ring for the satellite&lt;br /&gt;    satOrbit = cmds.circle ( c = (0, 0, 0), nr = ( 0, 1, 0), sw = 360, r = 1, d = 3, ut = 0, tol = 0.00155, s = 8, ch = 1, name = satOrbitName)&lt;br /&gt;    #locator is used to allow the satellite (child) to rotate and move freely if need be&lt;br /&gt;    #this also allows the satellite to rotate around its own local axis.&lt;br /&gt;    satLoc = cmds.spaceLocator ( p = (0,0,0))&lt;br /&gt;    #parents the satellite to the locator&lt;br /&gt;    cmds.parent ( sat [0], satLoc [0])&lt;br /&gt;    #attaches the satellite to the motionpath.  stu = start time U, etu = end time U, turnning off follow allows for the object to rotate freely&lt;br /&gt;    orbitPath = cmds.pathAnimation(satLoc[0], curve=satOrbitName, fractionMode = True, stu = 0, etu = 100, follow = False )&lt;br /&gt;    #flattens the tangent so there are no ease in and ease outs on the motionpath&lt;br /&gt;    cmds.keyTangent ( orbitPath + &quot;_uValue&quot;, itt = &quot;linear&quot;, ott = &quot;linear&quot;)&lt;br /&gt;    #adds an attribute to allow the user to input the rotation speed of the satellite&lt;br /&gt;    cmds.addAttr ( sat[0], shortName = &quot;rs&quot;, longName = &quot;rotateSpeed&quot;, defaultValue = 0.0, minValue = -10000, maxValue = 10000, k = True) &lt;br /&gt;    #adds a point constraint to the object that the satellite was created for&lt;br /&gt;    cmds.pointConstraint ( sel [0], satOrbit [0])&lt;br /&gt;    #renames the motion path&lt;br /&gt;    cmds.rename (&#39;motionPath1&#39;, &quot;&quot; + sat[0] + &quot;moPath&quot;)&lt;br /&gt;    #mel.eval allows you to call MEL scripts that are not available in Python such as the CBDeleteConnection.  This allows you to break&lt;br /&gt;    #connections for any attribute listed.&lt;br /&gt;    #the .u attribute controls the location on the motion path the object is on.&lt;br /&gt;    mel.eval (&quot;source channelBoxCommand; CBdeleteConnection &quot; + sat[0] + &quot;moPath.u;&quot;)&lt;br /&gt;    #this gives an attribute to the object that controls the speed of which the planet orbits the object&lt;br /&gt;    #setting k or key = True allows you to see the attribute on the object.&lt;br /&gt;    #dv = default value, sets what value you want it to start with&lt;br /&gt;    cmds.addAttr (sat[0], ln = &quot;speed&quot;, at = &quot;float&quot;, k = True, min = 0, dv =1.0)    &lt;br /&gt;    cmds.connectControl ( satOrbitSpeed, sat[0] + &quot;.speed&quot;)    &lt;br /&gt;    cmds.connectControl ( satOrbitScaleX, satOrbitName + &quot;.scaleX&quot;)&lt;br /&gt;    cmds.connectControl ( satOrbitScaleZ, satOrbitName + &quot;.scaleZ&quot;)&lt;br /&gt;    cmds.connectControl ( satOrbitRotX, satOrbitName + &quot;.rotateX&quot;)&lt;br /&gt;    cmds.connectControl ( satOrbitRotY, satOrbitName + &quot;.rotateY&quot;)&lt;br /&gt;    cmds.connectControl ( satOrbitRotZ, satOrbitName + &quot;.rotateZ&quot;)&lt;br /&gt;    cmds.connectControl ( satRotX, satLoc[0] + &quot;.rotateX&quot;)&lt;br /&gt;    cmds.connectControl ( satRotZ, satLoc[0] + &quot;.rotateZ&quot;)&lt;br /&gt;    cmds.connectControl ( satRad, sat[0] + &quot;.scaleX&quot;, sat[0] + &quot;.scaleY&quot;, sat[0] + &quot;.scaleZ&quot;)&lt;br /&gt;    cmds.connectControl ( satRotSpeed, sat[0] + &quot;.rotateSpeed&quot;)&lt;br /&gt;    cmds.expression ( s = &quot;&quot; + sat[0] + &quot;.rotateY = &quot; + sat[0] + &quot;.rotateY - &quot; + sat[0] + &quot;.rotateSpeed&quot;)&lt;br /&gt;    cmds.expression ( s = &quot;&quot; + sat[0] + &quot;moPath.u = ( frame % (&quot; + sat[0] + &quot;.speed +1)) /&quot; + sat[0] + &quot;.speed;&quot;)&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;def createBGStarsWindow ():&lt;br /&gt;    global BGSphereName&lt;br /&gt;    global BGSphereRad&lt;br /&gt;    global BGStarsAmount&lt;br /&gt;    &lt;br /&gt;    if cmds.window( &quot;satWindow&quot;, exists = True):&lt;br /&gt;        cmds.deleteUI (&quot;satWindow&quot;,window = True)&lt;br /&gt;    if cmds.window (&quot;ErPlWindow&quot;, exists = True):&lt;br /&gt;        cmds.deleteUI (&quot;ErPlWindow&quot;, window = True)&lt;br /&gt;    if cmds.window( &quot;StarWindow&quot;, exists = True ):&lt;br /&gt;        cmds.deleteUI( &quot;StarWindow&quot;, window = True )&lt;br /&gt;    if cmds.window( &quot;bgStarsWin&quot;, exists = True ):&lt;br /&gt;        cmds.deleteUI( &quot;bgStarsWin&quot;, window = True )&lt;br /&gt;    if cmds.window( &quot;astBeltWin&quot;, exists = True ):&lt;br /&gt;        cmds.deleteUI( &quot;astBeltWin&quot;, window = True )&lt;br /&gt;    &lt;br /&gt;    bgStarsWin = cmds.window (&quot;bgStarsWin&quot;,title = &quot;Create Star Background&quot;)&lt;br /&gt;    cmds.columnLayout ()&lt;br /&gt;    cmds.textFieldButtonGrp ( BGSphereName, label = &#39;Background Stars Name&#39;, text = BGSphereName, buttonLabel = &#39;Create Stars Background&#39;, buttonCommand = &#39;createBGStars ()&#39;)&lt;br /&gt;    BGSphereRad = cmds.floatSliderGrp ( label = &#39;BG Stars Sphere Radius&#39;, field = True, minValue = 0, maxValue = 1000.0, fieldMinValue = 0, fieldMaxValue = 1000.0, value = 1 )&lt;br /&gt;    BGStarsAmount = cmds.floatSliderGrp ( label = &#39;Amount of Stars&#39;, field = True, minValue = 1, maxValue = 1000.0, fieldMinValue = 1, fieldMaxValue = 1000.0, value = 100.0 )&lt;br /&gt;    cmds.showWindow ( &quot;bgStarsWin&quot;)&lt;br /&gt;    &lt;br /&gt;def createBGStars ():&lt;br /&gt;    global BGSphereName&lt;br /&gt;    global BGSphereRad&lt;br /&gt;    global BGStarsAmount&lt;br /&gt;    &lt;br /&gt;    BGSphere = cmds.polySphere ( r = 1, sx = 20, sy = 20, ax = (0,1,0), cuv = 2, ch = 1, name = BGSphereName)&lt;br /&gt;    BGSEmit = cmds.emitter ( BGSphere [0], type = &quot;surface&quot;, r = 100, sro = 0, nuv = 0, cye = &quot;none&quot;, cyi = 1, spd = 1, srn = 0, nsp = 1, tsp = 0, mxd = 0, mnd = 0, dx = 0, dy = 0, dz = 0, sp = 0, name = BGSphere[0] + &quot;Emit&quot;)&lt;br /&gt;    BGSPart = cmds.particle (name = BGSphere[0] + &quot;Part&quot;)&lt;br /&gt;    cmds.connectDynamic ( BGSPart[0], em = BGSEmit)    &lt;br /&gt;    cmds.connectControl ( BGSphereRad, BGSphere[0] + &quot;.scaleX&quot;, BGSphere[0] + &quot;.scaleY&quot;, BGSphere[0] + &quot;.scaleZ&quot;)&lt;br /&gt;    cmds.connectControl ( BGStarsAmount, BGSEmit[1] + &quot;.rate&quot;)&lt;br /&gt;    print BGSEmit&lt;br /&gt;    print BGSPart&lt;br /&gt;    cmds.setAttr ( BGSphere[0] + &quot;.template&quot;, 1)&lt;br /&gt;    cmds.setAttr ( BGSphere[0] + &quot;Shape.primaryVisibility&quot;, 0)&lt;br /&gt;    cmds.setAttr ( BGSphere[0] + &quot;Shape.motionBlur&quot;, 0)&lt;br /&gt;    cmds.setAttr ( BGSphere[0] + &quot;Shape.receiveShadows&quot;, 0)&lt;br /&gt;    cmds.setAttr ( BGSphere[0] + &quot;Shape.castsShadows&quot;, 0)&lt;br /&gt;    cmds.setAttr ( BGSphere[0] + &quot;Shape.smoothShading&quot;, 0)&lt;br /&gt;    cmds.setAttr ( BGSphere[0] + &quot;Shape.visibleInReflections&quot;, 0)&lt;br /&gt;    cmds.setAttr ( BGSphere[0] + &quot;Shape.visibleInRefractions&quot;, 0)&lt;br /&gt;    cmds.setAttr ( BGSphere[0] + &quot;Shape.doubleSided&quot;, 0)&lt;br /&gt;    cmds.setAttr ( BGSPart[1] + &quot;.particleRenderType&quot;, 7)&lt;br /&gt;    cmds.setAttr ( BGSPart[1] + &quot;.lifespanMode&quot;, 2)&lt;br /&gt;    cmds.setAttr ( BGSPart[1] + &quot;.lifespan&quot;, 2)&lt;br /&gt;    cmds.addAttr ( BGSPart[1], internalSet = True, ln = &quot;radius&quot;, at = &quot;float&quot;, min = 0, max = 10, dv = 0.1)&lt;br /&gt;    cmds.addAttr ( BGSPart[1], ln = &quot;radiusPP&quot;, dt = &quot;doubleArray&quot;)&lt;br /&gt;    cmds.addAttr ( BGSPart[1], ln = &quot;radiusPP0&quot;, dt = &quot;doubleArray&quot;)&lt;br /&gt;    cmds.setAttr ( BGSPart[1] + &quot;.radius&quot;, .05)&lt;br /&gt;    cmds.dynExpression ( BGSPart[1], s = &quot;&quot; + BGSPart[1] + &quot;.radiusPP = rand (.03, .1)&quot;, c = True)&lt;br /&gt;    &lt;br /&gt;&lt;br /&gt;def createAsterBeltWindow ():&lt;br /&gt;    global sel&lt;br /&gt;    global astBeltName&lt;br /&gt;    global astBeltScaleX&lt;br /&gt;    global astBeltScaleZ&lt;br /&gt;    global astBeltSecRad&lt;br /&gt;    global astBeltRotX&lt;br /&gt;    global astBeltRotY&lt;br /&gt;    global astBeltRotZ&lt;br /&gt;    #checks to see if the object is selected&lt;br /&gt;    sel = cmds.ls ( sl = True )&lt;br /&gt;    selObj = cmds.listRelatives ( cmds.listRelatives( parent = True ), parent = True )&lt;br /&gt;    if cmds.objectType ( cmds.listRelatives ( sel[0] ) ) == &#39;mesh&#39;:&lt;br /&gt;        selSize = len(sel)&lt;br /&gt;        if selSize == 1:&lt;br /&gt;            if cmds.window( &quot;satWindow&quot;, exists = True):&lt;br /&gt;                cmds.deleteUI (&quot;satWindow&quot;,window = True)&lt;br /&gt;            if cmds.window (&quot;ErPlWindow&quot;, exists = True):&lt;br /&gt;                cmds.deleteUI (&quot;ErPlWindow&quot;, window = True)&lt;br /&gt;            if cmds.window( &quot;StarWindow&quot;, exists = True ):&lt;br /&gt;                cmds.deleteUI( &quot;StarWindow&quot;, window = True )&lt;br /&gt;            if cmds.window( &quot;bgStarsWin&quot;, exists = True ):&lt;br /&gt;                cmds.deleteUI( &quot;bgStarsWin&quot;, window = True )&lt;br /&gt;            if cmds.window( &quot;astBeltWin&quot;, exists = True ):&lt;br /&gt;                cmds.deleteUI( &quot;astBeltWin&quot;, window = True )&lt;br /&gt;            &lt;br /&gt;            astBeltWin = cmds.window (&quot;astBeltWin&quot;,title = &quot;Create Asteroid Belt&quot;)&lt;br /&gt;            cmds.columnLayout ()&lt;br /&gt;            cmds.textFieldButtonGrp ( astBeltName, label = &#39;Asteroid Belt Name&#39;, text = astBeltName, buttonLabel = &#39;Create Asteroid Belt&#39;, buttonCommand = &#39;createAsterBelt()&#39;)&lt;br /&gt;            astBeltScaleX = cmds.floatSliderGrp ( label = &#39;Asteroid Belt Scale X&#39;, field = True, minValue = 1, maxValue = 100.0, fieldMinValue = 1, fieldMaxValue = 100.0, value = 1.0 )&lt;br /&gt;            astBeltScaleZ = cmds.floatSliderGrp ( label = &#39;Asteroid Belt Scale Z&#39;, field = True, minValue = 1, maxValue = 100.0, fieldMinValue = 1, fieldMaxValue = 100.0, value = 1.0 )&lt;br /&gt;            astBeltRotX = cmds.floatSliderGrp ( label = &#39;Asteroid Belt Rotate X&#39;, field = True, minValue = -100, maxValue = 100.0, fieldMinValue = -100, fieldMaxValue = 100.0, value = 1.0 )&lt;br /&gt;            astBeltRotY = cmds.floatSliderGrp ( label = &#39;Asteroid Belt Rotate Y&#39;, field = True, minValue = -100, maxValue = 100.0, fieldMinValue = -100, fieldMaxValue = 100.0, value = 1.0 )&lt;br /&gt;            astBeltRotZ = cmds.floatSliderGrp ( label = &#39;Asteroid Belt Rotate Z&#39;, field = True, minValue = -100, maxValue = 100.0, fieldMinValue = -100, fieldMaxValue = 100.0, value = 1.0 )&lt;br /&gt;            astBeltSecRad = cmds.floatSliderGrp ( label = &#39;Asteroid Belt Section Radius&#39;, field = True, minValue = 0, maxValue = 10, fieldMinValue = 1, fieldMaxValue = 10, value = 1.0 )&lt;br /&gt;            cmds.showWindow ( &quot;astBeltWin&quot;)&lt;br /&gt;        else:&lt;br /&gt;            if cmds.window( &quot;satWindow&quot;, exists = True):&lt;br /&gt;                cmds.deleteUI (&quot;satWindow&quot;,window = True)&lt;br /&gt;            if cmds.window (&quot;ErPlWindow&quot;, exists = True):&lt;br /&gt;                cmds.deleteUI (&quot;ErPlWindow&quot;, window = True)&lt;br /&gt;            if cmds.window( &quot;StarWindow&quot;, exists = True ):&lt;br /&gt;                cmds.deleteUI( &quot;StarWindow&quot;, window = True )&lt;br /&gt;            if cmds.window( &quot;bgStarsWin&quot;, exists = True ):&lt;br /&gt;                cmds.deleteUI( &quot;bgStarsWin&quot;, window = True )&lt;br /&gt;            if cmds.window( &quot;astBeltWin&quot;, exists = True ):&lt;br /&gt;                cmds.deleteUI( &quot;astBeltWin&quot;, window = True )&lt;br /&gt;            ErPlWindow = cmds.window ( &quot;ErPlWindow&quot;,title = &quot;Error&quot; )&lt;br /&gt;            cmds.rowColumnLayout (numberOfColumns = 1, columnWidth = ( 1, 370 ) )&lt;br /&gt;            cmds.text ( label=&quot;Error: Too many objects selected&quot; )&lt;br /&gt;            cmds.showWindow ( ErPlWindow)&lt;br /&gt;  &lt;br /&gt;    else:&lt;br /&gt;        print &quot;error&quot;&lt;br /&gt;       &lt;br /&gt;def createAsterBelt ():&lt;br /&gt;    global sel&lt;br /&gt;    global astBeltName&lt;br /&gt;    global astBeltScaleX&lt;br /&gt;    global astBeltScaleZ&lt;br /&gt;    global astBeltSecRad&lt;br /&gt;    global astBeltRotX&lt;br /&gt;    global astBeltRotY&lt;br /&gt;    global astBeltRotZ&lt;br /&gt;    &lt;br /&gt;    astBeltNameQuery = cmds.textFieldButtonGrp ( astBeltName, query = True, text = True)&lt;br /&gt;&lt;br /&gt;    asterBelt = cmds.circle (c = (0, 0, 0), nr = (0, 1, 0), sw = 360, r = 1, d = 3, ut = 0, tol = 0.00155, s = 8, ch = 1, name = astBeltNameQuery)&lt;br /&gt;    asterEmit = cmds.emitter ( asterBelt [0], type = &quot;curve&quot;, r = 100, sro = 0, nuv = 0, cye = &quot;none&quot;, cyi = 1, spd = 1, srn = 0, nsp = 1, tsp = 0, mxd = 0, mnd = 0, dx = 0, dy = 0, dz = 0, sp = 0, name = asterBelt[0] + &quot;Emit&quot;)&lt;br /&gt;    asterPart = cmds.particle (name = asterBelt[0] + &quot;Part&quot;)&lt;br /&gt;    cmds.connectDynamic ( asterPart [0] , em = asterEmit [0])&lt;br /&gt;    print sel&lt;br /&gt;    cmds.pointConstraint ( sel [0], asterBelt [0])&lt;br /&gt;    cmds.connectControl ( astBeltScaleX, asterBelt[0] + &quot;.scaleX&quot;)&lt;br /&gt;    cmds.connectControl ( astBeltScaleZ, asterBelt[0] + &quot;.scaleZ&quot;)&lt;br /&gt;    cmds.connectControl ( astBeltRotX, asterBelt[0] + &quot;.rotateX&quot;)&lt;br /&gt;    cmds.connectControl ( astBeltRotY, asterBelt[0] + &quot;.rotateY&quot;)&lt;br /&gt;    cmds.connectControl ( astBeltRotZ, asterBelt[0] + &quot;.rotateZ&quot;)&lt;br /&gt;    &lt;br /&gt;    cmds.setAttr ( asterPart[0] + &quot;.particleRenderType&quot;, 7)&lt;br /&gt;    cmds.addAttr ( asterPart[1], internalSet = True, ln = &quot;radius&quot;, at = &quot;float&quot;, min = 0, max = 10, dv = 0.1)&lt;br /&gt;    cmds.addAttr ( asterPart[1], ln = &quot;radiusPP&quot;, dt = &quot;doubleArray&quot;)&lt;br /&gt;    cmds.addAttr ( asterPart[1], ln = &quot;radiusPP0&quot;, dt = &quot;doubleArray&quot;)&lt;br /&gt;    cmds.dynExpression ( asterPart[1], s = &quot;&quot; + asterPart[1] + &quot;.radiusPP = rand (.01, .1)&quot;, c = True)&lt;br /&gt;    cmds.setKeyframe ( asterEmit[1], attribute = &quot;rate&quot;, v = 100, time = 100)&lt;br /&gt;    cmds.setKeyframe ( asterEmit[1], attribute = &quot;rate&quot;, v = 0, time = 101)&lt;br /&gt;    cmds.setKeyframe ( asterPart[1], attribute = &quot;conserve&quot;, v = 1, time = 200)&lt;br /&gt;    cmds.setKeyframe ( asterPart[1], attribute = &quot;conserve&quot;, v = 0.9, time = 201)&lt;br /&gt;    cmds.select (asterBelt[0])&lt;br /&gt;    mel.eval (&quot;createCurveField&quot;)&lt;br /&gt;    cmds.rename (&quot;volumeAxisField1&quot;, &quot;&quot; + asterBelt[0] + &quot;AsterField&quot;)&lt;br /&gt;    print asterBelt[0] + &quot;AsterField&quot;&lt;br /&gt;    cmds.connectDynamic ( asterPart[0], f = &quot;&quot; + asterBelt [0] + &quot;AsterField&quot;)&lt;br /&gt;    cmds.setAttr ( asterBelt [0] + &quot;AsterField.trapInside&quot;, 1)&lt;br /&gt;    cmds.setAttr ( asterBelt [0] + &quot;AsterField.turbulence&quot;, .05)&lt;br /&gt;    cmds.connectControl ( astBeltSecRad, asterBelt[0] + &quot;AsterField.sectionRadius&quot;)</content><link rel='replies' type='application/atom+xml' href='http://dnguyenart.blogspot.com/feeds/7286459153153358211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2448899023407783266/7286459153153358211' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/7286459153153358211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/7286459153153358211'/><link rel='alternate' type='text/html' href='http://dnguyenart.blogspot.com/2011/10/solar-system-generator-using-python.html' title='Solar System Generator using Python'/><author><name>DNguyen</name><uri>http://www.blogger.com/profile/09146918089818318184</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_M8BKFDoah14/Sv2uEalb-0I/AAAAAAAAAMM/ebn7XE2V708/S220/Me_Laying_Down.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2448899023407783266.post-3387832197858120780</id><published>2011-10-11T13:41:00.002-05:00</published><updated>2011-10-11T13:44:22.888-05:00</updated><title type='text'>New tutorials for Maya and 3ds Max</title><content type='html'>Here are 3 new videos I&#39;ve recorded based on questions my students have asked me about in Maya and 3ds Max.  I will soon be posting a video that covers Substance texturing in both Maya and 3ds Max.&lt;br /&gt;&lt;br /&gt;Multi Subobject in 3ds Max&lt;br /&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;http://www.youtube.com/embed/RO0gmLjZGuA&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Smoothing Normals in 3ds Max&lt;br /&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;http://www.youtube.com/embed/uWC8ETf0N8c&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Raytraced Shadows in Maya&lt;br /&gt;&lt;iframe width=&quot;420&quot; height=&quot;315&quot; src=&quot;http://www.youtube.com/embed/1zlRsppS06o&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://dnguyenart.blogspot.com/feeds/3387832197858120780/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2448899023407783266/3387832197858120780' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/3387832197858120780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/3387832197858120780'/><link rel='alternate' type='text/html' href='http://dnguyenart.blogspot.com/2011/10/new-tutorials-for-maya-and-3ds-max.html' title='New tutorials for Maya and 3ds Max'/><author><name>DNguyen</name><uri>http://www.blogger.com/profile/09146918089818318184</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_M8BKFDoah14/Sv2uEalb-0I/AAAAAAAAAMM/ebn7XE2V708/S220/Me_Laying_Down.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/RO0gmLjZGuA/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2448899023407783266.post-7898191746691335065</id><published>2011-10-10T21:59:00.001-05:00</published><updated>2011-10-10T22:00:42.952-05:00</updated><title type='text'>Painting for Sally</title><content type='html'>This is a painting I made for Sally from memory.  I made it while I was in Denmark.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/Sally-LR.jpg&quot;&gt;</content><link rel='replies' type='application/atom+xml' href='http://dnguyenart.blogspot.com/feeds/7898191746691335065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2448899023407783266/7898191746691335065' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/7898191746691335065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/7898191746691335065'/><link rel='alternate' type='text/html' href='http://dnguyenart.blogspot.com/2011/10/painting-for-sally.html' title='Painting for Sally'/><author><name>DNguyen</name><uri>http://www.blogger.com/profile/09146918089818318184</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_M8BKFDoah14/Sv2uEalb-0I/AAAAAAAAAMM/ebn7XE2V708/S220/Me_Laying_Down.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2448899023407783266.post-2921621998771851944</id><published>2011-07-19T09:20:00.003-05:00</published><updated>2011-07-19T09:27:12.903-05:00</updated><title type='text'>New 3D Head Modeling Tutorials</title><content type='html'>I&#39;ve just recorded a new head modeling tutorial using Maya 2011.&lt;br /&gt;&lt;br /&gt;Part 1 - &lt;br /&gt;&lt;iframe width=&quot;480&quot; height=&quot;295&quot; src=&quot;http://www.youtube.com/embed/gDT0Pz1UtWM?fs=1&quot; frameborder=&quot;0&quot; allowFullScreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Part 2 - &lt;br /&gt;&lt;iframe width=&quot;480&quot; height=&quot;295&quot; src=&quot;http://www.youtube.com/embed/gaOD-geVJM8?fs=1&quot; frameborder=&quot;0&quot; allowFullScreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Part 3 - &lt;br /&gt;&lt;iframe width=&quot;480&quot; height=&quot;295&quot; src=&quot;http://www.youtube.com/embed/936vfQmI5sM?fs=1&quot; frameborder=&quot;0&quot; allowFullScreen=&quot;&quot;&gt;&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://dnguyenart.blogspot.com/feeds/2921621998771851944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2448899023407783266/2921621998771851944' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/2921621998771851944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/2921621998771851944'/><link rel='alternate' type='text/html' href='http://dnguyenart.blogspot.com/2011/07/new-3d-head-modeling-tutorials.html' title='New 3D Head Modeling Tutorials'/><author><name>DNguyen</name><uri>http://www.blogger.com/profile/09146918089818318184</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_M8BKFDoah14/Sv2uEalb-0I/AAAAAAAAAMM/ebn7XE2V708/S220/Me_Laying_Down.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/gDT0Pz1UtWM/default.jpg" height="72" width="72"/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2448899023407783266.post-1260110094159833111</id><published>2011-06-15T10:18:00.002-05:00</published><updated>2011-06-15T10:21:45.521-05:00</updated><title type='text'>The Balrog</title><content type='html'>I&#39;ve decided to model the Balrog from scratch again.  Instead of creating the base mesh inside of Maya though, I opted to us Zspheres and ZSketching instead.  That proved to be a much faster way to do things.  After doing all of that fun stuff, I sculpted it to get myself a rough form that I could use to retopo.  I ended up doing the retopology within 3D Coat and decided to sculpt the wings as a separate mesh.  I think it&#39;ll be easier that way and to do a final retopo once everything is finished.  &lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/Balrog_001.jpg&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/Balrog_002.jpg&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/Balrog_003.jpg&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/Balrog_004.jpg&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/Balrog_005.jpg&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/Balrog_006.jpg&quot;&gt;</content><link rel='replies' type='application/atom+xml' href='http://dnguyenart.blogspot.com/feeds/1260110094159833111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2448899023407783266/1260110094159833111' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/1260110094159833111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/1260110094159833111'/><link rel='alternate' type='text/html' href='http://dnguyenart.blogspot.com/2011/06/balrog.html' title='The Balrog'/><author><name>DNguyen</name><uri>http://www.blogger.com/profile/09146918089818318184</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_M8BKFDoah14/Sv2uEalb-0I/AAAAAAAAAMM/ebn7XE2V708/S220/Me_Laying_Down.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2448899023407783266.post-6629155670445503917</id><published>2011-06-10T09:41:00.005-05:00</published><updated>2011-06-10T18:32:50.904-05:00</updated><title type='text'>Cinema 4D</title><content type='html'>I&#39;ve been learning Cinema 4D for about 2 days now and the learning curve has been pretty easy considering that google is essentially teaching me.  I feel a lot more comfortable using it already, but at the same time, very limited.  The modeling tools seem simple enough to use, but I feel it&#39;s lacking a lot of the tools I normally find in other modeling programs.  It&#39;s just weird to know that the vertices (points) are still floating around even after deleting a face.  Maybe there&#39;s another way to delete faces that I don&#39;t know of.  The snapping tools work well enough along with the hierarchy system.  I think this program would work great for someone who is new to the 3d world, but if you have modeled for years in another package, it might feel limiting.  The good thing at least is that many people have created plugins to fill in the gap of all those missing tools.  Anyways.. here&#39;s my first model I&#39;ve made in C4D along with the shaders and lighting :D&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/rimblog.jpg&quot;&gt;&lt;br /&gt;&lt;br /&gt;updated*&lt;br /&gt;Just started modeling a Macbook Pro.  I&#39;ve decided to change up the shortcut keys so they are more similar to Maya.  This has helped a lot to ease my adjustment to the program.  I&#39;m still trying to figure out easier ways to align points instead of having to type the actual value.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/mbp_001.jpg&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/mbp_002.jpg&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/mbp_003.jpg&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/mbp_004.jpg&quot;&gt;</content><link rel='replies' type='application/atom+xml' href='http://dnguyenart.blogspot.com/feeds/6629155670445503917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2448899023407783266/6629155670445503917' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/6629155670445503917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/6629155670445503917'/><link rel='alternate' type='text/html' href='http://dnguyenart.blogspot.com/2011/06/cinema-4d.html' title='Cinema 4D'/><author><name>DNguyen</name><uri>http://www.blogger.com/profile/09146918089818318184</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_M8BKFDoah14/Sv2uEalb-0I/AAAAAAAAAMM/ebn7XE2V708/S220/Me_Laying_Down.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2448899023407783266.post-1876515516949693665</id><published>2011-05-17T11:55:00.003-05:00</published><updated>2012-02-02T13:51:38.487-06:00</updated><title type='text'>Auto IKFK Blend and Solid Knee Script</title><content type='html'>This is a script I made for my rigging class so they can see how one would go about creating an auto rig script.  &lt;br /&gt;&lt;br /&gt;//////////////////////////////////////////////////////&lt;br /&gt;//ikFkSetupLeg.mel                                  //&lt;br /&gt;//scripted by: Duylinh Nguyen                       //&lt;br /&gt;//description: This script auto creates an IK FK    //&lt;br /&gt;//blend setup for desired side of leg.              //&lt;br /&gt;//How to use: Create leg joints and                 //&lt;br /&gt;//name them.  Type ikFkSetupLeg and the side of the //&lt;br /&gt;//leg you wish to setup.                            //&lt;br /&gt;//ie. ikFkSetupLeg right                            //&lt;br /&gt;//naming conventions                                //&lt;br /&gt;//L_Hip_Jnt &gt; L_Knee_Jnt &gt; L_Ankle_Jnt &gt; L_Ball_Jnt // &lt;br /&gt;//&gt; L_Toe_Jnt                                       //          &lt;br /&gt;//////////////////////////////////////////////////////&lt;br /&gt;&lt;br /&gt;global proc ikFkSetupLeg (string $sideLegLong)&lt;br /&gt;{&lt;br /&gt;    //Records errors in this variable&lt;br /&gt;    int $legWarning = 0;    //0 = No Errors&lt;br /&gt;                            //1 = Error Found&lt;br /&gt;                            &lt;br /&gt;    //Checks to see which side is selected&lt;br /&gt;    //Checks if the argument is correct&lt;br /&gt;    &lt;br /&gt;    string $sideLeg;&lt;br /&gt;    if (($sideLegLong != &quot;left&quot;) &amp;&amp; ($sideLegLong != &quot;right&quot;))&lt;br /&gt;    {&lt;br /&gt;        $legWarning = 1;&lt;br /&gt;        warning &quot;Unknown argument.  Please specify either left or right.  ie: ikFkSetupLeg right; \n&quot;;&lt;br /&gt;    }else&lt;br /&gt;    {&lt;br /&gt;        if ($sideLegLong == &quot;left&quot;)&lt;br /&gt;        $sideLeg = &quot;L_&quot;;&lt;br /&gt;        if ($sideLegLong == &quot;right&quot;)&lt;br /&gt;        $sideLeg = &quot;R_&quot;;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    //Checks to see if objects exist in the scene&lt;br /&gt;    if($legWarning == 0)&lt;br /&gt;    {&lt;br /&gt;        if(!((`objExists ($sideLeg + &quot;Hip_Jnt&quot;)`)&lt;br /&gt;        &amp;&amp;(`objExists ($sideLeg + &quot;Knee_Jnt&quot;)`)&lt;br /&gt;        &amp;&amp;(`objExists ($sideLeg + &quot;Ankle_Jnt&quot;)`)&lt;br /&gt;        &amp;&amp;(`objExists ($sideLeg + &quot;Ball_Jnt&quot;)`)&lt;br /&gt;        &amp;&amp;(`objExists ($sideLeg + &quot;Toe_Jnt&quot;)`)))&lt;br /&gt;     {&lt;br /&gt;         $legWarning = 1;&lt;br /&gt;         warning &quot;Cannot find all required objects to setup leg.  Please check names. \n&quot;;&lt;br /&gt;     }&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    //If there are no errors, continue&lt;br /&gt;    if ($legWarning == 1)&lt;br /&gt;    {&lt;br /&gt;        warning &quot;The script has encountered an error.  Check script editor for details. \n&quot;;&lt;br /&gt;    }else&lt;br /&gt;    {&lt;br /&gt;        print &quot;Prerequisites have been fullfilled. \n&quot;;&lt;br /&gt;        &lt;br /&gt;        //Sets the axis the foot rotates downwards in (-Z by default)&lt;br /&gt;        $footAxis = &quot;Z&quot;; //Change this value if the axis needs to be different&lt;br /&gt;        $isFootNegative = -1; //Change this to 1 if the foot axis is positive to rotate down.&lt;br /&gt;        &lt;br /&gt;        //Creates foot controller&lt;br /&gt;        &lt;br /&gt;        curve -d 1 -p -0.5 0 0.5 -p 0.5 0 0.5 -p 0.5 0 -0.5 -p -0.5 0 -0.5 -p -0.5 0 0.5 -k 0 -k 1 -k 2 -k 3 -k 4 -n ($sideLeg + &quot;Foot_CON&quot;);&lt;br /&gt;        //Orient Joints&lt;br /&gt;        select -r ($sideLeg+&quot;Hip_Jnt&quot;); //-r = replace&lt;br /&gt;        joint -e -oj xyz -ch -zso; //-e = edit, -oj = joint orientation -ch = children&lt;br /&gt;        &lt;br /&gt;        //Duplicates and rename joints&lt;br /&gt;        select -r ($sideLeg + &quot;Hip_Jnt&quot;);&lt;br /&gt;        duplicate -rr; //rr = returns root only&lt;br /&gt;        duplicate -rr;&lt;br /&gt;        &lt;br /&gt;        //Renaming FK Joints&lt;br /&gt;        rename ($sideLeg + &quot;Hip_Jnt1&quot;) ($sideLeg + &quot;FK_Hip_Jnt&quot;);&lt;br /&gt;        rename ($sideLeg + &quot;FK_Hip_Jnt|&quot; + $sideLeg + &quot;Knee_Jnt&quot;) ($sideLeg + &quot;FK_Knee_Jnt&quot;);&lt;br /&gt;        rename ($sideLeg + &quot;FK_Hip_Jnt|&quot; + $sideLeg + &quot;FK_Knee_Jnt|&quot; + $sideLeg + &quot;Ankle_Jnt&quot;) ($sideLeg + &quot;FK_Ankle_Jnt&quot;);&lt;br /&gt;        rename ($sideLeg + &quot;FK_Hip_Jnt|&quot; + $sideLeg + &quot;FK_Knee_Jnt|&quot; + $sideLeg + &quot;FK_Ankle_Jnt|&quot; + $sideLeg + &quot;Ball_Jnt&quot;) ($sideLeg + &quot;FK_Ball_Jnt&quot;);&lt;br /&gt;        rename ($sideLeg + &quot;FK_Hip_Jnt|&quot; + $sideLeg + &quot;FK_Knee_Jnt|&quot; + $sideLeg + &quot;FK_Ankle_Jnt|&quot; + $sideLeg + &quot;FK_Ball_Jnt|&quot; + $sideLeg + &quot;Toe_Jnt&quot;) ($sideLeg + &quot;FK_Toe_Jnt&quot;);&lt;br /&gt;        &lt;br /&gt;        //Renaming IK Joints&lt;br /&gt;        rename ($sideLeg + &quot;Hip_Jnt2&quot;) ($sideLeg + &quot;IK_Hip_Jnt&quot;);&lt;br /&gt;        rename ($sideLeg + &quot;IK_Hip_Jnt|&quot; + $sideLeg + &quot;Knee_Jnt&quot;) ($sideLeg + &quot;IK_Knee_Jnt&quot;);&lt;br /&gt;        rename ($sideLeg + &quot;IK_Hip_Jnt|&quot; + $sideLeg + &quot;IK_Knee_Jnt|&quot; + $sideLeg + &quot;Ankle_Jnt&quot;) ($sideLeg + &quot;IK_Ankle_Jnt&quot;);&lt;br /&gt;        rename ($sideLeg + &quot;IK_Hip_Jnt|&quot; + $sideLeg + &quot;IK_Knee_Jnt|&quot; + $sideLeg + &quot;IK_Ankle_Jnt|&quot; + $sideLeg + &quot;Ball_Jnt&quot;) ($sideLeg + &quot;IK_Ball_Jnt&quot;);&lt;br /&gt;        rename ($sideLeg + &quot;IK_Hip_Jnt|&quot; + $sideLeg + &quot;IK_Knee_Jnt|&quot; + $sideLeg + &quot;IK_Ankle_Jnt|&quot; + $sideLeg + &quot;IK_Ball_Jnt|&quot; + $sideLeg + &quot;Toe_Jnt&quot;) ($sideLeg + &quot;IK_Toe_Jnt&quot;);&lt;br /&gt;        &lt;br /&gt;        //Creates FK controllers&lt;br /&gt;        circle -c 0 0 0 -nr 0 1 0 -sw 360 -r 1 -d 3 -ut 0 -tol 0.00393701 -s 8 -ch 1 -n ($sideLeg + &quot;FK_Hip_CON&quot;);&lt;br /&gt;        group -n ($sideLeg + &quot;FK_Hip_CON_NULL&quot;);    &lt;br /&gt;        circle -c 0 0 0 -nr 0 1 0 -sw 360 -r 1 -d 3 -ut 0 -tol 0.00393701 -s 8 -ch 1 -n ($sideLeg + &quot;FK_Knee_CON&quot;);&lt;br /&gt;        group -n ($sideLeg + &quot;FK_Knee_CON_NULL&quot;);   &lt;br /&gt;        circle -c 0 0 0 -nr 0 1 0 -sw 360 -r 1 -d 3 -ut 0 -tol 0.00393701 -s 8 -ch 1 -n ($sideLeg + &quot;FK_Ankle_CON&quot;);&lt;br /&gt;        group -n ($sideLeg + &quot;FK_Ankle_CON_NULL&quot;);   &lt;br /&gt;        circle -c 0 0 0 -nr 0 1 0 -sw 360 -r 1 -d 3 -ut 0 -tol 0.00393701 -s 8 -ch 1 -n ($sideLeg + &quot;FK_Ball_CON&quot;);&lt;br /&gt;        group -n ($sideLeg + &quot;FK_Ball_CON_NULL&quot;);    &lt;br /&gt;&lt;br /&gt;        //Snaps controllers into place, breaks their connections, rotates and freezes their transformations&lt;br /&gt;        //FK Hip Controller        &lt;br /&gt;        //creates the point constraint to position the controller null to the desired joint  &lt;br /&gt;        pointConstraint -offset 0 0 0 -weight 1 ($sideLeg + &quot;FK_Hip_Jnt&quot;) ($sideLeg + &quot;FK_Hip_CON_NULL&quot;) ;&lt;br /&gt;        delete ($sideLeg + &quot;FK_Hip_CON_NULL_pointConstraint1&quot;);&lt;br /&gt;        setAttr ($sideLeg + &quot;FK_Hip_CON_NULL.rotateZ&quot;) 90;&lt;br /&gt;        FreezeTransformations;&lt;br /&gt;        orientConstraint -offset 0 0 0 -weight 1 ($sideLeg + &quot;FK_Hip_Jnt&quot;) ($sideLeg + &quot;FK_Hip_CON_NULL&quot;) ;&lt;br /&gt;        delete ($sideLeg + &quot;FK_Hip_CON_NULL_orientConstraint1&quot;);&lt;br /&gt;        orientConstraint -offset 0 0 0 -weight 1 ($sideLeg + &quot;FK_Hip_CON&quot;) ($sideLeg + &quot;FK_Hip_Jnt&quot;);;&lt;br /&gt;        &lt;br /&gt;        //FK Knee Controller        &lt;br /&gt;        pointConstraint -offset 0 0 0 -weight 1 ($sideLeg + &quot;FK_Knee_Jnt&quot;) ($sideLeg + &quot;FK_Knee_CON_NULL&quot;);&lt;br /&gt;        delete ($sideLeg + &quot;FK_Knee_CON_NULL_pointConstraint1&quot;);&lt;br /&gt;        setAttr ($sideLeg + &quot;FK_Knee_CON_NULL.rotateZ&quot;) 90;&lt;br /&gt;        FreezeTransformations;&lt;br /&gt;        orientConstraint -offset 0 0 0 -weight 1 ($sideLeg + &quot;FK_Knee_Jnt&quot;) ($sideLeg + &quot;FK_Knee_CON_NULL&quot;);&lt;br /&gt;        delete ($sideLeg + &quot;FK_Knee_CON_NULL_orientConstraint1&quot;);&lt;br /&gt;        orientConstraint -offset 0 0 0 -weight 1 ($sideLeg + &quot;FK_Knee_CON&quot;) ($sideLeg + &quot;FK_Knee_Jnt&quot;);&lt;br /&gt;        &lt;br /&gt;        //FK Ankle Controller        &lt;br /&gt;        pointConstraint -offset 0 0 0 -weight 1 ($sideLeg + &quot;FK_Ankle_Jnt&quot;) ($sideLeg + &quot;FK_Ankle_CON_NULL&quot;);&lt;br /&gt;        delete ($sideLeg + &quot;FK_Ankle_CON_NULL_pointConstraint1&quot;);&lt;br /&gt;        setAttr ($sideLeg + &quot;FK_Ankle_CON_NULL.rotateZ&quot;) 90;&lt;br /&gt;        FreezeTransformations;&lt;br /&gt;        orientConstraint -offset 0 0 0 -weight 1 ($sideLeg + &quot;FK_Ankle_Jnt&quot;) ($sideLeg + &quot;FK_Ankle_CON_NULL&quot;);&lt;br /&gt;        delete ($sideLeg + &quot;FK_Ankle_CON_NULL_orientConstraint1&quot;);&lt;br /&gt;        orientConstraint -offset 0 0 0 -weight 1 ($sideLeg + &quot;FK_Ankle_CON&quot;) ($sideLeg + &quot;FK_Ankle_Jnt&quot;);&lt;br /&gt;        &lt;br /&gt;        //FK Ball Controller        &lt;br /&gt;        pointConstraint -offset 0 0 0 -weight 1 ($sideLeg + &quot;FK_Ball_Jnt&quot;) ($sideLeg + &quot;FK_Ball_CON_NULL&quot;);&lt;br /&gt;        delete ($sideLeg + &quot;FK_Ball_CON_NULL_pointConstraint1&quot;);&lt;br /&gt;        setAttr ($sideLeg + &quot;FK_Ball_CON_NULL.rotateZ&quot;) 90;&lt;br /&gt;        FreezeTransformations;&lt;br /&gt;        orientConstraint -offset 0 0 0 -weight 1 ($sideLeg + &quot;FK_Ball_Jnt&quot;) ($sideLeg + &quot;FK_Ball_CON_NULL&quot;);&lt;br /&gt;        delete ($sideLeg + &quot;FK_Ball_CON_NULL_orientConstraint1&quot;);&lt;br /&gt;        orientConstraint -offset 0 0 0 -weight 1 ($sideLeg + &quot;FK_Ball_CON&quot;) ($sideLeg + &quot;FK_Ball_Jnt&quot;);&lt;br /&gt;        &lt;br /&gt;        &lt;br /&gt;        //Parents the controllers together&lt;br /&gt;        parent ($sideLeg + &quot;FK_Ball_CON_NULL&quot;) ($sideLeg + &quot;FK_Ankle_CON&quot;);&lt;br /&gt;        parent ($sideLeg + &quot;FK_Ankle_CON_NULL&quot;) ($sideLeg + &quot;FK_Knee_CON&quot;);&lt;br /&gt;        parent ($sideLeg + &quot;FK_Knee_CON_NULL&quot;) ($sideLeg + &quot;FK_Hip_CON&quot;); &lt;br /&gt;        &lt;br /&gt;        //Creates orient constraints&lt;br /&gt;        orientConstraint -offset 0 0 0 -weight 1 ($sideLeg + &quot;FK_Hip_Jnt&quot;) ($sideLeg + &quot;IK_Hip_Jnt&quot;) ($sideLeg + &quot;Hip_Jnt&quot;);&lt;br /&gt;        orientConstraint -offset 0 0 0 -weight 1 ($sideLeg + &quot;FK_Knee_Jnt&quot;) ($sideLeg + &quot;IK_Knee_Jnt&quot;) ($sideLeg + &quot;Knee_Jnt&quot;);&lt;br /&gt;        orientConstraint -offset 0 0 0 -weight 1 ($sideLeg + &quot;FK_Ankle_Jnt&quot;) ($sideLeg + &quot;IK_Ankle_Jnt&quot;) ($sideLeg + &quot;Ankle_Jnt&quot;);&lt;br /&gt;        orientConstraint -offset 0 0 0 -weight 1 ($sideLeg + &quot;FK_Ball_Jnt&quot;) ($sideLeg + &quot;IK_Ball_Jnt&quot;) ($sideLeg + &quot;Ball_Jnt&quot;);&lt;br /&gt;        &lt;br /&gt;        //Changes interpolation types on orient constraints to limit constraint blend problems&lt;br /&gt;        setAttr ($sideLeg + &quot;Hip_Jnt_orientConstraint1.interpType&quot;) 2;&lt;br /&gt;        setAttr ($sideLeg + &quot;Knee_Jnt_orientConstraint1.interpType&quot;) 2;&lt;br /&gt;        setAttr ($sideLeg + &quot;Ankle_Jnt_orientConstraint1.interpType&quot;) 2;&lt;br /&gt;        setAttr ($sideLeg + &quot;Ball_Jnt_orientConstraint1.interpType&quot;) 2;&lt;br /&gt;        &lt;br /&gt;&lt;br /&gt; //-ln = long name&lt;br /&gt; //-k = keyable&lt;br /&gt; //-at = attribute type&lt;br /&gt; //-min = minimum&lt;br /&gt; //-max = maximum&lt;br /&gt; //-dv = default value&lt;br /&gt;     //Adds the attributes for the Foot Controller  &lt;br /&gt; addAttr -ln toeTap -k 1 -at double  -min -10 -max 10 -dv 0 (&quot;|&quot; + $sideLeg + &quot;Foot_CON&quot;);&lt;br /&gt; addAttr -ln peelHeel -k 1 -at double  -min 0 -max 10 -dv 0 (&quot;|&quot; + $sideLeg + &quot;Foot_CON&quot;);&lt;br /&gt; addAttr -ln standTip -k 1 -at double  -min 0 -max 10 -dv 0 (&quot;|&quot; + $sideLeg + &quot;Foot_CON&quot;);&lt;br /&gt; addAttr -ln twistHeel -k 1 -at double  -min -10 -max 10 -dv 0 (&quot;|&quot; + $sideLeg + &quot;Foot_CON&quot;);&lt;br /&gt; addAttr -ln twistToe -k 1 -at double  -min -10 -max 10 -dv 0 (&quot;|&quot; + $sideLeg + &quot;Foot_CON&quot;);&lt;br /&gt; addAttr -ln ikFk -k 1 -at double  -min 0 -max 10 -dv 0 (&quot;|&quot; + $sideLeg + &quot;Foot_CON&quot;);&lt;br /&gt; addAttr -ln kneeTwist -k 1 -at double -dv 0 (&quot;|&quot; + $sideLeg + &quot;Foot_CON&quot;);&lt;br /&gt;  &lt;br /&gt; //Set driven key for IK/FK Switch&lt;br /&gt; //-cd = current driver&lt;br /&gt; setAttr ($sideLeg + &quot;Foot_CON.ikFk&quot;) 0;&lt;br /&gt; setAttr ($sideLeg + &quot;Hip_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;IK_Hip_JntW1&quot;) 1;&lt;br /&gt; setAttr ($sideLeg + &quot;Hip_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;FK_Hip_JntW0&quot;) 0;&lt;br /&gt; setDrivenKeyframe -cd ($sideLeg + &quot;Foot_CON.ikFk&quot;) ($sideLeg + &quot;Hip_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;FK_Hip_JntW0&quot;);&lt;br /&gt; setDrivenKeyframe -cd ($sideLeg + &quot;Foot_CON.ikFk&quot;) ($sideLeg + &quot;Hip_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;IK_Hip_JntW1&quot;);&lt;br /&gt;  &lt;br /&gt; setAttr ($sideLeg + &quot;Foot_CON.ikFk&quot;) 10;&lt;br /&gt; setAttr ($sideLeg + &quot;Hip_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;IK_Hip_JntW1&quot;) 0;&lt;br /&gt; setAttr ($sideLeg + &quot;Hip_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;FK_Hip_JntW0&quot;) 1;&lt;br /&gt; setDrivenKeyframe -cd ($sideLeg + &quot;Foot_CON.ikFk&quot;) ($sideLeg + &quot;Hip_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;FK_Hip_JntW0&quot;);&lt;br /&gt; setDrivenKeyframe -cd ($sideLeg + &quot;Foot_CON.ikFk&quot;) ($sideLeg + &quot;Hip_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;IK_Hip_JntW1&quot;);&lt;br /&gt;  &lt;br /&gt; setAttr ($sideLeg + &quot;Foot_CON.ikFk&quot;) 0;&lt;br /&gt; setAttr ($sideLeg + &quot;Knee_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;FK_Knee_JntW0&quot;) 0;&lt;br /&gt; setAttr ($sideLeg + &quot;Knee_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;IK_Knee_JntW1&quot;) 1;&lt;br /&gt; setDrivenKeyframe -cd ($sideLeg + &quot;Foot_CON.ikFk&quot;) ($sideLeg + &quot;Knee_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;FK_Knee_JntW0&quot;);&lt;br /&gt; setDrivenKeyframe -cd ($sideLeg + &quot;Foot_CON.ikFk&quot;) ($sideLeg + &quot;Knee_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;IK_Knee_JntW1&quot;);&lt;br /&gt;  &lt;br /&gt; setAttr ($sideLeg + &quot;Foot_CON.ikFk&quot;) 10;&lt;br /&gt; setAttr ($sideLeg + &quot;Knee_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;FK_Knee_JntW0&quot;) 1;&lt;br /&gt; setAttr ($sideLeg + &quot;Knee_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;IK_Knee_JntW1&quot;) 0;&lt;br /&gt; setDrivenKeyframe -cd ($sideLeg + &quot;Foot_CON.ikFk&quot;) ($sideLeg + &quot;Knee_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;FK_Knee_JntW0&quot;);&lt;br /&gt; setDrivenKeyframe -cd ($sideLeg + &quot;Foot_CON.ikFk&quot;) ($sideLeg + &quot;Knee_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;IK_Knee_JntW1&quot;);&lt;br /&gt;  &lt;br /&gt; setAttr ($sideLeg + &quot;Foot_CON.ikFk&quot;) 0;&lt;br /&gt; setAttr ($sideLeg + &quot;Ankle_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;FK_Ankle_JntW0&quot;) 0;&lt;br /&gt; setAttr ($sideLeg + &quot;Ankle_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;IK_Ankle_JntW1&quot;) 1;&lt;br /&gt; setDrivenKeyframe -cd ($sideLeg + &quot;Foot_CON.ikFk&quot;) ($sideLeg + &quot;Ankle_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;FK_Ankle_JntW0&quot;);&lt;br /&gt; setDrivenKeyframe -cd ($sideLeg + &quot;Foot_CON.ikFk&quot;) ($sideLeg + &quot;Ankle_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;IK_Ankle_JntW1&quot;);&lt;br /&gt;  &lt;br /&gt; setAttr ($sideLeg + &quot;Foot_CON.ikFk&quot;) 10;&lt;br /&gt; setAttr ($sideLeg + &quot;Ankle_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;FK_Ankle_JntW0&quot;) 1;&lt;br /&gt; setAttr ($sideLeg + &quot;Ankle_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;IK_Ankle_JntW1&quot;) 0;&lt;br /&gt; setDrivenKeyframe -cd ($sideLeg + &quot;Foot_CON.ikFk&quot;) ($sideLeg + &quot;Ankle_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;FK_Ankle_JntW0&quot;);&lt;br /&gt; setDrivenKeyframe -cd ($sideLeg + &quot;Foot_CON.ikFk&quot;) ($sideLeg + &quot;Ankle_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;IK_Ankle_JntW1&quot;);&lt;br /&gt;  &lt;br /&gt; setAttr ($sideLeg + &quot;Foot_CON.ikFk&quot;) 0;&lt;br /&gt; setAttr ($sideLeg + &quot;Ball_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;FK_Ball_JntW0&quot;) 0;&lt;br /&gt; setAttr ($sideLeg + &quot;Ball_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;IK_Ball_JntW1&quot;) 1;&lt;br /&gt; setDrivenKeyframe -cd ($sideLeg + &quot;Foot_CON.ikFk&quot;) ($sideLeg + &quot;Ball_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;FK_Ball_JntW0&quot;);&lt;br /&gt; setDrivenKeyframe -cd ($sideLeg + &quot;Foot_CON.ikFk&quot;) ($sideLeg + &quot;Ball_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;IK_Ball_JntW1&quot;);&lt;br /&gt;  &lt;br /&gt; setAttr ($sideLeg + &quot;Foot_CON.ikFk&quot;) 10;&lt;br /&gt; setAttr ($sideLeg + &quot;Ball_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;FK_Ball_JntW0&quot;) 1;&lt;br /&gt; setAttr ($sideLeg + &quot;Ball_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;IK_Ball_JntW1&quot;) 0;&lt;br /&gt; setDrivenKeyframe -cd ($sideLeg + &quot;Foot_CON.ikFk&quot;) ($sideLeg + &quot;Ball_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;FK_Ball_JntW0&quot;);&lt;br /&gt; setDrivenKeyframe -cd ($sideLeg + &quot;Foot_CON.ikFk&quot;) ($sideLeg + &quot;Ball_Jnt_orientConstraint1.&quot; + $sideLeg + &quot;IK_Ball_JntW1&quot;);&lt;br /&gt;  &lt;br /&gt; setAttr ($sideLeg + &quot;Foot_CON.ikFk&quot;) 0;&lt;br /&gt;  &lt;br /&gt; //Creates the IK handles for the inverse foot and IK Leg&lt;br /&gt; ikHandle -n ($sideLeg + &quot;BallIk&quot;) -sol ikSCsolver -s 0 -sj ($sideLeg + &quot;IK_Ankle_Jnt&quot;) -ee ($sideLeg + &quot;IK_Ball_Jnt&quot;); //-sol = solver, -s = sticky&lt;br /&gt; ikHandle -n ($sideLeg + &quot;ToeIk&quot;) -sol ikSCsolver -s 0 -sj ($sideLeg + &quot;IK_Ball_Jnt&quot;) -ee ($sideLeg + &quot;IK_Toe_Jnt&quot;);  &lt;br /&gt; ikHandle -n ($sideLeg + &quot;LegIk&quot;) -sol ikRPsolver -s 0 -sj ($sideLeg + &quot;IK_Hip_Jnt&quot;) -ee($sideLeg + &quot;IK_Ankle_Jnt&quot;);&lt;br /&gt;  &lt;br /&gt; //Group IK Handles for reverse foot&lt;br /&gt; group -n ($sideLeg + &quot;ToeTapGroup&quot;) ($sideLeg + &quot;ToeIk&quot;) ($sideLeg + &quot;BallIk&quot;);&lt;br /&gt; group -n ($sideLeg + &quot;PeelHeelGroup&quot;)($sideLeg + &quot;LegIk&quot;);&lt;br /&gt; group -n ($sideLeg + &quot;ToePivotGroup&quot;) ($sideLeg + &quot;ToeTapGroup&quot;) ($sideLeg + &quot;PeelHeelGroup&quot;);  &lt;br /&gt; group -n ($sideLeg + &quot;HeelPivotGroup&quot;);  &lt;br /&gt; group -n ($sideLeg + &quot;FootGroup&quot;);&lt;br /&gt;  &lt;br /&gt; //Creates the nodes for the Solid Knee Setup&lt;br /&gt; createRenderNodeCB -asUtility &quot;&quot; multiplyDivide&quot;&quot;;&lt;br /&gt;  &lt;br /&gt; //Renames the utility nodes&lt;br /&gt; rename (&quot;multiplyDivide1&quot;) ($sideLeg + &quot;flipKneeRotate&quot;);&lt;br /&gt;  &lt;br /&gt; //Connects the attributes between the foot controller, the utility nodes and the leg&#39;s IK&lt;br /&gt; connectAttr ($sideLeg + &quot;Foot_CON.kneeTwist&quot;) ($sideLeg + &quot;flipKneeRotate.input1X&quot;);&lt;br /&gt; connectAttr ($sideLeg + &quot;flipKneeRotate.outputX&quot;) ($sideLeg + &quot;LegIk.twist&quot;);&lt;br /&gt;  &lt;br /&gt; setAttr ($sideLeg + &quot;flipKneeRotate.input2X&quot;) -1; //multiplies the output of the kneeFix with -1 to reverse the direction&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt; //Move pivots of foot groups for reverse foot.&lt;br /&gt; float $worldSpaceOfJoint[];&lt;br /&gt;  &lt;br /&gt; //xform = find or set any element in the transform node.  It can also set pivot points.  &lt;br /&gt; //-ws = worldspace&lt;br /&gt; //-rp = rotate pivot&lt;br /&gt; //-q = query mode&lt;br /&gt; &lt;br /&gt; $worldSpaceOfJoint = `xform -q -ws -rp ($sideLeg + &quot;Ball_Jnt&quot;)`;&lt;br /&gt; move -a $worldSpaceOfJoint[0] $worldSpaceOfJoint[1] $worldSpaceOfJoint[2] ($sideLeg + &quot;ToeTapGroup.scalePivot&quot;) ($sideLeg + &quot;ToeTapGroup.rotatePivot&quot;);&lt;br /&gt;  &lt;br /&gt; $worldSpaceOfJoint = `xform -q -ws -rp ($sideLeg + &quot;Ball_Jnt&quot;)`;&lt;br /&gt; move -a $worldSpaceOfJoint[0] $worldSpaceOfJoint[1] $worldSpaceOfJoint[2] ($sideLeg + &quot;PeelHeelGroup.scalePivot&quot;) ($sideLeg + &quot;PeelHeelGroup.rotatePivot&quot;);&lt;br /&gt;  &lt;br /&gt; $worldSpaceOfJoint = `xform -q -ws -rp ($sideLeg + &quot;Toe_Jnt&quot;)`;&lt;br /&gt; move -a $worldSpaceOfJoint[0] $worldSpaceOfJoint[1] $worldSpaceOfJoint[2] ($sideLeg + &quot;ToePivotGroup.scalePivot&quot;) ($sideLeg + &quot;ToePivotGroup.rotatePivot&quot;);&lt;br /&gt;  &lt;br /&gt; $worldSpaceOfJoint = `xform -q -ws -rp ($sideLeg + &quot;Ankle_Jnt&quot;)`;&lt;br /&gt; move -a $worldSpaceOfJoint[0] $worldSpaceOfJoint[1] $worldSpaceOfJoint[2] ($sideLeg + &quot;HeelPivotGroup.scalePivot&quot;) ($sideLeg + &quot;HeelPivotGroup.rotatePivot&quot;);&lt;br /&gt;  &lt;br /&gt; $worldSpaceOfJoint = `xform -q -ws -rp ($sideLeg + &quot;Ball_Jnt&quot;)`;&lt;br /&gt; move -a $worldSpaceOfJoint[0] $worldSpaceOfJoint[1] $worldSpaceOfJoint[2] ($sideLeg + &quot;FootGroup.scalePivot&quot;) ($sideLeg + &quot;FootGroup.rotatePivot&quot;);&lt;br /&gt;  &lt;br /&gt; //Attach Foot Controller&lt;br /&gt; group -n ($sideLeg + &quot;Foot_CONAlign&quot;) ($sideLeg + &quot;Foot_CON&quot;);&lt;br /&gt; delete `orientConstraint ($sideLeg + &quot;Ball_Jnt&quot;) ($sideLeg + &quot;Foot_CONAlign&quot;)`;&lt;br /&gt; delete `pointConstraint ($sideLeg + &quot;Ball_Jnt&quot;) ($sideLeg + &quot;Foot_CONAlign&quot;)`;&lt;br /&gt; parent ($sideLeg + &quot;FootGroup&quot;) ($sideLeg + &quot;Foot_CON&quot;);&lt;br /&gt; FreezeTransformations;&lt;br /&gt; performFreezeTransformations(0);&lt;br /&gt; setAttr ($sideLeg + &quot;LegIk.poleVectorX&quot;) 0;&lt;br /&gt; setAttr ($sideLeg + &quot;LegIk.poleVectorY&quot;) 0;&lt;br /&gt; setAttr ($sideLeg + &quot;LegIk.poleVectorZ&quot;) 0;&lt;br /&gt;&lt;br /&gt; // SET DRIVEN KEY FOR REVERSE FOOT&lt;br /&gt; // TOE TAP&lt;br /&gt; setAttr ($sideLeg + &quot;Foot_CON.toeTap&quot;) 0;&lt;br /&gt; setAttr ($sideLeg + &quot;ToeTapGroup.rotate&quot; + $footAxis) 0;&lt;br /&gt; setDrivenKeyframe -cd ($sideLeg + &quot;Foot_CON.toeTap&quot;) ($sideLeg + &quot;ToeTapGroup.rotate&quot; + $footAxis);&lt;br /&gt;  &lt;br /&gt; setAttr ($sideLeg + &quot;Foot_CON.toeTap&quot;) 10;&lt;br /&gt; setAttr ($sideLeg + &quot;ToeTapGroup.rotate&quot; + $footAxis) (90*$isFootNegative);&lt;br /&gt; setDrivenKeyframe -cd ($sideLeg + &quot;Foot_CON.toeTap&quot;) ($sideLeg + &quot;ToeTapGroup.rotate&quot; + $footAxis);&lt;br /&gt;  &lt;br /&gt; setAttr ($sideLeg + &quot;Foot_CON.toeTap&quot;) -10;&lt;br /&gt; setAttr ($sideLeg + &quot;ToeTapGroup.rotate&quot; + $footAxis) (-90*$isFootNegative);&lt;br /&gt; setDrivenKeyframe -cd ($sideLeg + &quot;Foot_CON.toeTap&quot;) ($sideLeg + &quot;ToeTapGroup.rotate&quot; + $footAxis);&lt;br /&gt; setAttr ($sideLeg + &quot;Foot_CON.toeTap&quot;) 0;&lt;br /&gt;  &lt;br /&gt; // PEEL HEEL&lt;br /&gt; setAttr ($sideLeg + &quot;Foot_CON.peelHeel&quot;) 0;&lt;br /&gt; setAttr ($sideLeg + &quot;PeelHeelGroup.rotate&quot; + $footAxis) 0;&lt;br /&gt; setDrivenKeyframe -cd ($sideLeg + &quot;Foot_CON.peelHeel&quot;) ($sideLeg + &quot;PeelHeelGroup.rotate&quot; + $footAxis);&lt;br /&gt;  &lt;br /&gt; setAttr ($sideLeg + &quot;Foot_CON.peelHeel&quot;) 10;&lt;br /&gt; setAttr ($sideLeg + &quot;PeelHeelGroup.rotate&quot; + $footAxis) (90*$isFootNegative);&lt;br /&gt; setDrivenKeyframe -cd ($sideLeg + &quot;Foot_CON.peelHeel&quot;) ($sideLeg + &quot;PeelHeelGroup.rotate&quot; + $footAxis);&lt;br /&gt; setAttr ($sideLeg + &quot;Foot_CON.peelHeel&quot;) 0;&lt;br /&gt;  &lt;br /&gt; // STAND TIP&lt;br /&gt; setAttr ($sideLeg + &quot;Foot_CON.standTip&quot;) 0;&lt;br /&gt; setAttr ($sideLeg + &quot;ToePivotGroup.rotate&quot; + $footAxis) 0;&lt;br /&gt; setDrivenKeyframe -cd ($sideLeg + &quot;Foot_CON.standTip&quot;) ($sideLeg + &quot;ToePivotGroup.rotate&quot; + $footAxis);&lt;br /&gt;  &lt;br /&gt; setAttr ($sideLeg + &quot;Foot_CON.standTip&quot;) 10;&lt;br /&gt; setAttr ($sideLeg + &quot;ToePivotGroup.rotate&quot; + $footAxis) (90*$isFootNegative);&lt;br /&gt; setDrivenKeyframe -cd ($sideLeg + &quot;Foot_CON.standTip&quot;) ($sideLeg + &quot;ToePivotGroup.rotate&quot; + $footAxis);&lt;br /&gt; setAttr ($sideLeg + &quot;Foot_CON.standTip&quot;) 0;&lt;br /&gt;  &lt;br /&gt; // TWIST HEEL&lt;br /&gt; setAttr ($sideLeg + &quot;Foot_CON.twistHeel&quot;) 0;&lt;br /&gt; setAttr ($sideLeg + &quot;HeelPivotGroup.rotateY&quot;) 0;&lt;br /&gt; setDrivenKeyframe -cd ($sideLeg + &quot;Foot_CON.twistHeel&quot;) ($sideLeg + &quot;HeelPivotGroup.rotateY&quot;);&lt;br /&gt;  &lt;br /&gt; setAttr ($sideLeg + &quot;Foot_CON.twistHeel&quot;) -10;&lt;br /&gt; setAttr ($sideLeg + &quot;HeelPivotGroup.rotateY&quot;) 90;&lt;br /&gt; setDrivenKeyframe -cd ($sideLeg + &quot;Foot_CON.twistHeel&quot;) ($sideLeg + &quot;HeelPivotGroup.rotateY&quot;);&lt;br /&gt;  &lt;br /&gt; setAttr ($sideLeg + &quot;Foot_CON.twistHeel&quot;) 10;&lt;br /&gt; setAttr ($sideLeg + &quot;HeelPivotGroup.rotateY&quot;) -90;&lt;br /&gt; setDrivenKeyframe -cd ($sideLeg + &quot;Foot_CON.twistHeel&quot;) ($sideLeg + &quot;HeelPivotGroup.rotateY&quot;);&lt;br /&gt; setAttr ($sideLeg + &quot;Foot_CON.twistHeel&quot;) 0;&lt;br /&gt;  &lt;br /&gt; // TWIST TOE&lt;br /&gt; setAttr ($sideLeg + &quot;Foot_CON.twistToe&quot;) 0;&lt;br /&gt; setAttr ($sideLeg + &quot;ToePivotGroup.rotateY&quot;) 0;&lt;br /&gt; setDrivenKeyframe -cd ($sideLeg + &quot;Foot_CON.twistToe&quot;) ($sideLeg + &quot;ToePivotGroup.rotateY&quot;);&lt;br /&gt;  &lt;br /&gt; setAttr ($sideLeg + &quot;Foot_CON.twistToe&quot;) -10;&lt;br /&gt; setAttr ($sideLeg + &quot;ToePivotGroup.rotateY&quot;) 90;&lt;br /&gt; setDrivenKeyframe -cd ($sideLeg + &quot;Foot_CON.twistToe&quot;) ($sideLeg + &quot;ToePivotGroup.rotateY&quot;);&lt;br /&gt;  &lt;br /&gt; setAttr ($sideLeg + &quot;Foot_CON.twistToe&quot;) 10;&lt;br /&gt; setAttr ($sideLeg + &quot;ToePivotGroup.rotateY&quot;) -90;&lt;br /&gt; setDrivenKeyframe -cd ($sideLeg + &quot;Foot_CON.twistToe&quot;) ($sideLeg + &quot;ToePivotGroup.rotateY&quot;);&lt;br /&gt; setAttr ($sideLeg + &quot;Foot_CON.twistToe&quot;) 0;&lt;br /&gt;  &lt;br /&gt; //Setup is finished, inform user that the script has made it all the way through.&lt;br /&gt; print (&quot;The &quot; + $sideLegLong + &quot; leg has been setup. \n&quot;);&lt;br /&gt; } &lt;br /&gt;}</content><link rel='replies' type='application/atom+xml' href='http://dnguyenart.blogspot.com/feeds/1876515516949693665/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2448899023407783266/1876515516949693665' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/1876515516949693665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/1876515516949693665'/><link rel='alternate' type='text/html' href='http://dnguyenart.blogspot.com/2011/05/auto-ikfk-blend-and-solid-knee-script.html' title='Auto IKFK Blend and Solid Knee Script'/><author><name>DNguyen</name><uri>http://www.blogger.com/profile/09146918089818318184</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_M8BKFDoah14/Sv2uEalb-0I/AAAAAAAAAMM/ebn7XE2V708/S220/Me_Laying_Down.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2448899023407783266.post-6044533340952755209</id><published>2011-05-17T11:54:00.000-05:00</published><updated>2011-05-17T11:55:27.668-05:00</updated><title type='text'>Orient controller to joint script</title><content type='html'>//////////////////////////////////////////////////////////////////&lt;br /&gt;//jointOrientController.mel                                     //&lt;br /&gt;//Scripted By: Duylinh Nguyen                                   //&lt;br /&gt;//Description: This script takes a curve, orients it to the     //&lt;br /&gt;//desired joint and applies an orient constraint on the         //&lt;br /&gt;//joint.                                                        //&lt;br /&gt;//How to use-                                                   //&lt;br /&gt;//type jointOrient &quot;name of controller&quot; &quot;name of joint&quot;;        //&lt;br /&gt;//ie.  jointOrient shoulder_CON shouler_Jnt;                    //&lt;br /&gt;//////////////////////////////////////////////////////////////////&lt;br /&gt;&lt;br /&gt;proc jointOrient (string $conName, string $jntName)&lt;br /&gt;{&lt;br /&gt;    //Creates a group Null    &lt;br /&gt;    select -r ($conName);&lt;br /&gt;    group -n ($conName + &quot;_NULL&quot;);&lt;br /&gt;    //Snaps the controller to the desired joint, rotates and freezes it&#39;s transforms&lt;br /&gt;    pointConstraint -offset 0 0 0 -weight 1 $jntName ($conName + &quot;_NULL&quot;) ;&lt;br /&gt;    delete ($conName + &quot;_NULL_pointConstraint1&quot;);&lt;br /&gt;    setAttr ($conName + &quot;_NULL.rotateZ&quot;)90;&lt;br /&gt;    FreezeTransformations;&lt;br /&gt;    //Snaps the orientation of the controller to the joint&lt;br /&gt;    orientConstraint -offset 0 0 0 -weight 1 $jntName ($conName + &quot;_NULL&quot;);&lt;br /&gt;    delete ($conName + &quot;_NULL_orientConstraint1&quot;);&lt;br /&gt;    //Orient Constrains the joint to the controller&lt;br /&gt;    orientConstraint -offset 0 0 0 -weight 1 $conName $jntName;&lt;br /&gt;}</content><link rel='replies' type='application/atom+xml' href='http://dnguyenart.blogspot.com/feeds/6044533340952755209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2448899023407783266/6044533340952755209' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/6044533340952755209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/6044533340952755209'/><link rel='alternate' type='text/html' href='http://dnguyenart.blogspot.com/2011/05/orient-controller-to-joint-script.html' title='Orient controller to joint script'/><author><name>DNguyen</name><uri>http://www.blogger.com/profile/09146918089818318184</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_M8BKFDoah14/Sv2uEalb-0I/AAAAAAAAAMM/ebn7XE2V708/S220/Me_Laying_Down.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2448899023407783266.post-1437561341019928139</id><published>2011-05-17T11:04:00.002-05:00</published><updated>2011-05-17T11:54:45.897-05:00</updated><title type='text'>Yet another big update</title><content type='html'>It seems my posts are getting fewer and further apart.  I&#39;ll try my best from now on to update this on a for normal basis.  I&#39;ve been in a scripting mood lately, so if you see several scripts, you&#39;ll know why haha. &lt;br /&gt;&lt;br /&gt;First sculpt pass for my orc&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/OrcSculpt_FirstPass.jpg&quot;&gt;&lt;br /&gt;&lt;br /&gt;Still have to design clothing for this dude&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/MaleFrontShaded-1.jpg&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/MaleBackShaded-1.jpg&quot;&gt;&lt;br /&gt;&lt;br /&gt;A Tank I modeled for my students to create LOD&#39;s for&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/TankFront-2.jpg&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/TankBack-2.jpg&quot;&gt;</content><link rel='replies' type='application/atom+xml' href='http://dnguyenart.blogspot.com/feeds/1437561341019928139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2448899023407783266/1437561341019928139' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/1437561341019928139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/1437561341019928139'/><link rel='alternate' type='text/html' href='http://dnguyenart.blogspot.com/2011/05/yet-another-big-update.html' title='Yet another big update'/><author><name>DNguyen</name><uri>http://www.blogger.com/profile/09146918089818318184</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_M8BKFDoah14/Sv2uEalb-0I/AAAAAAAAAMM/ebn7XE2V708/S220/Me_Laying_Down.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2448899023407783266.post-7700349348793606294</id><published>2011-04-05T08:41:00.004-05:00</published><updated>2011-04-05T08:55:43.737-05:00</updated><title type='text'>Super Post!!</title><content type='html'>It seems the gap between each post is getting larger and larger.  hmm.. I need to change that.  There are a few pieces I&#39;ve been backlogged on posting.  I figured I should at least post my work haha.  &lt;br /&gt;&lt;br /&gt;A rather quick 3d sculpt I did and figured I should start texturing the poor old man.  &lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/Oldman_Render.jpg&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/OldManSketch.jpg&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/OldManSketchWires.jpg&quot;&gt;&lt;br /&gt;&lt;br /&gt;A new female sculpt that I&#39;m still working on and refining.  No worries, she will have clothing in the end.&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/FemaleFront.jpg&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/FemaleBack.jpg&quot;&gt;&lt;br /&gt;&lt;br /&gt;A male 3d model I decided to work on in Maya.  Work in progress&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/MaleFront.jpg&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/MaleBack.jpg&quot;&gt;&lt;br /&gt;&lt;br /&gt;A digital painting I made for Sally.  She&#39;s a huge fan of the newer Hawaii Five-O&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/AlexOloughlin.jpg&quot;&gt;&lt;br /&gt;&lt;br /&gt;A tank I made for my students so they could create LOD models for their final.&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/tankFront.jpg&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/tankBack.jpg&quot;&gt;&lt;br /&gt;&lt;br /&gt;Textures I used to create the shader for the old man.&lt;br /&gt;Overall Color&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/Overall.jpg&quot;&gt;&lt;br /&gt;&lt;br /&gt;Diffuse Color&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/Diffuse.jpg&quot;&gt;&lt;br /&gt;&lt;br /&gt;Epidermal Color&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/Epidermal.jpg&quot;&gt;&lt;br /&gt;&lt;br /&gt;Subdermal Color&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/Subdermal.jpg&quot;&gt;&lt;br /&gt;&lt;br /&gt;Backscatter Color&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/Backscatter.jpg&quot;&gt;&lt;br /&gt;&lt;br /&gt;Roughness&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/Roughness.jpg&quot;&gt;&lt;br /&gt;&lt;br /&gt;Reflection&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/Reflection.jpg&quot;&gt;&lt;br /&gt;&lt;br /&gt;Gloss&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/Gloss.jpg&quot;&gt;&lt;br /&gt;&lt;br /&gt;Displacement&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/Displacement.jpg&quot;&gt;&lt;br /&gt;&lt;br /&gt;Normal (Only for pores)&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/Normal.jpg&quot;&gt;</content><link rel='replies' type='application/atom+xml' href='http://dnguyenart.blogspot.com/feeds/7700349348793606294/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2448899023407783266/7700349348793606294' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/7700349348793606294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/7700349348793606294'/><link rel='alternate' type='text/html' href='http://dnguyenart.blogspot.com/2011/04/super-post.html' title='Super Post!!'/><author><name>DNguyen</name><uri>http://www.blogger.com/profile/09146918089818318184</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_M8BKFDoah14/Sv2uEalb-0I/AAAAAAAAAMM/ebn7XE2V708/S220/Me_Laying_Down.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2448899023407783266.post-6937493024206964589</id><published>2011-01-26T11:26:00.003-06:00</published><updated>2011-01-26T11:52:04.731-06:00</updated><title type='text'>Audi S5</title><content type='html'>Audi S5 I worked on for a few days as part of my daily digital sketchbook.  The model was made using 3ds Max 2011 as a way to get me to practice using 3ds Max again to model.  I must say it took me longer then it would have if I were to use Maya.  I guess my modeling style just revolves around Maya&#39;s tools so much.  It was a nice change of pace though.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/Render_03.jpg&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/Render_02.jpg&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/Render_01.jpg&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/AudiS5_01.jpg&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/AudiS5_02.jpg&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/AudiS5_03.jpg&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/AudiS5_04.jpg&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/AudiS5_05.jpg&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/AudiS5_06.jpg&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/AudiS5_07.jpg&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/AudiS5_08.jpg&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/AudiS5_09.jpg&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/AudiWheel_01.jpg&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/AudiWheel_02.jpg&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/AudiWheel_03.jpg&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://i82.photobucket.com/albums/j247/jlnsatome/AudiWheel_04.jpg&quot;&gt;</content><link rel='replies' type='application/atom+xml' href='http://dnguyenart.blogspot.com/feeds/6937493024206964589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2448899023407783266/6937493024206964589' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/6937493024206964589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2448899023407783266/posts/default/6937493024206964589'/><link rel='alternate' type='text/html' href='http://dnguyenart.blogspot.com/2011/01/audi-s5.html' title='Audi S5'/><author><name>DNguyen</name><uri>http://www.blogger.com/profile/09146918089818318184</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_M8BKFDoah14/Sv2uEalb-0I/AAAAAAAAAMM/ebn7XE2V708/S220/Me_Laying_Down.jpg'/></author><thr:total>1</thr:total></entry></feed>