<?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: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-6694566809194450312</id><updated>2011-12-13T21:40:16.531-08:00</updated><category term='Unreal'/><category term='Add Key'/><category term='Introduction'/><category term='UT3 Modding'/><category term='UT3 Rigs'/><category term='Trigger'/><category term='Level Creation'/><category term='InterpActor'/><category term='UT3 Editor'/><category term='Kismet'/><category term='Animating Flashing Lights'/><category term='Blinking Lights'/><category term='Platform'/><category term='Toggleable Lights'/><category term='modding'/><category term='Matinee'/><category term='ActorX'/><category term='Movers'/><category term='Weapons Modding'/><category term='Character Modding'/><category term='Machinima'/><category term='level design'/><category term='Collision'/><category term='Animation'/><category term='FaceFX'/><title type='text'>HyperSushi on Unreal</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://hyperunreal.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://hyperunreal.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Kevin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>25</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6694566809194450312.post-4371140854652093830</id><published>2010-12-08T19:46:00.000-08:00</published><updated>2010-12-08T19:54:45.291-08:00</updated><title type='text'>ZBrush R3.5: Creating Normal Maps</title><content type='html'>Creating normal maps are similar to Polypaint. Make sure your mesh is already UVW unwrapped before exporting as an .OBJ file.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rRYV73e310o/TQBRZ02mU2I/AAAAAAAAAmA/C3kmERqNHQw/s1600/01.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 317px;" src="http://4.bp.blogspot.com/_rRYV73e310o/TQBRZ02mU2I/AAAAAAAAAmA/C3kmERqNHQw/s400/01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5548524245046678370" /&gt;&lt;/a&gt;&lt;br /&gt;Start by clicking on New Texture.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rRYV73e310o/TQBRhEfBfkI/AAAAAAAAAmI/Pk8PKEBUCm0/s1600/02.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 275px;" src="http://4.bp.blogspot.com/_rRYV73e310o/TQBRhEfBfkI/AAAAAAAAAmI/Pk8PKEBUCm0/s400/02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5548524369501847106" /&gt;&lt;/a&gt;&lt;br /&gt;Bring your mesh up to High Res in order to paint good quality normal maps.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_rRYV73e310o/TQBSCaleF-I/AAAAAAAAAmQ/U1U2-hb4LnU/s1600/03.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 279px;" src="http://2.bp.blogspot.com/_rRYV73e310o/TQBSCaleF-I/AAAAAAAAAmQ/U1U2-hb4LnU/s400/03.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5548524942370150370" /&gt;&lt;/a&gt;&lt;br /&gt;Proceed to ZBrush details into your mesh.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_rRYV73e310o/TQBSMvRSJCI/AAAAAAAAAmY/Y5tTaObSokM/s1600/04.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 305px;" src="http://3.bp.blogspot.com/_rRYV73e310o/TQBSMvRSJCI/AAAAAAAAAmY/Y5tTaObSokM/s400/04.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5548525119721317410" /&gt;&lt;/a&gt;&lt;br /&gt;Once done, dial the mesh back down to lowest resolution.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_rRYV73e310o/TQBSXSiuDpI/AAAAAAAAAmg/1CUPlBT_IEE/s1600/05.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 323px;" src="http://2.bp.blogspot.com/_rRYV73e310o/TQBSXSiuDpI/AAAAAAAAAmg/1CUPlBT_IEE/s400/05.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5548525300988382866" /&gt;&lt;/a&gt;&lt;br /&gt;Go to Normal Map and play around with different combinations of Tangent, Adaptive and SmoothUV and click on Create NormalMap.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rRYV73e310o/TQBS1appzLI/AAAAAAAAAmo/ByuDoqgRScM/s1600/06.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 311px;" src="http://1.bp.blogspot.com/_rRYV73e310o/TQBS1appzLI/AAAAAAAAAmo/ByuDoqgRScM/s400/06.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5548525818561023154" /&gt;&lt;/a&gt;&lt;br /&gt;Once happy, click on CloneNM to bring the map over to the left hand side. Remember to rotate the texture before exporting. Done!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6694566809194450312-4371140854652093830?l=hyperunreal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hyperunreal.blogspot.com/feeds/4371140854652093830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hyperunreal.blogspot.com/2010/12/zbrush-r35-creating-normal-maps.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/4371140854652093830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/4371140854652093830'/><link rel='alternate' type='text/html' href='http://hyperunreal.blogspot.com/2010/12/zbrush-r35-creating-normal-maps.html' title='ZBrush R3.5: Creating Normal Maps'/><author><name>Kevin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_rRYV73e310o/TQBRZ02mU2I/AAAAAAAAAmA/C3kmERqNHQw/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6694566809194450312.post-7974574516412447058</id><published>2010-12-08T19:11:00.000-08:00</published><updated>2010-12-08T19:33:35.883-08:00</updated><title type='text'>ZBrush R3.5: PolyPainting</title><content type='html'>PolyPainting in ZBrush R3.5 is very different from R3. It is supposed to be easier but I found out the hard way that it is frustratingly different, not necessarily easier.&lt;br /&gt;&lt;br /&gt;Here are the steps:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rRYV73e310o/TQBJYfpoLjI/AAAAAAAAAko/zRqIk4WtiqQ/s1600/01.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 320px;" src="http://4.bp.blogspot.com/_rRYV73e310o/TQBJYfpoLjI/AAAAAAAAAko/zRqIk4WtiqQ/s400/01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5548515426082238002" /&gt;&lt;/a&gt;&lt;br /&gt;Make sure you already have a 3D mesh modelled, fully UV Unwrapped and exported as .OBJ format. Import this mesh in ZBrush.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_rRYV73e310o/TQBJu3n08VI/AAAAAAAAAkw/FViXro90cB8/s1600/02.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 280px;" src="http://2.bp.blogspot.com/_rRYV73e310o/TQBJu3n08VI/AAAAAAAAAkw/FViXro90cB8/s400/02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5548515810474258770" /&gt;&lt;/a&gt;&lt;br /&gt;Under Texture Map, click New Texture.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_rRYV73e310o/TQBJ65wNstI/AAAAAAAAAk4/sO7VAuqK7dI/s1600/03.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 347px;" src="http://3.bp.blogspot.com/_rRYV73e310o/TQBJ65wNstI/AAAAAAAAAk4/sO7VAuqK7dI/s400/03.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5548516017204736722" /&gt;&lt;/a&gt;&lt;br /&gt;Then click New From Polypaint and you should be getting this upside down UVW Map of your mesh.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rRYV73e310o/TQBKMut7R8I/AAAAAAAAAlA/DoORqnp8rOU/s1600/04.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 355px;" src="http://4.bp.blogspot.com/_rRYV73e310o/TQBKMut7R8I/AAAAAAAAAlA/DoORqnp8rOU/s400/04.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5548516323479996354" /&gt;&lt;/a&gt;&lt;br /&gt;As you only want to affect colours and not the mesh itself, remember to turn off ZAdd. The next step is VERY IMPORTANT. Immediately start painting. You will not see anything. Don't worry.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rRYV73e310o/TQBKagpDGmI/AAAAAAAAAlI/BodSuyNKuSw/s1600/05.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 277px;" src="http://4.bp.blogspot.com/_rRYV73e310o/TQBKagpDGmI/AAAAAAAAAlI/BodSuyNKuSw/s400/05.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5548516560219609698" /&gt;&lt;/a&gt;&lt;br /&gt;Toggle the texture off and you will see the results of your earlier painting. If you missed the earlier steps and start painting after turning the texture off, the painting looks screwed up.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rRYV73e310o/TQBKj9P_DBI/AAAAAAAAAlQ/KBkicQjXEPM/s1600/06.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 319px;" src="http://1.bp.blogspot.com/_rRYV73e310o/TQBKj9P_DBI/AAAAAAAAAlQ/KBkicQjXEPM/s400/06.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5548516722517937170" /&gt;&lt;/a&gt;&lt;br /&gt;Click New from Polypaint to register the new changes and click Texture On to see the changes.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rRYV73e310o/TQBKxrh31ZI/AAAAAAAAAlY/9A1DBM2OZ0c/s1600/07.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 320px;" src="http://4.bp.blogspot.com/_rRYV73e310o/TQBKxrh31ZI/AAAAAAAAAlY/9A1DBM2OZ0c/s400/07.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5548516958279292306" /&gt;&lt;/a&gt;&lt;br /&gt;Bring your cursor to the UV thumbnail and you can see the details painted.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rRYV73e310o/TQBK_NiOg6I/AAAAAAAAAlg/ttHHAkObm9c/s1600/08.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 283px;" src="http://1.bp.blogspot.com/_rRYV73e310o/TQBK_NiOg6I/AAAAAAAAAlg/ttHHAkObm9c/s400/08.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5548517190745883554" /&gt;&lt;/a&gt;&lt;br /&gt;When you are ready to export the painted map, click on Clone Texture.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_rRYV73e310o/TQBLK3bQmhI/AAAAAAAAAlo/mOuZ_7h0yOQ/s1600/09.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 320px;" src="http://2.bp.blogspot.com/_rRYV73e310o/TQBLK3bQmhI/AAAAAAAAAlo/mOuZ_7h0yOQ/s400/09.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5548517390969510418" /&gt;&lt;/a&gt;&lt;br /&gt;The painted map should be transferred to the left side.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rRYV73e310o/TQBLeDtFzpI/AAAAAAAAAlw/PVKblOh5zV4/s1600/10.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 373px;" src="http://4.bp.blogspot.com/_rRYV73e310o/TQBLeDtFzpI/AAAAAAAAAlw/PVKblOh5zV4/s400/10.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5548517720683040402" /&gt;&lt;/a&gt;&lt;br /&gt;Go to Texture and Rotate the painted texture.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rRYV73e310o/TQBLpYHkX1I/AAAAAAAAAl4/aH-hoVASZoA/s1600/11.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 304px;" src="http://4.bp.blogspot.com/_rRYV73e310o/TQBLpYHkX1I/AAAAAAAAAl4/aH-hoVASZoA/s400/11.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5548517915141365586" /&gt;&lt;/a&gt;&lt;br /&gt;Click on the left hand side image and Export. Done!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6694566809194450312-7974574516412447058?l=hyperunreal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hyperunreal.blogspot.com/feeds/7974574516412447058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hyperunreal.blogspot.com/2010/12/zbrush-r35-polypainting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/7974574516412447058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/7974574516412447058'/><link rel='alternate' type='text/html' href='http://hyperunreal.blogspot.com/2010/12/zbrush-r35-polypainting.html' title='ZBrush R3.5: PolyPainting'/><author><name>Kevin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_rRYV73e310o/TQBJYfpoLjI/AAAAAAAAAko/zRqIk4WtiqQ/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6694566809194450312.post-8794032424445687359</id><published>2010-09-15T00:11:00.000-07:00</published><updated>2010-09-15T00:35:08.450-07:00</updated><title type='text'>Machinima: Making Custom Character Animation Part 3</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_rRYV73e310o/TJBx6HXMPRI/AAAAAAAAAi0/1fyzYaDSAaI/s1600/CustomAnim20.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 266px;" src="http://3.bp.blogspot.com/_rRYV73e310o/TJBx6HXMPRI/AAAAAAAAAi0/1fyzYaDSAaI/s400/CustomAnim20.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5517034786751528210" /&gt;&lt;/a&gt;&lt;br /&gt;Open up Unreal Editor and in the Generic Browser, right click in the grey area and create a New AnimSet.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_rRYV73e310o/TJBydMbEnPI/AAAAAAAAAi8/V8bLmPixPOA/s1600/CustomAnim21.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 315px;" src="http://3.bp.blogspot.com/_rRYV73e310o/TJBydMbEnPI/AAAAAAAAAi8/V8bLmPixPOA/s400/CustomAnim21.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5517035389405404402" /&gt;&lt;/a&gt;&lt;br /&gt;Double click on the (empty) AnimSet and the AnimSet Editor dialogue box will open up. Load up the Krall character.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_rRYV73e310o/TJByz44U2DI/AAAAAAAAAjE/n1V9CoZPsSw/s1600/CustomAnim22.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 259px;" src="http://2.bp.blogspot.com/_rRYV73e310o/TJByz44U2DI/AAAAAAAAAjE/n1V9CoZPsSw/s400/CustomAnim22.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5517035779296385074" /&gt;&lt;/a&gt;&lt;br /&gt;Go to File and load up the .PSA file of the KungFu animation.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rRYV73e310o/TJB1ARuUzaI/AAAAAAAAAjM/Dj_iW453UCo/s1600/CustomAnim23.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 294px;" src="http://4.bp.blogspot.com/_rRYV73e310o/TJB1ARuUzaI/AAAAAAAAAjM/Dj_iW453UCo/s400/CustomAnim23.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5517038191147011490" /&gt;&lt;/a&gt;&lt;br /&gt;At first, the Krall will do a KungFu on the spot. Be sure to uncheck bAnimRotationOnly.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_rRYV73e310o/TJB1VEg7qcI/AAAAAAAAAjU/En9qmUnkiXI/s1600/CustomAnim24.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 335px;" src="http://2.bp.blogspot.com/_rRYV73e310o/TJB1VEg7qcI/AAAAAAAAAjU/En9qmUnkiXI/s400/CustomAnim24.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5517038548378429890" /&gt;&lt;/a&gt;&lt;br /&gt;Look for the Cinematic Krall mesh under CH_Krall_Cine, click on that Krall and add it to the scene.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rRYV73e310o/TJB1hmOgKLI/AAAAAAAAAjc/NfUy21Gi-DQ/s1600/CustomAnim25.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 284px;" src="http://1.bp.blogspot.com/_rRYV73e310o/TJB1hmOgKLI/AAAAAAAAAjc/NfUy21Gi-DQ/s400/CustomAnim25.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5517038763586365618" /&gt;&lt;/a&gt;&lt;br /&gt;Fire up Kismet and create Matinee.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rRYV73e310o/TJB15WqwAsI/AAAAAAAAAjk/5pDDbtZl3PM/s1600/CustomAnim26.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 348px; height: 400px;" src="http://4.bp.blogspot.com/_rRYV73e310o/TJB15WqwAsI/AAAAAAAAAjk/5pDDbtZl3PM/s400/CustomAnim26.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5517039171726738114" /&gt;&lt;/a&gt;&lt;br /&gt;Double click on Matinee, right click on the grey area of the Matinee dialogue box, and Add New Skeletal Mesh Group and give it a name that makes sense eg. KrallAnim.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_rRYV73e310o/TJB2k5bAWGI/AAAAAAAAAjs/pkiG0tOP02I/s1600/CustomAnim27.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 339px;" src="http://2.bp.blogspot.com/_rRYV73e310o/TJB2k5bAWGI/AAAAAAAAAjs/pkiG0tOP02I/s400/CustomAnim27.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5517039919790315618" /&gt;&lt;/a&gt;&lt;br /&gt;When you click on the root of KrallAnim, you will find the GroupAnimSets is currently empty. Pick that animation from the Generic Browser and assign it to the GroupAnimSets.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rRYV73e310o/TJB222HabiI/AAAAAAAAAj0/BfqtOIcVSok/s1600/CustomAnim28.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 392px;" src="http://4.bp.blogspot.com/_rRYV73e310o/TJB222HabiI/AAAAAAAAAj0/BfqtOIcVSok/s400/CustomAnim28.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5517040228140477986" /&gt;&lt;/a&gt;&lt;br /&gt;Click on the Anim bar, hit the Enter key to assign an animation (here it is Kick).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rRYV73e310o/TJB3HL86FgI/AAAAAAAAAj8/ecTLApjs6-Q/s1600/CustomAnim29.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 206px;" src="http://1.bp.blogspot.com/_rRYV73e310o/TJB3HL86FgI/AAAAAAAAAj8/ecTLApjs6-Q/s400/CustomAnim29.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5517040508879902210" /&gt;&lt;/a&gt;&lt;br /&gt;It should be like this. Adjust the timeline and run the animation in realtime to see it in action. Done!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6694566809194450312-8794032424445687359?l=hyperunreal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hyperunreal.blogspot.com/feeds/8794032424445687359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hyperunreal.blogspot.com/2010/09/machinima-making-custom-character_15.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/8794032424445687359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/8794032424445687359'/><link rel='alternate' type='text/html' href='http://hyperunreal.blogspot.com/2010/09/machinima-making-custom-character_15.html' title='Machinima: Making Custom Character Animation Part 3'/><author><name>Kevin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_rRYV73e310o/TJBx6HXMPRI/AAAAAAAAAi0/1fyzYaDSAaI/s72-c/CustomAnim20.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6694566809194450312.post-8635433179268641375</id><published>2010-09-14T23:47:00.000-07:00</published><updated>2010-09-15T00:38:59.368-07:00</updated><title type='text'>Machinima: Making Custom Character Animation Part 2</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_rRYV73e310o/TJBsTAvAhwI/AAAAAAAAAhE/zICGYhJSUIQ/s1600/CustomAnim10.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 272px;" src="http://3.bp.blogspot.com/_rRYV73e310o/TJBsTAvAhwI/AAAAAAAAAhE/zICGYhJSUIQ/s400/CustomAnim10.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5517028617399338754" /&gt;&lt;/a&gt;&lt;br /&gt;Click on the Motion Mixer icon to open up the Mixer dialogue box. Right click on the dialogue box to add another layer. You will need two layers if you have two motion capture clips.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_rRYV73e310o/TJBsqFR_7rI/AAAAAAAAAhM/9ujaKh-cISU/s1600/CustomAnim11.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 352px; height: 400px;" src="http://2.bp.blogspot.com/_rRYV73e310o/TJBsqFR_7rI/AAAAAAAAAhM/9ujaKh-cISU/s400/CustomAnim11.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5517029013756833458" /&gt;&lt;/a&gt;&lt;br /&gt;Right click to insert a motion capture clip as in the diagram.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rRYV73e310o/TJBs_Ir6cvI/AAAAAAAAAhU/dmDLns-JKPY/s1600/CustomAnim12.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 189px;" src="http://1.bp.blogspot.com/_rRYV73e310o/TJBs_Ir6cvI/AAAAAAAAAhU/dmDLns-JKPY/s400/CustomAnim12.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5517029375448085234" /&gt;&lt;/a&gt;&lt;br /&gt;At first, your dialogue box should look roughly like this. You will need to align the clip so that the correct animation plays at the correct timeline.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rRYV73e310o/TJBtUmLHNYI/AAAAAAAAAhc/I2G_b4nKeAY/s1600/CustomAnim13.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 191px;" src="http://4.bp.blogspot.com/_rRYV73e310o/TJBtUmLHNYI/AAAAAAAAAhc/I2G_b4nKeAY/s400/CustomAnim13.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5517029744140825986" /&gt;&lt;/a&gt;&lt;br /&gt;Drag the second clip as per your liking.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rRYV73e310o/TJBt2AWGcxI/AAAAAAAAAhk/hTq55Gc9D9Y/s1600/CustomAnim14.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 351px; height: 155px;" src="http://1.bp.blogspot.com/_rRYV73e310o/TJBt2AWGcxI/AAAAAAAAAhk/hTq55Gc9D9Y/s400/CustomAnim14.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5517030318101918482" /&gt;&lt;/a&gt;&lt;br /&gt;Next, click on the "w" button to invoke weightage to your mocap clips. Then add points to the timeline clips so you can drag the weight percentage of the clips between 0% to 100% (somewhat like Adobe Premiere).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rRYV73e310o/TJBuGQRMTZI/AAAAAAAAAhs/6H8Ly-9_Vyo/s1600/CustomAnim15.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 228px;" src="http://4.bp.blogspot.com/_rRYV73e310o/TJBuGQRMTZI/AAAAAAAAAhs/6H8Ly-9_Vyo/s400/CustomAnim15.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5517030597254204818" /&gt;&lt;/a&gt;&lt;br /&gt;Once happy, click on the word "Bip01", right click and "Compute Mixdown".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rRYV73e310o/TJBujccp6jI/AAAAAAAAAh0/_E9LTD_cKqc/s1600/CustomAnim16.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 188px;" src="http://1.bp.blogspot.com/_rRYV73e310o/TJBujccp6jI/AAAAAAAAAh0/_E9LTD_cKqc/s400/CustomAnim16.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5517031098739714610" /&gt;&lt;/a&gt;&lt;br /&gt;Once the mixdown is computed, it still is not committed to the biped. This is evident when you close the Mixer icon and you will find that nothing has changed. So to commit the change, right click on the mixdown, and Copy to Biped.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rRYV73e310o/TJBuwikbHkI/AAAAAAAAAh8/unR11jg87Gg/s1600/CustomAnim17.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 316px;" src="http://4.bp.blogspot.com/_rRYV73e310o/TJBuwikbHkI/AAAAAAAAAh8/unR11jg87Gg/s400/CustomAnim17.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5517031323721211458" /&gt;&lt;/a&gt;&lt;br /&gt;Close the mixer dialogue box and see the final results.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_rRYV73e310o/TJBwHgqePdI/AAAAAAAAAiE/gBq4g1uEOoo/s1600/CustomAnim18.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 386px;" src="http://3.bp.blogspot.com/_rRYV73e310o/TJBwHgqePdI/AAAAAAAAAiE/gBq4g1uEOoo/s400/CustomAnim18.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5517032817858330066" /&gt;&lt;/a&gt;&lt;br /&gt;Open up the Krall model which you can download from UDN.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_rRYV73e310o/TJBwim1RrEI/AAAAAAAAAiM/1yw53weWzAA/s1600/CustomAnim19.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 298px;" src="http://2.bp.blogspot.com/_rRYV73e310o/TJBwim1RrEI/AAAAAAAAAiM/1yw53weWzAA/s400/CustomAnim19.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5517033283370724418" /&gt;&lt;/a&gt;&lt;br /&gt;At first, you may not be able to see the Character Studio bone (of which you wouldn't be able to incorporate your custom mocap). So zoom in to the Krall, you will notice a very thin line. Click on that line and change the view mode to "Object".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_rRYV73e310o/TJBwvXaap-I/AAAAAAAAAiU/6EVWa7uZrhs/s1600/CustomAnim19_01.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 386px;" src="http://2.bp.blogspot.com/_rRYV73e310o/TJBwvXaap-I/AAAAAAAAAiU/6EVWa7uZrhs/s400/CustomAnim19_01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5517033502569834466" /&gt;&lt;/a&gt;&lt;br /&gt;You Krall structure would look like this.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_rRYV73e310o/TJBxDaGD4PI/AAAAAAAAAic/ur3gBFFQNWg/s1600/CustomAnim19_02.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 386px;" src="http://3.bp.blogspot.com/_rRYV73e310o/TJBxDaGD4PI/AAAAAAAAAic/ur3gBFFQNWg/s400/CustomAnim19_02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5517033846887145714" /&gt;&lt;/a&gt;&lt;br /&gt;Click on a bone in the Character Studio, go to the Motion tab, and open the customised mocap file.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rRYV73e310o/TJBxOAPWtSI/AAAAAAAAAik/-GGT1O4Ep5c/s1600/CustomAnim19_03.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 386px;" src="http://1.bp.blogspot.com/_rRYV73e310o/TJBxOAPWtSI/AAAAAAAAAik/-GGT1O4Ep5c/s400/CustomAnim19_03.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5517034028925367586" /&gt;&lt;/a&gt;&lt;br /&gt;You Krall will now be doing a KungFu action! Remember to export the animation to .PSA format using the ActorX plugin.&lt;br /&gt;&lt;br /&gt;In &lt;a href="http://hyperunreal.blogspot.com/2010/09/machinima-making-custom-character_15.html"&gt;Part 3&lt;/a&gt;, we will go into Unreal Editor itself to incorporate that custom animation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6694566809194450312-8635433179268641375?l=hyperunreal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hyperunreal.blogspot.com/feeds/8635433179268641375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hyperunreal.blogspot.com/2010/09/machinima-making-custom-character.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/8635433179268641375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/8635433179268641375'/><link rel='alternate' type='text/html' href='http://hyperunreal.blogspot.com/2010/09/machinima-making-custom-character.html' title='Machinima: Making Custom Character Animation Part 2'/><author><name>Kevin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_rRYV73e310o/TJBsTAvAhwI/AAAAAAAAAhE/zICGYhJSUIQ/s72-c/CustomAnim10.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6694566809194450312.post-7007891892739658037</id><published>2010-08-23T17:48:00.000-07:00</published><updated>2010-09-15T00:37:55.648-07:00</updated><title type='text'>Machinima: Making Custom Character Animation Part 1</title><content type='html'>This tutorial will help you make custom animation for existing characters in Unreal, in order to make them do certain animations that do not exist in the AnimSet within Unreal. In my example, I will make a Krall character do some kung fu fighting by using some motion capture files and incorporating it in Character Studio, then exporting it to Unreal.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rRYV73e310o/THIMdV13TcI/AAAAAAAAAgE/zckTDvXq35I/s1600/CustomAnim01.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 386px;" src="http://1.bp.blogspot.com/_rRYV73e310o/THIMdV13TcI/AAAAAAAAAgE/zckTDvXq35I/s400/CustomAnim01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5508478992446344642" /&gt;&lt;/a&gt;&lt;br /&gt;First, get yourself some motion capture files (or keyframe some animations). Open up Character Studio like in the diagram.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rRYV73e310o/THINFFygs5I/AAAAAAAAAgM/B2I34dN4Mlk/s1600/CustomAnim02.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 386px;" src="http://1.bp.blogspot.com/_rRYV73e310o/THINFFygs5I/AAAAAAAAAgM/B2I34dN4Mlk/s400/CustomAnim02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5508479675332080530" /&gt;&lt;/a&gt;&lt;br /&gt;Remember that Character Studio is a max plugin and in most respects, it is pretty much a different software altogether. Thus, some of the workflow is very different from max. Click on any body part of the Biped character, then click on the Motion tab. This will open up the Biped parameters. You can then access the Open folder icon to open up the motion capture files of your choice.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rRYV73e310o/THMT2fXW89I/AAAAAAAAAgU/Z7f7w14AkL4/s1600/CustomAnim03.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 386px;" src="http://1.bp.blogspot.com/_rRYV73e310o/THMT2fXW89I/AAAAAAAAAgU/Z7f7w14AkL4/s400/CustomAnim03.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5508768596057584594" /&gt;&lt;/a&gt;&lt;br /&gt;Examine your mocap files. The last frame of the first file and the first frame of the second file should have the same centre point for the character. This way, the transition animation between the two files will be seamless and smooth. If it is not, the move the centre point so that they align. You can observe the centre point by clicking on the Footsteps icon.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_rRYV73e310o/THMZTWAIPlI/AAAAAAAAAgc/Yhg0Z_I598M/s1600/CustomAnim04.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 179px;" src="http://3.bp.blogspot.com/_rRYV73e310o/THMZTWAIPlI/AAAAAAAAAgc/Yhg0Z_I598M/s400/CustomAnim04.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5508774589318577746" /&gt;&lt;/a&gt;&lt;br /&gt;Expand upon the Layers menu. Create Layer and select Bip01 and move it to the centre point. Remember to turn on the Auto Key button to record the animation.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rRYV73e310o/THMZa7NsE9I/AAAAAAAAAgk/Uz1EpQFH2so/s1600/CustomAnim05.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 386px;" src="http://1.bp.blogspot.com/_rRYV73e310o/THMZa7NsE9I/AAAAAAAAAgk/Uz1EpQFH2so/s400/CustomAnim05.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5508774719566648274" /&gt;&lt;/a&gt;&lt;br /&gt;You will see a red silhoutte. That is the position of the original animation as opposed to the new position of your animation.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_rRYV73e310o/THMZygjvHGI/AAAAAAAAAgs/0Icp3aVyvsk/s1600/CustomAnim06.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 386px;" src="http://3.bp.blogspot.com/_rRYV73e310o/THMZygjvHGI/AAAAAAAAAgs/0Icp3aVyvsk/s400/CustomAnim06.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5508775124728224866" /&gt;&lt;/a&gt;&lt;br /&gt;Click on the Collapse layer button to flatten your layer and commit all the new keyframes onto the old keyframes.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rRYV73e310o/TJBreANp7lI/AAAAAAAAAg8/-tKC7COKtLc/s1600/CustomAnim07.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 375px; height: 302px;" src="http://4.bp.blogspot.com/_rRYV73e310o/TJBreANp7lI/AAAAAAAAAg8/-tKC7COKtLc/s400/CustomAnim07.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5517027706726379090" /&gt;&lt;/a&gt;&lt;br /&gt;In order to blend the two animation clips together, you need to save the readjusted animation clips. Click on the icon and save accordingly.&lt;br /&gt;&lt;br /&gt;In &lt;a href="http://hyperunreal.blogspot.com/2010/09/machinima-making-custom-character.html"&gt;Part 2&lt;/a&gt;, we will learn how to use Motion Mixer inside Character Studio to mix the two (or more) animation clips together so they blend seamlessly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6694566809194450312-7007891892739658037?l=hyperunreal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hyperunreal.blogspot.com/feeds/7007891892739658037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hyperunreal.blogspot.com/2010/08/machinima-making-custom-character.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/7007891892739658037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/7007891892739658037'/><link rel='alternate' type='text/html' href='http://hyperunreal.blogspot.com/2010/08/machinima-making-custom-character.html' title='Machinima: Making Custom Character Animation Part 1'/><author><name>Kevin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_rRYV73e310o/THIMdV13TcI/AAAAAAAAAgE/zckTDvXq35I/s72-c/CustomAnim01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6694566809194450312.post-568919646047424322</id><published>2009-10-27T23:56:00.000-07:00</published><updated>2011-10-13T17:30:11.751-07:00</updated><title type='text'>Custom Weapon in UnReal: Part 2</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/SufsR2w7C7I/AAAAAAAAAZo/CMkxER8ZYek/s1600-h/12.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 377px;" src="http://4.bp.blogspot.com/_rRYV73e310o/SufsR2w7C7I/AAAAAAAAAZo/CMkxER8ZYek/s400/12.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397542469929470898" /&gt;&lt;/a&gt;&lt;br /&gt;In UnReal Editor, import the textures for the weapon, the weapon mesh (.PSK) and the weapon anims (.PSA). &lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Suft6sESvBI/AAAAAAAAAZw/-KL1ZeZscNo/s1600-h/13.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 238px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Suft6sESvBI/AAAAAAAAAZw/-KL1ZeZscNo/s400/13.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397544270944189458" /&gt;&lt;/a&gt;Create an AnimSet&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/SufuCZOIxLI/AAAAAAAAAZ4/KhXu7ItE4vs/s1600-h/14.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 393px;" src="http://3.bp.blogspot.com/_rRYV73e310o/SufuCZOIxLI/AAAAAAAAAZ4/KhXu7ItE4vs/s400/14.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397544403324159154" /&gt;&lt;/a&gt;&lt;br /&gt;Your AnimSet Editor will open. Choose the weapon mesh and import the .PSA from here.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/SufuZiVIWhI/AAAAAAAAAaA/p3Zz93o9iqg/s1600-h/15.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 304px;" src="http://4.bp.blogspot.com/_rRYV73e310o/SufuZiVIWhI/AAAAAAAAAaA/p3Zz93o9iqg/s400/15.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397544800906402322" /&gt;&lt;/a&gt;&lt;br /&gt;Open the Socket Manager and assign MF to the base and MuzzleFlashSocket to the point of fire.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/SufvDSYE7JI/AAAAAAAAAaI/DuzoDbG45e4/s1600-h/16.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 390px;" src="http://3.bp.blogspot.com/_rRYV73e310o/SufvDSYE7JI/AAAAAAAAAaI/DuzoDbG45e4/s400/16.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397545518178299026" /&gt;&lt;/a&gt;&lt;br /&gt;This is how you import .PSA in case anyone is clueless.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/SufvTUeIVpI/AAAAAAAAAaQ/Ntg4C6GzzWI/s1600-h/17.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 290px;" src="http://3.bp.blogspot.com/_rRYV73e310o/SufvTUeIVpI/AAAAAAAAAaQ/Ntg4C6GzzWI/s400/17.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397545793618466450" /&gt;&lt;/a&gt;&lt;br /&gt;In your UTAmmo_SmileyGun.uc, change the highlighted sentence to UTWeap_NameOfYourWeapon.&lt;br /&gt;&lt;br /&gt;UPDATE: Here's a more detail breakdown of what to change (be sure to save as ANSI format if using NotePad++)&lt;br /&gt;&lt;br /&gt;Open UTAmmo_SmileyGun.uc&lt;br /&gt;Change line 4 to this&lt;br /&gt;class UTAmmo_SmileyGun extends UTAmmoPickupFactory;&lt;br /&gt;line 9 to this:&lt;br /&gt;TargetWeapon=class'UTWeap_SmileyGun'&lt;br /&gt;these redefine the name of the class and retarget the ammo to the correct weapon. If you like you can play with line 8.&lt;br /&gt;AmmoAmount=8&lt;br /&gt;&lt;br /&gt;Open UTAttachment_SmileyGun.uc&lt;br /&gt;change line 4 to:&lt;br /&gt;class UTAttachment_SmileyGun extends UTWeaponAttachment;&lt;br /&gt;line 24:&lt;br /&gt;End = Start + vector(Instigator.Controller.Rotation) class'UTWeap_SmileyGun'.default.WeaponRange;&lt;br /&gt;line 117:&lt;br /&gt;SkeletalMesh=SkeletalMesh'WP_Smiley_Gun.Mesh.WP_Smiley_Gun_3P' (or wherever your mesh is located)&lt;br /&gt;line 131:&lt;br /&gt;WeaponClass=class'UTWeap_SmileyGun'&lt;br /&gt;&lt;br /&gt;Now open UTWeap_SmileyGun.uc&lt;br /&gt;change line 4:&lt;br /&gt;class UTWeap_SmileyGun extends UTWeapon;&lt;br /&gt;change line 345 and 346:&lt;br /&gt;SkeletalMesh=SkeletalMesh'WP_Smiley_Gun.Mesh.WP_Smiley_Gun_1P' (or wherever the first person gun is located)&lt;br /&gt;AnimSets(0)=AnimSet'WP_Smiley_Gun.Anim.WP_Smiley_Gun_1P_Anim'&lt;br /&gt;line 352:&lt;br /&gt;AttachmentClass=class'UTAttachment_SmileyGun'&lt;br /&gt;line 355:&lt;br /&gt;SkeletalMesh=SkeletalMesh'WP_Smiley_Gun.Mesh.WP_Smiley_Gun_3P'&lt;br /&gt;line 400:&lt;br /&gt;MuzzleFlashSocket=MuzzleFlashSocket&lt;br /&gt;&lt;br /&gt;DONE!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/SufvyzGpsHI/AAAAAAAAAaY/HvRk9eRPW94/s1600-h/18.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 350px; height: 400px;" src="http://2.bp.blogspot.com/_rRYV73e310o/SufvyzGpsHI/AAAAAAAAAaY/HvRk9eRPW94/s400/18.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397546334417432690" /&gt;&lt;/a&gt;&lt;br /&gt;In your UTAttachment_SmileyGun.uc, make the changes as per this pic.&lt;br /&gt;&lt;br /&gt;The third uc file is the toughest. Basically, examine the file and change what you think links previously to the rocket launcher, to now link to the SmileyGun. I've attached the hacked UTWeap_SmileyGun.uc file for your perusal.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/SufzY9XWxpI/AAAAAAAAAag/chIh-oLXF6w/s1600-h/19.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 326px; height: 126px;" src="http://3.bp.blogspot.com/_rRYV73e310o/SufzY9XWxpI/AAAAAAAAAag/chIh-oLXF6w/s400/19.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397550288541763218" /&gt;&lt;/a&gt;&lt;br /&gt;When you run the UnReal editor again (once the uc files are hacked), it will detect changes and act as a compiler. This message will appear.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/Suf0hUQuKEI/AAAAAAAAAao/tvGvLu6mioo/s1600-h/20.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 176px;" src="http://1.bp.blogspot.com/_rRYV73e310o/Suf0hUQuKEI/AAAAAAAAAao/tvGvLu6mioo/s400/20.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397551531638532162" /&gt;&lt;/a&gt;&lt;br /&gt;There should be no errors. Then you're good to go.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Suf0tFbItuI/AAAAAAAAAaw/BbD_xQLEHzo/s1600-h/21.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Suf0tFbItuI/AAAAAAAAAaw/BbD_xQLEHzo/s400/21.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397551733814114018" /&gt;&lt;/a&gt;&lt;br /&gt;Run Unreal and go to Mutators.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/Suf1EELuqwI/AAAAAAAAAa4/ZaZz53akQpc/s1600-h/21_2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 162px;" src="http://4.bp.blogspot.com/_rRYV73e310o/Suf1EELuqwI/AAAAAAAAAa4/ZaZz53akQpc/s400/21_2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397552128618048258" /&gt;&lt;/a&gt;&lt;br /&gt;Close Unreal and a UTSmileyGun.ini should be created. You can change FriendlyName and Description.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/Suf1Z8NceMI/AAAAAAAAAbA/Lfc_SDUKefM/s1600-h/22.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_rRYV73e310o/Suf1Z8NceMI/AAAAAAAAAbA/Lfc_SDUKefM/s400/22.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397552504434882754" /&gt;&lt;/a&gt;&lt;br /&gt;Back in Unreal, go to Mutators -&gt; Weapon Replacement&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/Suf1mFK-k_I/AAAAAAAAAbI/kSwfON0wYw8/s1600-h/23.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_rRYV73e310o/Suf1mFK-k_I/AAAAAAAAAbI/kSwfON0wYw8/s400/23.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397552712998884338" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/Suf1wJMVeOI/AAAAAAAAAbQ/h7ytGPFCsig/s1600-h/24.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 53px;" src="http://3.bp.blogspot.com/_rRYV73e310o/Suf1wJMVeOI/AAAAAAAAAbQ/h7ytGPFCsig/s400/24.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397552885877012706" /&gt;&lt;/a&gt;&lt;br /&gt;Forgot to mention that a .u file would also be created. Put that into the Published directory if you are to run Unreal instead of the Editor.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Suf2RABg86I/AAAAAAAAAbo/WhwuIJqNcws/s1600-h/25.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Suf2RABg86I/AAAAAAAAAbo/WhwuIJqNcws/s400/25.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397553450351391650" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/Suf2ZtvsQsI/AAAAAAAAAbw/Sjmdk4X1SHk/s1600-h/26.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_rRYV73e310o/Suf2ZtvsQsI/AAAAAAAAAbw/Sjmdk4X1SHk/s400/26.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397553600063619778" /&gt;&lt;/a&gt;&lt;br /&gt;Done!&lt;br /&gt;&lt;br /&gt;Note: Do not name your package the same name as your weapon script folder (eg. SmileyGun folder, do NOT have a SmileyGun.upk. Unreal is too stupid to figure this out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6694566809194450312-568919646047424322?l=hyperunreal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hyperunreal.blogspot.com/feeds/568919646047424322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hyperunreal.blogspot.com/2009/10/custom-weapon-in-unreal-part-2.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/568919646047424322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/568919646047424322'/><link rel='alternate' type='text/html' href='http://hyperunreal.blogspot.com/2009/10/custom-weapon-in-unreal-part-2.html' title='Custom Weapon in UnReal: Part 2'/><author><name>Kevin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_rRYV73e310o/SufsR2w7C7I/AAAAAAAAAZo/CMkxER8ZYek/s72-c/12.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6694566809194450312.post-4606147657243397355</id><published>2009-10-27T23:18:00.000-07:00</published><updated>2009-10-28T00:49:45.484-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Weapons Modding'/><title type='text'>Custom Weapon in UnReal: Part 1</title><content type='html'>This tutorial is slightly tougher than Custom Characters as it involves hacking into scripts and compiling it (some pretty scary stuff for artists). So you've decided you want to mod a weapon. This tute is will only show you how to change the "skin" of the weapon and to have some customised animations. If you are looking for a very customised weapon with very specific projectile behaviour and weapon damage, this could be a starting point but definately not comprehensive enough.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/SufjOMPnN7I/AAAAAAAAAYI/-3T0o_-LyvI/s1600-h/1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 349px; height: 400px;" src="http://1.bp.blogspot.com/_rRYV73e310o/SufjOMPnN7I/AAAAAAAAAYI/-3T0o_-LyvI/s400/1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397532511371212722" /&gt;&lt;/a&gt;First, decide what weapon you want to replace its skin with. Here, I chose the RocketLauncher because that's the weapon that comes with the IronGuard mesh.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/SufjiMet7jI/AAAAAAAAAYQ/EKeRvMNx-0A/s1600-h/2_1P.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 399px;" src="http://3.bp.blogspot.com/_rRYV73e310o/SufjiMet7jI/AAAAAAAAAYQ/EKeRvMNx-0A/s400/2_1P.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397532855031950898" /&gt;&lt;/a&gt;Note that there is a first person(1P) and a third person(3P) version of the guns; the 3P version being lower in poly count.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/Sufj6IlB_GI/AAAAAAAAAYY/v79SDCJn74c/s1600-h/3_1P.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 361px;" src="http://3.bp.blogspot.com/_rRYV73e310o/Sufj6IlB_GI/AAAAAAAAAYY/v79SDCJn74c/s400/3_1P.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397533266301549666" /&gt;&lt;/a&gt;Go into UnReal Editor and open up the package that contains the gun you wish to mod. Examine it right down to the Socket Manager (observe how many sockets and the name(s)) as well as the way the weapon parts are linked.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/SufkaO-_bQI/AAAAAAAAAYg/e4CbLyrdxFE/s1600-h/4_3P.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 391px;" src="http://1.bp.blogspot.com/_rRYV73e310o/SufkaO-_bQI/AAAAAAAAAYg/e4CbLyrdxFE/s400/4_3P.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397533817776860418" /&gt;&lt;/a&gt;To keep things simple, I will be using just the 3P version to be implemented in the 1P and 3P weapons. Notice the MuzzleFlashSocket is only one in this case.&lt;br /&gt;&lt;br /&gt;Go to &lt;a href="http://udn.epicgames.com/Files/UT3/Mods/UT3ScriptSource_1.5.rar"&gt;UDN UT3ModHome&lt;/a&gt; to download the script source files.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/SuflHsRGiYI/AAAAAAAAAYo/SH2f8WO_B1M/s1600-h/5.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 294px; height: 400px;" src="http://2.bp.blogspot.com/_rRYV73e310o/SuflHsRGiYI/AAAAAAAAAYo/SH2f8WO_B1M/s400/5.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397534598731565442" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Sufls8iJ4lI/AAAAAAAAAYw/_3tJFH2jM2w/s1600-h/6.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 235px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Sufls8iJ4lI/AAAAAAAAAYw/_3tJFH2jM2w/s400/6.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397535238753215058" /&gt;&lt;/a&gt;The scripts required are these ones. Copy these files and place them into your UTGame/Src/NameOfYourWeapon/Classes. Rename the files to your WeaponName. Here, I copied and changed it to SmileyGun.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/SufmjoH8J2I/AAAAAAAAAY4/CxfJALoo2ZQ/s1600-h/7.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 373px;" src="http://4.bp.blogspot.com/_rRYV73e310o/SufmjoH8J2I/AAAAAAAAAY4/CxfJALoo2ZQ/s400/7.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397536178167359330" /&gt;&lt;/a&gt;In your Config directory, look for the UTEditor.ini and add a modpackage called NameofYourGun. Note that this corresponds with the UTGame/Src/SmileyGun directory that you created.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/SufnSxXD-jI/AAAAAAAAAZA/sZi98KF0nII/s1600-h/8.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 311px;" src="http://4.bp.blogspot.com/_rRYV73e310o/SufnSxXD-jI/AAAAAAAAAZA/sZi98KF0nII/s400/8.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397536988100557362" /&gt;&lt;/a&gt;Open up your weapon in max. Note the green "pyramids". Those will act as your bones once you skin the weapon. YES. You need to skin the weapon like you skin the character but eveything's rigid in this case. I will do another tutorial on how to skin the gun if anyone is interested. Please request for it if so.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/Sufn8mCU_6I/AAAAAAAAAZI/4RSyZQHwI5w/s1600-h/9_01.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 233px;" src="http://4.bp.blogspot.com/_rRYV73e310o/Sufn8mCU_6I/AAAAAAAAAZI/4RSyZQHwI5w/s400/9_01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397537706615308194" /&gt;&lt;/a&gt;The selected "pyramid" is the root bone of the weapon. When I exported it, it wasn't spinning centrally so my guess was to...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/SufpOsz3WHI/AAAAAAAAAZQ/mWuiLSRYcuY/s1600-h/9_02.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 233px;" src="http://3.bp.blogspot.com/_rRYV73e310o/SufpOsz3WHI/AAAAAAAAAZQ/mWuiLSRYcuY/s400/9_02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397539117182965874" /&gt;&lt;/a&gt;Move the gun away from the grid center before exporting in ActorX. Not sure it that did the trick coz I'm writing this tute based on memory as I screencaptured these pics quite awhile ago.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/Sufpo-gqfBI/AAAAAAAAAZY/xtAhMQgfVBU/s1600-h/10.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 367px;" src="http://3.bp.blogspot.com/_rRYV73e310o/Sufpo-gqfBI/AAAAAAAAAZY/xtAhMQgfVBU/s400/10.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397539568610868242" /&gt;&lt;/a&gt;Do a series of animations and export it out in ActorX.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/SufqKY7kSLI/AAAAAAAAAZg/pbnpw5PT5aI/s1600-h/11.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 290px;" src="http://3.bp.blogspot.com/_rRYV73e310o/SufqKY7kSLI/AAAAAAAAAZg/pbnpw5PT5aI/s400/11.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397540142638713010" /&gt;&lt;/a&gt;Refer to this text file to see if you can make any sense out of what I wrote.&lt;br /&gt;&lt;br /&gt;In &lt;a href="http://hyperunreal.blogspot.com/2009/10/custom-weapon-in-unreal-part-2.html"&gt;Part 2&lt;/a&gt;, we will examine how weapons are configured within UnReal Editor.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6694566809194450312-4606147657243397355?l=hyperunreal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hyperunreal.blogspot.com/feeds/4606147657243397355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hyperunreal.blogspot.com/2009/10/custom-weapon-in-unreal-part-1.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/4606147657243397355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/4606147657243397355'/><link rel='alternate' type='text/html' href='http://hyperunreal.blogspot.com/2009/10/custom-weapon-in-unreal-part-1.html' title='Custom Weapon in UnReal: Part 1'/><author><name>Kevin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_rRYV73e310o/SufjOMPnN7I/AAAAAAAAAYI/-3T0o_-LyvI/s72-c/1.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6694566809194450312.post-227952272872856759</id><published>2009-10-27T20:41:00.001-07:00</published><updated>2009-10-27T20:49:23.923-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Machinima'/><category scheme='http://www.blogger.com/atom/ns#' term='FaceFX'/><title type='text'>FaceFX in UnReal: Part 3</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Sue9iPlAmnI/AAAAAAAAAXQ/afw7pomq9G4/s1600-h/38.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 370px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Sue9iPlAmnI/AAAAAAAAAXQ/afw7pomq9G4/s400/38.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397491074421791346" /&gt;&lt;/a&gt;&lt;br /&gt;Create a simple level, add Marcus static mesh, camera and lights.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/Sue95gIzPzI/AAAAAAAAAXg/eJK3H6y5eE0/s1600-h/39.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 306px; height: 400px;" src="http://3.bp.blogspot.com/_rRYV73e310o/Sue95gIzPzI/AAAAAAAAAXg/eJK3H6y5eE0/s400/39.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397491474003869490" /&gt;&lt;/a&gt;&lt;br /&gt;Create a Matinee for Marcus and add a FaceFX track.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/Sue9ytB5g1I/AAAAAAAAAXY/uXr2cGSvglE/s1600-h/40.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 290px;" src="http://1.bp.blogspot.com/_rRYV73e310o/Sue9ytB5g1I/AAAAAAAAAXY/uXr2cGSvglE/s400/40.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397491357205496658" /&gt;&lt;/a&gt;&lt;br /&gt;Assign the AnimSet to this FaceFX track.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/Sue-QeUeurI/AAAAAAAAAXo/BGiEaAhFfkY/s1600-h/41.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 390px; height: 400px;" src="http://1.bp.blogspot.com/_rRYV73e310o/Sue-QeUeurI/AAAAAAAAAXo/BGiEaAhFfkY/s400/41.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397491868652976818" /&gt;&lt;/a&gt;&lt;br /&gt;When you click on keyframe, you can now add the Animset to the track.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/Sue-hCGtb_I/AAAAAAAAAXw/LFkyVBg_iag/s1600-h/42.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 319px;" src="http://3.bp.blogspot.com/_rRYV73e310o/Sue-hCGtb_I/AAAAAAAAAXw/LFkyVBg_iag/s400/42.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397492153136803826" /&gt;&lt;/a&gt;&lt;br /&gt;Add your Camera(s) and DirGroup etc.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Sue-yRJbTUI/AAAAAAAAAX4/MYxo1rId-Ys/s1600-h/43.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 380px; height: 351px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Sue-yRJbTUI/AAAAAAAAAX4/MYxo1rId-Ys/s400/43.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397492449232506178" /&gt;&lt;/a&gt;&lt;br /&gt;Your Kismet should look something like this (just in case you are having trouble figuring it out).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/Sue_CVG8wNI/AAAAAAAAAYA/PBu3qHyBfus/s1600-h/44.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 314px;" src="http://3.bp.blogspot.com/_rRYV73e310o/Sue_CVG8wNI/AAAAAAAAAYA/PBu3qHyBfus/s400/44.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397492725173764306" /&gt;&lt;/a&gt;&lt;br /&gt;Done! One floating Marcus head talking in realtime... Freaky....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6694566809194450312-227952272872856759?l=hyperunreal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hyperunreal.blogspot.com/feeds/227952272872856759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hyperunreal.blogspot.com/2009/10/facefx-in-unreal-part-3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/227952272872856759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/227952272872856759'/><link rel='alternate' type='text/html' href='http://hyperunreal.blogspot.com/2009/10/facefx-in-unreal-part-3.html' title='FaceFX in UnReal: Part 3'/><author><name>Kevin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_rRYV73e310o/Sue9iPlAmnI/AAAAAAAAAXQ/afw7pomq9G4/s72-c/38.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6694566809194450312.post-5091963024877232525</id><published>2009-10-27T19:49:00.000-07:00</published><updated>2009-10-27T20:52:59.250-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Machinima'/><category scheme='http://www.blogger.com/atom/ns#' term='FaceFX'/><title type='text'>FaceFX in UnReal: Part 2</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/SuexfNHMuoI/AAAAAAAAAUI/XfHE5urCL3c/s1600-h/12.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 275px;" src="http://2.bp.blogspot.com/_rRYV73e310o/SuexfNHMuoI/AAAAAAAAAUI/XfHE5urCL3c/s400/12.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397477828080745090" /&gt;&lt;/a&gt;&lt;br /&gt;Open up UnReal Editor and import the sound and Marcus static mesh you exported in Max earlier. You should have a 16bit wav sound file ready for this exercise. Turn on bAutoCreateCue. You need a SoundCue file to work with FaceFX Studio.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/SueyIuDj4RI/AAAAAAAAAUQ/SZ-FswD8daQ/s1600-h/14.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 234px;" src="http://3.bp.blogspot.com/_rRYV73e310o/SueyIuDj4RI/AAAAAAAAAUQ/SZ-FswD8daQ/s400/14.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397478541298491666" /&gt;&lt;/a&gt;&lt;br /&gt;Select on the Marcus static mesh, right click and Create New FaceFX Asset.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/SueyafFJoxI/AAAAAAAAAUY/JifLyZ4DgUo/s1600-h/15.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 319px;" src="http://4.bp.blogspot.com/_rRYV73e310o/SueyafFJoxI/AAAAAAAAAUY/JifLyZ4DgUo/s400/15.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397478846516273938" /&gt;&lt;/a&gt;&lt;br /&gt;Import your .fxa file into this FaceFX Asset.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/Sueyr1W7LXI/AAAAAAAAAUg/lSHPzAwSEGE/s1600-h/16.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 216px;" src="http://4.bp.blogspot.com/_rRYV73e310o/Sueyr1W7LXI/AAAAAAAAAUg/lSHPzAwSEGE/s400/16.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397479144554179954" /&gt;&lt;/a&gt;&lt;br /&gt;You are now ready to work with FaceFX Studio.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/Suey_iItXAI/AAAAAAAAAUo/Wn0ZE9xfjBk/s1600-h/17.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 353px; height: 400px;" src="http://1.bp.blogspot.com/_rRYV73e310o/Suey_iItXAI/AAAAAAAAAUo/Wn0ZE9xfjBk/s400/17.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397479482991664130" /&gt;&lt;/a&gt;&lt;br /&gt;Go into Animation Manager and...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/SuezRMhXP_I/AAAAAAAAAUw/uRdEs2wfYQ4/s1600-h/18.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 390px;" src="http://1.bp.blogspot.com/_rRYV73e310o/SuezRMhXP_I/AAAAAAAAAUw/uRdEs2wfYQ4/s400/18.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397479786427138034" /&gt;&lt;/a&gt;&lt;br /&gt;Create Animation... just be sure to...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/SuezgOkuIDI/AAAAAAAAAU4/2xRBqza5GZw/s1600-h/19.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 240px;" src="http://4.bp.blogspot.com/_rRYV73e310o/SuezgOkuIDI/AAAAAAAAAU4/2xRBqza5GZw/s400/19.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397480044676128818" /&gt;&lt;/a&gt;&lt;br /&gt;Select your SoundCue before proceeding in the Animation Manager.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/Sueztsu7XVI/AAAAAAAAAVA/B2wCTZanSRc/s1600-h/20.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 299px;" src="http://3.bp.blogspot.com/_rRYV73e310o/Sueztsu7XVI/AAAAAAAAAVA/B2wCTZanSRc/s400/20.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397480276110302546" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/Sue0M8GKjPI/AAAAAAAAAVQ/wrSIAIB1N6I/s1600-h/21.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 299px;" src="http://3.bp.blogspot.com/_rRYV73e310o/Sue0M8GKjPI/AAAAAAAAAVQ/wrSIAIB1N6I/s400/21.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397480812810243314" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/Sue0AoihKRI/AAAAAAAAAVI/Bsai1epv3nM/s1600-h/22.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 299px;" src="http://1.bp.blogspot.com/_rRYV73e310o/Sue0AoihKRI/AAAAAAAAAVI/Bsai1epv3nM/s400/22.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397480601402026258" /&gt;&lt;/a&gt;&lt;br /&gt;Click Next for the next few screens. My SoundCue says "Hello Baby" so this is what I typed in...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/Sue0ktdQokI/AAAAAAAAAVY/AxQMxoKn6Ew/s1600-h/23.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 392px;" src="http://4.bp.blogspot.com/_rRYV73e310o/Sue0ktdQokI/AAAAAAAAAVY/AxQMxoKn6Ew/s400/23.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397481221197439554" /&gt;&lt;/a&gt;&lt;br /&gt;Select the animation you created and go to Curve Manager.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Sue0ygP2VcI/AAAAAAAAAVg/LNsiHaF7jrc/s1600-h/24.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 312px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Sue0ygP2VcI/AAAAAAAAAVg/LNsiHaF7jrc/s400/24.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397481458169697730" /&gt;&lt;/a&gt;&lt;br /&gt;On the left are the suggested facial expressions you may need. On the right are the custom facial expressions I exported from Max.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Sue1OwrBoxI/AAAAAAAAAVo/OtkjzP_opQs/s1600-h/25.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 333px; height: 400px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Sue1OwrBoxI/AAAAAAAAAVo/OtkjzP_opQs/s400/25.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397481943614989074" /&gt;&lt;/a&gt;&lt;br /&gt;I will only be needing one curve, in this case, I chose "Blink". So remove the other curves as you won't be requiring it.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/Sue1jfTSuiI/AAAAAAAAAVw/XdIxQA4MxIk/s1600-h/26.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 287px;" src="http://1.bp.blogspot.com/_rRYV73e310o/Sue1jfTSuiI/AAAAAAAAAVw/XdIxQA4MxIk/s400/26.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397482299729295906" /&gt;&lt;/a&gt;&lt;br /&gt;Move your custom curves from the right, over to the left.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/Sue11Y9y0qI/AAAAAAAAAV4/wpINt51i5zY/s1600-h/27.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 225px; height: 400px;" src="http://1.bp.blogspot.com/_rRYV73e310o/Sue11Y9y0qI/AAAAAAAAAV4/wpINt51i5zY/s400/27.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397482607266157218" /&gt;&lt;/a&gt;&lt;br /&gt;You should get something like this.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/Sue2EDgOhKI/AAAAAAAAAWA/dq7LbDfnFa8/s1600-h/28.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 387px; height: 400px;" src="http://4.bp.blogspot.com/_rRYV73e310o/Sue2EDgOhKI/AAAAAAAAAWA/dq7LbDfnFa8/s400/28.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397482859203036322" /&gt;&lt;/a&gt;&lt;br /&gt;Click on the Animation Tab. Notice the blue bottom are where I defined "Hello Baby" earlier. Scrub through it and arrange your phonemes where you think they ought to be.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Sue3B40N2pI/AAAAAAAAAWI/FpkLnrRnqt0/s1600-h/29.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 376px; height: 400px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Sue3B40N2pI/AAAAAAAAAWI/FpkLnrRnqt0/s400/29.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397483921485978258" /&gt;&lt;/a&gt;&lt;br /&gt;Click on "Blink" and notice it has a curve. If you click on the other custom phonemes and attempt to create curves on it, you can't (or at least I don't know how). If you click on say "H", copy and the click on the upper right (grey) curve area and paste, NOTHING HAPPENS. I was stumped for awhile here. Maybe it's a bug, who knows? Here's how I went around this...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/Sue4V3PM_uI/AAAAAAAAAWQ/Iq7T2ADe9Ws/s1600-h/30.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 382px;" src="http://1.bp.blogspot.com/_rRYV73e310o/Sue4V3PM_uI/AAAAAAAAAWQ/Iq7T2ADe9Ws/s400/30.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397485364171308770" /&gt;&lt;/a&gt;&lt;br /&gt;Rightclick on "Blink". Go to Curve Properties and uncheck "Owned by Analysis". &lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/Sue5DRS64JI/AAAAAAAAAWY/UC0hQHHftq4/s1600-h/31.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 358px;" src="http://1.bp.blogspot.com/_rRYV73e310o/Sue5DRS64JI/AAAAAAAAAWY/UC0hQHHftq4/s400/31.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397486144260333714" /&gt;&lt;/a&gt;&lt;br /&gt;Notice the icon of "Blink" changes and your curves are selectable now.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/Sue5TyA8xqI/AAAAAAAAAWg/iEfi5UDMSmc/s1600-h/32.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 376px; height: 400px;" src="http://1.bp.blogspot.com/_rRYV73e310o/Sue5TyA8xqI/AAAAAAAAAWg/iEfi5UDMSmc/s400/32.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397486427921237666" /&gt;&lt;/a&gt;&lt;br /&gt;Marquee select the Blink curve and Ctrl+C (Copy). Then switch over to "H" channel, click on the curve area and Ctrl+P (Paste). You will have an instant curve but this time, if you Preview the animation, Marcus will have a "H" mouth shape at that timeframe. Shift the curve, adjust according to your needs.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/Sue6MFcK_uI/AAAAAAAAAWo/w1SMdS7eWOQ/s1600-h/33.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 376px; height: 400px;" src="http://4.bp.blogspot.com/_rRYV73e310o/Sue6MFcK_uI/AAAAAAAAAWo/w1SMdS7eWOQ/s400/33.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397487395208363746" /&gt;&lt;/a&gt;&lt;br /&gt;Keep doing this until your character is talking according to speech.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Sue6dYGDpSI/AAAAAAAAAWw/47O0jOMxDV0/s1600-h/34.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 377px; height: 400px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Sue6dYGDpSI/AAAAAAAAAWw/47O0jOMxDV0/s400/34.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397487692273657122" /&gt;&lt;/a&gt;&lt;br /&gt;In order to use this in Matinee, you need a FaceFX Animset.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/Sue6sLEdwaI/AAAAAAAAAW4/gSUprb0wNN0/s1600-h/35.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 349px;" src="http://3.bp.blogspot.com/_rRYV73e310o/Sue6sLEdwaI/AAAAAAAAAW4/gSUprb0wNN0/s400/35.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397487946475356578" /&gt;&lt;/a&gt;&lt;br /&gt;With the Animset done, access FaceFX Studio once more.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/Sue7AWTMxHI/AAAAAAAAAXA/yTsbPyAOmfQ/s1600-h/36.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 391px;" src="http://3.bp.blogspot.com/_rRYV73e310o/Sue7AWTMxHI/AAAAAAAAAXA/yTsbPyAOmfQ/s400/36.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397488293087331442" /&gt;&lt;/a&gt;&lt;br /&gt;Go to your Animation Manager and move your animation to the Animset.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/Sue7S7pq1hI/AAAAAAAAAXI/46ugFXPlI9o/s1600-h/37.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 343px;" src="http://3.bp.blogspot.com/_rRYV73e310o/Sue7S7pq1hI/AAAAAAAAAXI/46ugFXPlI9o/s400/37.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397488612351333906" /&gt;&lt;/a&gt;&lt;br /&gt;Notice your Animset is no longer empty.&lt;br /&gt;&lt;br /&gt;Phew! The hardest part is finally over! In &lt;a href="http://hyperunreal.blogspot.com/2009/10/facefx-in-unreal-part-3.html"&gt;Part 3&lt;/a&gt;, we will put everything into Matinee and that's where the real fun begins!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6694566809194450312-5091963024877232525?l=hyperunreal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hyperunreal.blogspot.com/feeds/5091963024877232525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hyperunreal.blogspot.com/2009/10/facefx-in-unreal-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/5091963024877232525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/5091963024877232525'/><link rel='alternate' type='text/html' href='http://hyperunreal.blogspot.com/2009/10/facefx-in-unreal-part-2.html' title='FaceFX in UnReal: Part 2'/><author><name>Kevin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_rRYV73e310o/SuexfNHMuoI/AAAAAAAAAUI/XfHE5urCL3c/s72-c/12.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6694566809194450312.post-4347866818042151765</id><published>2009-10-27T01:54:00.000-07:00</published><updated>2009-10-27T20:51:40.424-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Machinima'/><category scheme='http://www.blogger.com/atom/ns#' term='FaceFX'/><title type='text'>FaceFX in UnReal: Part 1</title><content type='html'>FaceFX is a facial animation software and it is natively supported inside UnReal Editor. If you have a need to do Machinima and your characters need to talk or show some animated expressions, then you need FaceFX. In the absense of any documentation or decent tutorial on how to do this, it was a real nightmare for me to figure out how to pull it all together. I want to thank Dave Tyner (from http://www.treadster.com) for patiently helping me out on this one. A big shoutout to you!&lt;br /&gt;&lt;br /&gt;OK. On with the tutorial. As usual, I will just keep it as brief and as simple as possible so readers are not bogged down by details. You can work on the details once you have figured out how to get this thing working.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Sua3b3TGrRI/AAAAAAAAASw/H5ikaGHFhNI/s1600-h/1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 350px; height: 400px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Sua3b3TGrRI/AAAAAAAAASw/H5ikaGHFhNI/s400/1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397202892778548498" /&gt;&lt;/a&gt;&lt;br /&gt;You need the FaceFX plugin for 3DSMax in order to export FaceFX animations. If you have patched your Unreal, just do a .dlu search.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/Sua37ZTbfeI/AAAAAAAAAS4/qti6sBgRMTc/s1600-h/2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 80px;" src="http://1.bp.blogspot.com/_rRYV73e310o/Sua37ZTbfeI/AAAAAAAAAS4/qti6sBgRMTc/s400/2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397203434482662882" /&gt;&lt;/a&gt;&lt;br /&gt;Choose the version that matches your 3DSMax (version 9 worked with Max2008) and put it into the plugins directory and run Max.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Sua4TgWT2NI/AAAAAAAAATA/EXUaQhUyHDg/s1600-h/3.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 230px; height: 400px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Sua4TgWT2NI/AAAAAAAAATA/EXUaQhUyHDg/s400/3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397203848690653394" /&gt;&lt;/a&gt;&lt;br /&gt;You can then access FaceFX plugin under Utilities.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Sua5kHMlRoI/AAAAAAAAATI/Kchh6n77hv8/s1600-h/4.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 339px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Sua5kHMlRoI/AAAAAAAAATI/Kchh6n77hv8/s400/4.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397205233508370050" /&gt;&lt;/a&gt;&lt;br /&gt;Next you will need the &lt;a href="http://udn.epicgames.com/Three/rsrc/Three/GearsMods/Gears_Marcus.max"&gt;Gear_Marcus.max&lt;/a&gt; character, downloadable from UDN. Observe how they rigged the face. You can apply the same rig to your custome character that you want talking.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/Sua6Hcq_yfI/AAAAAAAAATQ/5EAD5-xWtDo/s1600-h/5.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 389px; height: 400px;" src="http://1.bp.blogspot.com/_rRYV73e310o/Sua6Hcq_yfI/AAAAAAAAATQ/5EAD5-xWtDo/s400/5.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397205840568502770" /&gt;&lt;/a&gt;&lt;br /&gt;First, the easy bit. Using ActorX, export Marcus's head.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/Sua6XZKOKWI/AAAAAAAAATY/FGm4ViReAgM/s1600-h/6.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 253px;" src="http://4.bp.blogspot.com/_rRYV73e310o/Sua6XZKOKWI/AAAAAAAAATY/FGm4ViReAgM/s400/6.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397206114503633250" /&gt;&lt;/a&gt;&lt;br /&gt;Then, with FaceFX opened, Create Actor.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/Sua6vISGByI/AAAAAAAAATg/x9fsWA1FA8M/s1600-h/7.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 299px; height: 400px;" src="http://3.bp.blogspot.com/_rRYV73e310o/Sua6vISGByI/AAAAAAAAATg/x9fsWA1FA8M/s400/7.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397206522290112290" /&gt;&lt;/a&gt;&lt;br /&gt;Select all the bones you want to export and Export them under Reference Bones.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Sua7XCaJ9kI/AAAAAAAAATw/dWjgijEXUIA/s1600-h/8.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 293px; height: 400px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Sua7XCaJ9kI/AAAAAAAAATw/dWjgijEXUIA/s400/8.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397207207908079170" /&gt;&lt;/a&gt;&lt;br /&gt;It should look like this.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/Sua7AzMBqbI/AAAAAAAAATo/tc-UAzC-oJU/s1600-h/9.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 331px; height: 400px;" src="http://1.bp.blogspot.com/_rRYV73e310o/Sua7AzMBqbI/AAAAAAAAATo/tc-UAzC-oJU/s400/9.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397206825865161138" /&gt;&lt;/a&gt;&lt;br /&gt;Scroll down to Bone Poses. The Marcus character comes with some nice animations so you can scrub through and find the facial poses that you like. Export a set of poses.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/Sua8EIFGq-I/AAAAAAAAAT4/_wVU67w3cIE/s1600-h/10.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 380px;" src="http://3.bp.blogspot.com/_rRYV73e310o/Sua8EIFGq-I/AAAAAAAAAT4/_wVU67w3cIE/s400/10.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397207982524509154" /&gt;&lt;/a&gt;&lt;br /&gt;These are the Phonemes I need for my custom animation.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/Sua8QRopnyI/AAAAAAAAAUA/Qg4_AtMxyhg/s1600-h/11.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 348px;" src="http://3.bp.blogspot.com/_rRYV73e310o/Sua8QRopnyI/AAAAAAAAAUA/Qg4_AtMxyhg/s400/11.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397208191247949602" /&gt;&lt;/a&gt;&lt;br /&gt;Save it to create a .fxa file.&lt;br /&gt;&lt;br /&gt;That's it for Part 1. In &lt;a href="http://hyperunreal.blogspot.com/2009/10/facefx-in-unreal-part-2.html"&gt;Part 2&lt;/a&gt;, we will work with UnReal Editor to get things cooking!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6694566809194450312-4347866818042151765?l=hyperunreal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hyperunreal.blogspot.com/feeds/4347866818042151765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hyperunreal.blogspot.com/2009/10/facefx-in-unreal-part-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/4347866818042151765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/4347866818042151765'/><link rel='alternate' type='text/html' href='http://hyperunreal.blogspot.com/2009/10/facefx-in-unreal-part-1.html' title='FaceFX in UnReal: Part 1'/><author><name>Kevin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_rRYV73e310o/Sua3b3TGrRI/AAAAAAAAASw/H5ikaGHFhNI/s72-c/1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6694566809194450312.post-2387316568520760791</id><published>2009-09-18T21:29:00.001-07:00</published><updated>2011-06-22T17:47:40.002-07:00</updated><title type='text'>Custom Character in Unreal: Part 2</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/SrRWQ8SFiXI/AAAAAAAAAQ4/6e428QLFnL8/s1600-h/11.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 233px;" src="http://3.bp.blogspot.com/_rRYV73e310o/SrRWQ8SFiXI/AAAAAAAAAQ4/6e428QLFnL8/s400/11.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5383022303674468722" /&gt;&lt;/a&gt;&lt;br /&gt;You will need to make a special material for the Custom Character called MaterialInstanceConstant. This is required for team faction colours and other multimplayer modes. Just right click on the grey area like in the picture.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/SrRWrILwYOI/AAAAAAAAARA/zh3UsmmYPPM/s1600-h/12.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 326px;" src="http://3.bp.blogspot.com/_rRYV73e310o/SrRWrILwYOI/AAAAAAAAARA/zh3UsmmYPPM/s400/12.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5383022753545740514" /&gt;&lt;/a&gt;&lt;br /&gt;Go to the CH_All package and select the IronGuard Base Material.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/SrRXRjuOaiI/AAAAAAAAARI/J2-pPwCkzTk/s1600-h/13.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 336px;" src="http://3.bp.blogspot.com/_rRYV73e310o/SrRXRjuOaiI/AAAAAAAAARI/J2-pPwCkzTk/s400/13.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5383023413773101602" /&gt;&lt;/a&gt;&lt;br /&gt;Apply it to your MIC Material under FontParameterValues-&gt;Parent.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/SrRXrxiI4qI/AAAAAAAAARQ/r0zFKoC4KWM/s1600-h/14.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 311px;" src="http://2.bp.blogspot.com/_rRYV73e310o/SrRXrxiI4qI/AAAAAAAAARQ/r0zFKoC4KWM/s400/14.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5383023864157102754" /&gt;&lt;/a&gt;&lt;br /&gt;Apply the relevant textures to the relevant slots.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/SrRX1Rm7YXI/AAAAAAAAARY/i4poSnOZjCU/s1600-h/15.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 286px; height: 400px;" src="http://3.bp.blogspot.com/_rRYV73e310o/SrRX1Rm7YXI/AAAAAAAAARY/i4poSnOZjCU/s400/15.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5383024027385946482" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/SrRYPWnL9vI/AAAAAAAAARg/HZ4i4K-MJWI/s1600-h/15.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 286px; height: 400px;" src="http://3.bp.blogspot.com/_rRYV73e310o/SrRYPWnL9vI/AAAAAAAAARg/HZ4i4K-MJWI/s400/15.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5383024475405809394" /&gt;&lt;/a&gt;&lt;br /&gt;Next, all the meshes have to be realigned so that the Z Origin is -51 and the RotationOrigin's Yaw is -90. You need to do that or else the character will not be aligned properly. Why is it misaligned in the first place, ask Epic.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/SrRY-x2IhVI/AAAAAAAAARo/PeSNrLD8GsU/s1600-h/16.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 298px; height: 400px;" src="http://2.bp.blogspot.com/_rRYV73e310o/SrRY-x2IhVI/AAAAAAAAARo/PeSNrLD8GsU/s400/16.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5383025290170107218" /&gt;&lt;/a&gt;&lt;br /&gt;Assign the proper materials to the meshes.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/SrRZKlqTPSI/AAAAAAAAARw/teWQht8x-C8/s1600-h/17.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 260px;" src="http://4.bp.blogspot.com/_rRYV73e310o/SrRZKlqTPSI/AAAAAAAAARw/teWQht8x-C8/s400/17.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5383025493057682722" /&gt;&lt;/a&gt;&lt;br /&gt;Assign sockets to the arms so Unreal knows where to place the weapons. &lt;br /&gt;&lt;strong&gt;b_LeftWeapon&lt;/strong&gt; -&gt; DualWeaponPoint&lt;br /&gt;&lt;strong&gt;b_RightWeapon&lt;/strong&gt; -&gt;WeaponPoint&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/SrRZy7NInDI/AAAAAAAAAR4/eAnsmv9WpOM/s1600-h/18.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 395px; height: 400px;" src="http://2.bp.blogspot.com/_rRYV73e310o/SrRZy7NInDI/AAAAAAAAAR4/eAnsmv9WpOM/s400/18.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5383026186035698738" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/SrRaYstU0gI/AAAAAAAAASA/QIcN1H1K5Os/s1600-h/19.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 356px; height: 400px;" src="http://1.bp.blogspot.com/_rRYV73e310o/SrRaYstU0gI/AAAAAAAAASA/QIcN1H1K5Os/s400/19.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5383026834979213826" /&gt;&lt;/a&gt;&lt;br /&gt;When you run Unreal, the UTCustomChar.ini file will have added your custom char data to it. If somehow things screw up, delete the new entries in this file, hack the files in your Published/CookedPC/CustomChars directory and try again.&lt;br /&gt;&lt;br /&gt;The next series of pictures show you how to access the custom charater. If everything was done right, you should be getting these results.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/SrRbX_ndUTI/AAAAAAAAASI/vLLgVdSBfvE/s1600-h/20.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_rRYV73e310o/SrRbX_ndUTI/AAAAAAAAASI/vLLgVdSBfvE/s400/20.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5383027922386637106" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/SrRbYbky2lI/AAAAAAAAASQ/mw2LWRUOTRU/s1600-h/21.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_rRYV73e310o/SrRbYbky2lI/AAAAAAAAASQ/mw2LWRUOTRU/s400/21.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5383027929891658322" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/SrRbYyCkVNI/AAAAAAAAASY/o7bYt7W7S3c/s1600-h/22.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_rRYV73e310o/SrRbYyCkVNI/AAAAAAAAASY/o7bYt7W7S3c/s400/22.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5383027935922115794" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/SrRbZaCkc8I/AAAAAAAAASg/I97MIfWPZ8M/s1600-h/23.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_rRYV73e310o/SrRbZaCkc8I/AAAAAAAAASg/I97MIfWPZ8M/s400/23.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5383027946659541954" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/SrRbZtyxPvI/AAAAAAAAASo/Z7XP8rV1Dpg/s1600-h/24.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_rRYV73e310o/SrRbZtyxPvI/AAAAAAAAASo/Z7XP8rV1Dpg/s400/24.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5383027951961980658" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The character is intentionally pink/maroon and different so I know it was successfully working and not using the standard Unreal IronGuard&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;NOTE: If your character does not appear in the game (and the game did not crash), there are two possibilities: Unreal cannot find the package (some issues with your naming and directory structure) OR your character can be found, just that it's wayyyyy off coordinates. Reset the pivot points to (0,0,0) and that should fix it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6694566809194450312-2387316568520760791?l=hyperunreal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hyperunreal.blogspot.com/feeds/2387316568520760791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hyperunreal.blogspot.com/2009/09/custom-character-in-unreal-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/2387316568520760791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/2387316568520760791'/><link rel='alternate' type='text/html' href='http://hyperunreal.blogspot.com/2009/09/custom-character-in-unreal-part-2.html' title='Custom Character in Unreal: Part 2'/><author><name>Kevin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_rRYV73e310o/SrRWQ8SFiXI/AAAAAAAAAQ4/6e428QLFnL8/s72-c/11.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6694566809194450312.post-2176521267552443541</id><published>2009-09-18T21:28:00.001-07:00</published><updated>2011-06-22T17:46:50.723-07:00</updated><title type='text'>Custom Character in Unreal: Part 1</title><content type='html'>If you want to create your own character and select in in Unreal and play with that character, then this next quick tutorial will show you how. I will just use the IronGuard character with some modified textures so everyone can do this tutorial fairly quick and dirty without begin bogged down with small details like modeling, rigging, UVW Mapping. Once you know how to export and import into Unreal and set it up, you can concentrate on the small details thereafter.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/SrRNYqIWaeI/AAAAAAAAAPg/ncDraOdHc-w/s1600-h/1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 314px; height: 400px;" src="http://3.bp.blogspot.com/_rRYV73e310o/SrRNYqIWaeI/AAAAAAAAAPg/ncDraOdHc-w/s400/1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5383012540636096994" /&gt;&lt;/a&gt;&lt;br /&gt;First, notice the IronGuard character is built in parts. This is to facilitate swappable body parts within Unreal. Export the individual parts in PSK files. You should have:&lt;br /&gt;&lt;br /&gt;YourCharacter_Head&lt;br /&gt;YourCharacter_FaceMask (Optional)&lt;br /&gt;YourCharacter_Torso&lt;br /&gt;YourCharacter_Thighs&lt;br /&gt;YourCharacter_Boots&lt;br /&gt;YourCharacter_Arms&lt;br /&gt;YourCharacter_Helmet (Optional)&lt;br /&gt;YourCharacter_LShoPad01 (Optional)&lt;br /&gt;YourCharacter_RShoPad01 (Optional)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/SrRPz4si2JI/AAAAAAAAAPo/JBdCLYswsow/s1600-h/2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 366px;" src="http://4.bp.blogspot.com/_rRYV73e310o/SrRPz4si2JI/AAAAAAAAAPo/JBdCLYswsow/s400/2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5383015207425726610" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;In your Generic Browser, Import all these PSK Files.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/SrRQOPzVW_I/AAAAAAAAAPw/EnGPCIa1tTo/s1600-h/3_a.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 298px;" src="http://4.bp.blogspot.com/_rRYV73e310o/SrRQOPzVW_I/AAAAAAAAAPw/EnGPCIa1tTo/s400/3_a.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5383015660304817138" /&gt;&lt;/a&gt;&lt;br /&gt;Next, Import all the textures for the character as well as the mugshot (512x512 image).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/SrRQnTTAhVI/AAAAAAAAAP4/KQ1oGhKZQT0/s1600-h/3_b.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 340px; height: 400px;" src="http://4.bp.blogspot.com/_rRYV73e310o/SrRQnTTAhVI/AAAAAAAAAP4/KQ1oGhKZQT0/s400/3_b.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5383016090739705170" /&gt;&lt;/a&gt;&lt;br /&gt;Remember the name of your package and the group these textures are allocated to. Here, my package is named KevinPackage and the group (subdirectory) where the texture files are located are under "Textures". Depending on the texture, under LODGroup, make sure it is the correct "type" of texture eg:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/SrRRPAMOWWI/AAAAAAAAAQA/Pk_ZBOqF2DE/s1600-h/4.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 321px; height: 400px;" src="http://1.bp.blogspot.com/_rRYV73e310o/SrRRPAMOWWI/AAAAAAAAAQA/Pk_ZBOqF2DE/s400/4.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5383016772805744994" /&gt;&lt;/a&gt;&lt;br /&gt;The mugshot is a UI Texturegroup.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/SrRRfdkbkeI/AAAAAAAAAQI/vSOINrMS8qQ/s1600-h/5.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 352px; height: 400px;" src="http://3.bp.blogspot.com/_rRYV73e310o/SrRRfdkbkeI/AAAAAAAAAQI/vSOINrMS8qQ/s400/5.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5383017055569809890" /&gt;&lt;/a&gt;&lt;br /&gt;A Normal Map for a Character obviously goes to the TextureGroup_CharacterNormalMap.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/SrRR6qr19ZI/AAAAAAAAAQQ/pWT60JQzjB0/s1600-h/6.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 378px;" src="http://2.bp.blogspot.com/_rRYV73e310o/SrRR6qr19ZI/AAAAAAAAAQQ/pWT60JQzjB0/s400/6.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5383017522947028370" /&gt;&lt;/a&gt;&lt;br /&gt;You can see that the Textures are located in the Textures Group of the KevinPackage package.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/SrRSfyfQNPI/AAAAAAAAAQY/uwed25F_eZw/s1600-h/7.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 379px; height: 400px;" src="http://2.bp.blogspot.com/_rRYV73e310o/SrRSfyfQNPI/AAAAAAAAAQY/uwed25F_eZw/s400/7.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5383018160696866034" /&gt;&lt;/a&gt;&lt;br /&gt;In order for Unreal to run your custom package, it has to be saved in the UTGame/Published/CookedPC/CustomChars directory. Make the directory if it does not exist.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/SrRS9TqrDlI/AAAAAAAAAQg/joxVfV3mjHs/s1600-h/8.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 232px;" src="http://3.bp.blogspot.com/_rRYV73e310o/SrRS9TqrDlI/AAAAAAAAAQg/joxVfV3mjHs/s400/8.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5383018667819339346" /&gt;&lt;/a&gt;&lt;br /&gt;Make a directory within the CustomChars directory, in my case, SmileyBoy, and you should have two files in there: UTCustomChar.ini and YourCharName.int file.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/SrRT9adbmhI/AAAAAAAAAQo/dPEU6B5SM7I/s1600-h/9_Maybe+use+text.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 92px;" src="http://3.bp.blogspot.com/_rRYV73e310o/SrRT9adbmhI/AAAAAAAAAQo/dPEU6B5SM7I/s400/9_Maybe+use+text.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5383019769154476562" /&gt;&lt;/a&gt;&lt;br /&gt;Notice the .ini file has a "+" sign. This will "add" custom code to your main UTCustomChar.ini located in the UTGame/Config directory. Do not hack that file directly. Just in case anything screws up, you can then hack the main UTCustomChar.ini and remove the offending code. Remember to save the file after that.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/SrRU6eKekbI/AAAAAAAAAQw/t91OBQvLXZ0/s1600-h/10.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 197px;" src="http://2.bp.blogspot.com/_rRYV73e310o/SrRU6eKekbI/AAAAAAAAAQw/t91OBQvLXZ0/s400/10.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5383020818120741298" /&gt;&lt;/a&gt;&lt;br /&gt;Just to give you a visual explaination what the lines of code mean. If your character uses another character template, obviously it cannot be "IRNM" (IronGuard Male).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://hyperunreal.blogspot.com/2009/09/custom-character-in-unreal-part-1.html"&gt;To be continued in Part 2&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6694566809194450312-2176521267552443541?l=hyperunreal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hyperunreal.blogspot.com/feeds/2176521267552443541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hyperunreal.blogspot.com/2009/09/custom-character-in-unreal-part-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/2176521267552443541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/2176521267552443541'/><link rel='alternate' type='text/html' href='http://hyperunreal.blogspot.com/2009/09/custom-character-in-unreal-part-1.html' title='Custom Character in Unreal: Part 1'/><author><name>Kevin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_rRYV73e310o/SrRNYqIWaeI/AAAAAAAAAPg/ncDraOdHc-w/s72-c/1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6694566809194450312.post-4963880310476776797</id><published>2009-05-11T23:52:00.000-07:00</published><updated>2009-05-12T00:28:06.898-07:00</updated><title type='text'>Realtime Particles</title><content type='html'>Jason Busby's video tutorials that comes with the Unreal Tournament 3 Collector's Edition does a pretty good job explaining about realtime particles in Unreal Editor. So, I won't really be going into this area except to highlight some important pointers (via screencapture) just as a reminder about the kinds of parameters one should roughly have to make the particles work nicely.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/SgkiXn6cqcI/AAAAAAAAAN0/Yk4q4lqsJ2w/s1600-h/01.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 378px;" src="http://2.bp.blogspot.com/_rRYV73e310o/SgkiXn6cqcI/AAAAAAAAAN0/Yk4q4lqsJ2w/s400/01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5334833022843529666" /&gt;&lt;/a&gt;Start by right-clicking on the Generic Browser and create New ParticleSystem.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/Sgkisn3_skI/AAAAAAAAAN8/X2IK7SO9y_I/s1600-h/02.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://1.bp.blogspot.com/_rRYV73e310o/Sgkisn3_skI/AAAAAAAAAN8/X2IK7SO9y_I/s400/02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5334833383610495554" /&gt;&lt;/a&gt;This will be the package you will be saving it to.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Sgki64xXm3I/AAAAAAAAAOE/oyr2hYRq9SI/s1600-h/03.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 333px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Sgki64xXm3I/AAAAAAAAAOE/oyr2hYRq9SI/s400/03.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5334833628664273778" /&gt;&lt;/a&gt;Next, Unreal Editor will open up Cascade, the realtime particle editor within Unreal.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/SgkjH5i4NtI/AAAAAAAAAOM/qJNyQUMDKJM/s1600-h/04.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 298px;" src="http://3.bp.blogspot.com/_rRYV73e310o/SgkjH5i4NtI/AAAAAAAAAOM/qJNyQUMDKJM/s400/04.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5334833852210230994" /&gt;&lt;/a&gt;Upon creating New ParticleSpriteEmitter, you are presented with a very basic particle effect with 3 basic functions. Right-click to add more and more features to it as per requirement. Remember, only add stuff that makes a difference to the look/behaviour of the particle. Any small and unnoticeable effects should be avoided to keep things light and processor-friendly.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/Sgkj5f602SI/AAAAAAAAAOU/-9Rl2uVpi8M/s1600-h/05.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 216px;" src="http://1.bp.blogspot.com/_rRYV73e310o/Sgkj5f602SI/AAAAAAAAAOU/-9Rl2uVpi8M/s400/05.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5334834704324811042" /&gt;&lt;/a&gt;If you open up Envy_Effects.upk from the Effects folder, you will find many ready-to-use neat effects.&lt;br /&gt; &lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/SgkkYnpvBUI/AAAAAAAAAOc/_zSJ--Cg5PI/s1600-h/06.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 400px;" src="http://1.bp.blogspot.com/_rRYV73e310o/SgkkYnpvBUI/AAAAAAAAAOc/_zSJ--Cg5PI/s400/06.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5334835238976554306" /&gt;&lt;/a&gt;The final list of attributes for a sparks effects should have roughly these in the stack.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/SgkkuJ_fKGI/AAAAAAAAAOk/QPF8J9SRvck/s1600-h/07.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 314px;" src="http://3.bp.blogspot.com/_rRYV73e310o/SgkkuJ_fKGI/AAAAAAAAAOk/QPF8J9SRvck/s400/07.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5334835608971847778" /&gt;&lt;/a&gt;Some effects like collision may not show up in the Cascade preview so check if it is working in-game.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6694566809194450312-4963880310476776797?l=hyperunreal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hyperunreal.blogspot.com/feeds/4963880310476776797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hyperunreal.blogspot.com/2009/05/realtime-particles.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/4963880310476776797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/4963880310476776797'/><link rel='alternate' type='text/html' href='http://hyperunreal.blogspot.com/2009/05/realtime-particles.html' title='Realtime Particles'/><author><name>Kevin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_rRYV73e310o/SgkiXn6cqcI/AAAAAAAAAN0/Yk4q4lqsJ2w/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6694566809194450312.post-377941110412772983</id><published>2009-05-07T08:41:00.000-07:00</published><updated>2009-05-07T08:45:46.561-07:00</updated><title type='text'>Making a SkyDome</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/SgMBmxTB3gI/AAAAAAAAANc/_SsEEui1fTw/s1600-h/01.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 290px;" src="http://2.bp.blogspot.com/_rRYV73e310o/SgMBmxTB3gI/AAAAAAAAANc/_SsEEui1fTw/s400/01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5333108149316607490" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/SgMBr0bRgvI/AAAAAAAAANk/GVQhzA-FmdM/s1600-h/02.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 303px;" src="http://2.bp.blogspot.com/_rRYV73e310o/SgMBr0bRgvI/AAAAAAAAANk/GVQhzA-FmdM/s400/02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5333108236055839474" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Making a skydome couldn't be easier. Just make a half sphere and add a sky texture to it! You can examine the skydome in Unreal. Remember to "cup" the dome so there are no "leaks" in the level.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/SgMBvy6YDpI/AAAAAAAAANs/bLCwF_FJmUM/s1600-h/03.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 314px;" src="http://1.bp.blogspot.com/_rRYV73e310o/SgMBvy6YDpI/AAAAAAAAANs/bLCwF_FJmUM/s400/03.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5333108304368897682" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6694566809194450312-377941110412772983?l=hyperunreal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hyperunreal.blogspot.com/feeds/377941110412772983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hyperunreal.blogspot.com/2009/05/making-skydome.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/377941110412772983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/377941110412772983'/><link rel='alternate' type='text/html' href='http://hyperunreal.blogspot.com/2009/05/making-skydome.html' title='Making a SkyDome'/><author><name>Kevin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_rRYV73e310o/SgMBmxTB3gI/AAAAAAAAANc/_SsEEui1fTw/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6694566809194450312.post-4615972026899479293</id><published>2009-05-07T08:32:00.001-07:00</published><updated>2009-05-07T08:41:42.466-07:00</updated><title type='text'>Skybox vs SkyDome</title><content type='html'>You may have come across some games using either of these to simulate a sky or some even use both (as in Unreal). So which one to use and when?&lt;br /&gt;&lt;br /&gt;Back in the early days of 3D computer games, polygons were expensive and every face took up precious processing power. Hence, a skybox was the best way to go then. However, there are problems with skyboxes.&lt;br /&gt;&lt;br /&gt;1. They look "boxy" if textures are not done properly&lt;br /&gt;2. The perspective looks screwed up (hey, it's a box okay!)&lt;br /&gt;3. Totally unsuitable for games with flying vehicles/creatures as the higher you fly, the more obvious the sky looks fake.&lt;br /&gt;&lt;br /&gt;Nowadays, computing power is way better and a skydome hardly makes a dent on processing power. It has significantly more faces but the advantages are:&lt;br /&gt;&lt;br /&gt;1. Everything the skybox screwed up on&lt;br /&gt;&lt;br /&gt;So, that means sky boxes are useless now right? Not true. Skyboxes still are useful. Remember, every resource we squeeze performance out of, frees more resources to add to other things... better AI, bigger textures, more animation, etc.&lt;br /&gt;&lt;br /&gt;So in conclusion, you will probably use a skybox if say, you are in a limited viewing area (eg. in an enclosed building but can see the sky through windows) or you are outdoors but are blocked by fences.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6694566809194450312-4615972026899479293?l=hyperunreal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hyperunreal.blogspot.com/feeds/4615972026899479293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hyperunreal.blogspot.com/2009/05/skybox-vs-skydome.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/4615972026899479293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/4615972026899479293'/><link rel='alternate' type='text/html' href='http://hyperunreal.blogspot.com/2009/05/skybox-vs-skydome.html' title='Skybox vs SkyDome'/><author><name>Kevin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6694566809194450312.post-3181375612710118650</id><published>2009-05-07T08:00:00.000-07:00</published><updated>2009-05-07T08:27:51.323-07:00</updated><title type='text'>Making Swimmable Water</title><content type='html'>Making water that you can sink into and swim in is easy enough. First, you need to have an area designated for water to be in.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/SgL4CFokaSI/AAAAAAAAALc/HRpu7IvkTtc/s1600-h/01.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 276px;" src="http://1.bp.blogspot.com/_rRYV73e310o/SgL4CFokaSI/AAAAAAAAALc/HRpu7IvkTtc/s400/01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5333097623515851042" /&gt;&lt;/a&gt;&lt;br /&gt;In my example, I simply hold down the Ctrl key and depress a hole in my terrain.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/SgL4aqQ_kzI/AAAAAAAAALk/PdlKEQrP-PY/s1600-h/02.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 291px;" src="http://2.bp.blogspot.com/_rRYV73e310o/SgL4aqQ_kzI/AAAAAAAAALk/PdlKEQrP-PY/s400/02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5333098045665940274" /&gt;&lt;/a&gt;&lt;br /&gt;In the Generic Browser, I open up UN_SimpleMeshes.upk and choose a simple plane as the water surface.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/SgL411Hnz4I/AAAAAAAAALs/2oeYPQwC13o/s1600-h/03.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 240px;" src="http://3.bp.blogspot.com/_rRYV73e310o/SgL411Hnz4I/AAAAAAAAALs/2oeYPQwC13o/s400/03.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5333098512435892098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/SgL5A3W0U1I/AAAAAAAAAL0/T4o__ezOImY/s1600-h/04.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 320px;" src="http://4.bp.blogspot.com/_rRYV73e310o/SgL5A3W0U1I/AAAAAAAAAL0/T4o__ezOImY/s400/04.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5333098702015058770" /&gt;&lt;/a&gt;&lt;br /&gt;Rotate, Scale and Move the plane to the correct place.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/SgL5aw4RnqI/AAAAAAAAAL8/OheprGfhFeQ/s1600-h/05.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 276px;" src="http://1.bp.blogspot.com/_rRYV73e310o/SgL5aw4RnqI/AAAAAAAAAL8/OheprGfhFeQ/s400/05.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5333099146952941218" /&gt;&lt;/a&gt;&lt;br /&gt;Choose or create your own liquid material. Here I simply chose one that was way too reflective but never mind... it's just for illustration purposes.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/SgL53UYA8MI/AAAAAAAAAME/R9_wvx331lA/s1600-h/05_02.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 197px; height: 400px;" src="http://2.bp.blogspot.com/_rRYV73e310o/SgL53UYA8MI/AAAAAAAAAME/R9_wvx331lA/s400/05_02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5333099637517643970" /&gt;&lt;/a&gt;&lt;br /&gt;Access the properties of the StaticMesh water and turn off Collision so your character can sink into the water and also, there is no need for all that fancy lighting setups in water so disable them.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/SgL61zRQLVI/AAAAAAAAAMM/yac9WQ0lr38/s1600-h/06.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 330px;" src="http://4.bp.blogspot.com/_rRYV73e310o/SgL61zRQLVI/AAAAAAAAAMM/yac9WQ0lr38/s400/06.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5333100710962670930" /&gt;&lt;/a&gt;&lt;br /&gt;With your red builder brush, create an area that will become the water volume. Place it right underneath the water plane. Right click on the Volume icon and choose UTWaterVolume.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/SgL7MrH4iCI/AAAAAAAAAMU/voZ6Zjr1bZo/s1600-h/07.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 391px; height: 287px;" src="http://3.bp.blogspot.com/_rRYV73e310o/SgL7MrH4iCI/AAAAAAAAAMU/voZ6Zjr1bZo/s400/07.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5333101103912880162" /&gt;&lt;/a&gt;&lt;br /&gt;If you move away the red builder brush, you will find a light purple brush in its place. That's the UTWaterVolume. You can basically swim in the water already.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/SgL7cLPO4NI/AAAAAAAAAMc/UQqWeXuMjZY/s1600-h/08.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 314px;" src="http://3.bp.blogspot.com/_rRYV73e310o/SgL7cLPO4NI/AAAAAAAAAMc/UQqWeXuMjZY/s400/08.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5333101370231677138" /&gt;&lt;/a&gt;&lt;br /&gt;So go ahead and try it!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/SgL7x7r104I/AAAAAAAAAMk/TxWnzhPMKlE/s1600-h/09.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 314px;" src="http://1.bp.blogspot.com/_rRYV73e310o/SgL7x7r104I/AAAAAAAAAMk/TxWnzhPMKlE/s400/09.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5333101744013824898" /&gt;&lt;/a&gt;&lt;br /&gt;Once inside the water, you notice a problem... it feels like there is no water as the water has no colour tint, depth-of-field, or any other water distortion effects.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/SgL8PYe5j5I/AAAAAAAAAMs/Lmkcg5suiGM/s1600-h/10.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 328px; height: 152px;" src="http://3.bp.blogspot.com/_rRYV73e310o/SgL8PYe5j5I/AAAAAAAAAMs/Lmkcg5suiGM/s400/10.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5333102249960378258" /&gt;&lt;/a&gt;&lt;br /&gt;So make a bigger red builder brush. The difference between the water volume and the bigger red builder brush's volume, will solve the problems I mentioned earlier.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/SgL8h6CbVJI/AAAAAAAAAM0/vrruSsRFxrM/s1600-h/10_01.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 340px;" src="http://3.bp.blogspot.com/_rRYV73e310o/SgL8h6CbVJI/AAAAAAAAAM0/vrruSsRFxrM/s400/10_01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5333102568205407378" /&gt;&lt;/a&gt;&lt;br /&gt;Once again, right-click on the Volume icon and this time, choose PostProcessVolume.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/SgL8uWrbZDI/AAAAAAAAAM8/1VuZp6I1XmE/s1600-h/10_02.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 355px; height: 208px;" src="http://1.bp.blogspot.com/_rRYV73e310o/SgL8uWrbZDI/AAAAAAAAAM8/1VuZp6I1XmE/s400/10_02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5333102782052000818" /&gt;&lt;/a&gt;&lt;br /&gt;You will notice two different purple volumes.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/SgL8_w0ZkII/AAAAAAAAANE/vHpmbteaVA8/s1600-h/10_03.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 316px; height: 400px;" src="http://1.bp.blogspot.com/_rRYV73e310o/SgL8_w0ZkII/AAAAAAAAANE/vHpmbteaVA8/s400/10_03.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5333103081126727810" /&gt;&lt;/a&gt;&lt;br /&gt;Access the properties of the second volume and you should be able to change it's colour tint and other features.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/SgL9YWfqfkI/AAAAAAAAANM/8WksmZJ5XNQ/s1600-h/12.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 314px;" src="http://4.bp.blogspot.com/_rRYV73e310o/SgL9YWfqfkI/AAAAAAAAANM/8WksmZJ5XNQ/s400/12.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5333103503557164610" /&gt;&lt;/a&gt;&lt;br /&gt;Here I accidentally created a sepia water! Chinese tea anyone?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/SgL93pN5ewI/AAAAAAAAANU/yUNTvWZKywg/s1600-h/Choosing_a_better_water.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 314px;" src="http://4.bp.blogspot.com/_rRYV73e310o/SgL93pN5ewI/AAAAAAAAANU/yUNTvWZKywg/s400/Choosing_a_better_water.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5333104041158867714" /&gt;&lt;/a&gt;&lt;br /&gt;Done! You have swimmable water! Of course, choosing a better water material can give you better results. Study the water materials, some of them have nice transition effects so it looks more natural as in this one here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6694566809194450312-3181375612710118650?l=hyperunreal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hyperunreal.blogspot.com/feeds/3181375612710118650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hyperunreal.blogspot.com/2009/05/making-swimmable-water.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/3181375612710118650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/3181375612710118650'/><link rel='alternate' type='text/html' href='http://hyperunreal.blogspot.com/2009/05/making-swimmable-water.html' title='Making Swimmable Water'/><author><name>Kevin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_rRYV73e310o/SgL4CFokaSI/AAAAAAAAALc/HRpu7IvkTtc/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6694566809194450312.post-8667063128928320427</id><published>2009-05-04T08:00:00.000-07:00</published><updated>2009-05-04T20:41:52.741-07:00</updated><title type='text'>Making a Terrain</title><content type='html'>Terrains in Unreal Editor can be made in two ways. One is via realtime mesh editing and the other is via heightmaps (or both). This tutorial will only cover the first option.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Sf-ulK5Y6jI/AAAAAAAAAJk/5izcLFt6CTE/s1600-h/01.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 356px; height: 331px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Sf-ulK5Y6jI/AAAAAAAAAJk/5izcLFt6CTE/s400/01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5332172437433412146" /&gt;&lt;/a&gt;&lt;br /&gt;Start by carving out a really, really big level to put you terrain in.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/Sf-uts04SCI/AAAAAAAAAJs/oD9ximqvnPw/s1600-h/02.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 371px; height: 400px;" src="http://4.bp.blogspot.com/_rRYV73e310o/Sf-uts04SCI/AAAAAAAAAJs/oD9ximqvnPw/s400/02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5332172583980255266" /&gt;&lt;/a&gt;&lt;br /&gt;In your Generic Browser, go to the Actor Classes tab and choose Info-&gt;Terrain&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Sf-uzqzKUzI/AAAAAAAAAJ0/AX6w6NArADM/s1600-h/03.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 279px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Sf-uzqzKUzI/AAAAAAAAAJ0/AX6w6NArADM/s400/03.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5332172686515393330" /&gt;&lt;/a&gt;&lt;br /&gt;You should be getting this green terrain icon.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Sf-vU21ZngI/AAAAAAAAAJ8/vz7JtKnPasE/s1600-h/04.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 265px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Sf-vU21ZngI/AAAAAAAAAJ8/vz7JtKnPasE/s400/04.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5332173256681692674" /&gt;&lt;/a&gt;&lt;br /&gt;I was stumped for a whole day on why I couldn't see the terrain mesh. Googling for an answer yielded no results. Then I tried hitting "G" for game mode on the editor. Presto! It showed in Game Mode.&lt;br /&gt;&lt;br /&gt;Before assigning materials to your terrain, always remember to SAVE YOUR LEVEL FIRST.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/Sf-wFA8tG2I/AAAAAAAAAKE/e1wqDx9MMRI/s1600-h/04_01.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 381px; height: 268px;" src="http://3.bp.blogspot.com/_rRYV73e310o/Sf-wFA8tG2I/AAAAAAAAAKE/e1wqDx9MMRI/s400/04_01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5332174084030405474" /&gt;&lt;/a&gt;&lt;br /&gt;Next, click on the Terrain Editing Mode and it should open up the Unreal TerrainEdit dialog box.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/Sf-wzKu1tnI/AAAAAAAAAKM/63xgXt29y1I/s1600-h/05.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 284px;" src="http://3.bp.blogspot.com/_rRYV73e310o/Sf-wzKu1tnI/AAAAAAAAAKM/63xgXt29y1I/s400/05.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5332174876930586226" /&gt;&lt;/a&gt;&lt;br /&gt;Open up and existing material to assign to your terrain (or create one from scratch). Right-click and assign "New Terrain Setup Layer from material(auto-create)".&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/Sf-xE1TKI3I/AAAAAAAAAKU/QdcS4n-WmB4/s1600-h/06.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 400px;" src="http://3.bp.blogspot.com/_rRYV73e310o/Sf-xE1TKI3I/AAAAAAAAAKU/QdcS4n-WmB4/s400/06.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5332175180414985074" /&gt;&lt;/a&gt;&lt;br /&gt;The first entry is to define the Terrain Material.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/Sf-xQpLzXgI/AAAAAAAAAKc/BMbCdzn6sGc/s1600-h/07.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 400px;" src="http://3.bp.blogspot.com/_rRYV73e310o/Sf-xQpLzXgI/AAAAAAAAAKc/BMbCdzn6sGc/s400/07.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5332175383321337346" /&gt;&lt;/a&gt;&lt;br /&gt;The second entry is to define the Terrain Texture.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/Sf-xcd3V9xI/AAAAAAAAAKk/Z3g12QeH1HA/s1600-h/08.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 376px; height: 400px;" src="http://4.bp.blogspot.com/_rRYV73e310o/Sf-xcd3V9xI/AAAAAAAAAKk/Z3g12QeH1HA/s400/08.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5332175586441164562" /&gt;&lt;/a&gt;&lt;br /&gt;This is how it looks like.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/Sf-xrn2UGaI/AAAAAAAAAKs/XAwas23IATs/s1600-h/09.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 264px; height: 400px;" src="http://4.bp.blogspot.com/_rRYV73e310o/Sf-xrn2UGaI/AAAAAAAAAKs/XAwas23IATs/s400/09.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5332175846819240354" /&gt;&lt;/a&gt;&lt;br /&gt;Press F4 or double-click on the icon to access the Terrain Properties. Alter the numbers so you have a nice subdivision to work with. Also, bMorphingEnabled allows the level to have LOD and bMorphingGradientsEnabled allows Materials LOD (Please correct me if I am wrong).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/Sf-yLbyZ1sI/AAAAAAAAAK0/BBv_NRzv7Z8/s1600-h/10.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 276px;" src="http://4.bp.blogspot.com/_rRYV73e310o/Sf-yLbyZ1sI/AAAAAAAAAK0/BBv_NRzv7Z8/s400/10.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5332176393337427650" /&gt;&lt;/a&gt;&lt;br /&gt;Make sure you are in Paint Mode and the brush has some strength settings. Proceed to paint. You need to hold down the Ctrl key and left mouse to elevate, right mouse to depress the terrain.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Sf-yuUFHLnI/AAAAAAAAAK8/9vykI7bMe4Y/s1600-h/11.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 281px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Sf-yuUFHLnI/AAAAAAAAAK8/9vykI7bMe4Y/s400/11.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5332176992563834482" /&gt;&lt;/a&gt;&lt;br /&gt;To make your terrain more complex, we can add a second layer of materials. I chose a snow material to be more obvious.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Sf-zEnAufOI/AAAAAAAAALE/FFIbo7TUf7I/s1600-h/13.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 321px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Sf-zEnAufOI/AAAAAAAAALE/FFIbo7TUf7I/s400/13.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5332177375602834658" /&gt;&lt;/a&gt;&lt;br /&gt;Go ahead and paint the second layer.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Sf-zn2Ktv_I/AAAAAAAAALM/MHc03DQVcDI/s1600-h/14.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 183px; height: 400px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Sf-zn2Ktv_I/AAAAAAAAALM/MHc03DQVcDI/s400/14.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5332177980966682610" /&gt;&lt;/a&gt;&lt;br /&gt;Finally, add a light in the scene. Increase the visibility by increasing the Drawscale and Radius.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/Sf-0DI5BB1I/AAAAAAAAALU/lD76WD1NgQ4/s1600-h/15.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 314px;" src="http://3.bp.blogspot.com/_rRYV73e310o/Sf-0DI5BB1I/AAAAAAAAALU/lD76WD1NgQ4/s400/15.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5332178449849190226" /&gt;&lt;/a&gt;&lt;br /&gt;Don't forget to BuildAll. Test the level... Done!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6694566809194450312-8667063128928320427?l=hyperunreal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hyperunreal.blogspot.com/feeds/8667063128928320427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hyperunreal.blogspot.com/2009/05/making-terrain.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/8667063128928320427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/8667063128928320427'/><link rel='alternate' type='text/html' href='http://hyperunreal.blogspot.com/2009/05/making-terrain.html' title='Making a Terrain'/><author><name>Kevin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_rRYV73e310o/Sf-ulK5Y6jI/AAAAAAAAAJk/5izcLFt6CTE/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6694566809194450312.post-475706899605699982</id><published>2009-04-20T23:46:00.000-07:00</published><updated>2009-04-21T00:00:16.761-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Kismet'/><category scheme='http://www.blogger.com/atom/ns#' term='Animating Flashing Lights'/><category scheme='http://www.blogger.com/atom/ns#' term='Blinking Lights'/><title type='text'>Kismet: Blinking Lights</title><content type='html'>To create blinking lights, you will need PointLightsToggleable under the Generic Browser-&gt; Actor Classes&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Se1sLR3Br1I/AAAAAAAAAIM/tUbh3RvTTyQ/s1600-h/01.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 248px; height: 400px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Se1sLR3Br1I/AAAAAAAAAIM/tUbh3RvTTyQ/s400/01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327032875277725522" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;With the ToggleableLights selected, open up Kismet, right click and create a new Matinee sequence.&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Se1sf3onjKI/AAAAAAAAAIU/tje3UviQESs/s1600-h/02.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 390px; height: 364px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Se1sf3onjKI/AAAAAAAAAIU/tje3UviQESs/s400/02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327033229015223458" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Double click on Matinee in Kismet to open up the Matinee Keyframe dialogue box. Right click on the dark grey area and "Add New Empty Group". Give it a meaningful name like "Animated Lights" for example.&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/Se1s5nlm8dI/AAAAAAAAAIc/gx8wSXZSWgk/s1600-h/03.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 262px;" src="http://4.bp.blogspot.com/_rRYV73e310o/Se1s5nlm8dI/AAAAAAAAAIc/gx8wSXZSWgk/s400/03.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327033671384232402" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Click on the Animated_Lights track and right click to "Add New Float Property Track".&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/Se1tTPdMLfI/AAAAAAAAAIk/4lRYZgH1TI4/s1600-h/04.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 339px;" src="http://4.bp.blogspot.com/_rRYV73e310o/Se1tTPdMLfI/AAAAAAAAAIk/4lRYZgH1TI4/s400/04.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327034111583071730" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If your Toggleable Lights had been selected all along, you should be able to select Brightness for your PointLightComponent.&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/Se1tpHL9vFI/AAAAAAAAAIs/0gbLH-5TLFI/s1600-h/05.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 303px; height: 150px;" src="http://1.bp.blogspot.com/_rRYV73e310o/Se1tpHL9vFI/AAAAAAAAAIs/0gbLH-5TLFI/s400/05.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327034487320460370" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Add Key for your starting frame.&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Se1uCwRvexI/AAAAAAAAAI0/di13hgJ4Ml4/s1600-h/06.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 321px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Se1uCwRvexI/AAAAAAAAAI0/di13hgJ4Ml4/s400/06.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327034927847275282" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Scrub the black bar to the next keyframe and Add Key again. Right click on that red triangle and you should be able to Set Value (zero if you want no light intensity).&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/Se1ufGFTlQI/AAAAAAAAAI8/mImwBWHsGI4/s1600-h/07.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 379px; height: 400px;" src="http://3.bp.blogspot.com/_rRYV73e310o/Se1ufGFTlQI/AAAAAAAAAI8/mImwBWHsGI4/s400/07.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327035414737032450" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Repeat process till satisfied.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6694566809194450312-475706899605699982?l=hyperunreal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hyperunreal.blogspot.com/feeds/475706899605699982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hyperunreal.blogspot.com/2009/04/kismet-blinking-lights.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/475706899605699982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/475706899605699982'/><link rel='alternate' type='text/html' href='http://hyperunreal.blogspot.com/2009/04/kismet-blinking-lights.html' title='Kismet: Blinking Lights'/><author><name>Kevin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_rRYV73e310o/Se1sLR3Br1I/AAAAAAAAAIM/tUbh3RvTTyQ/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6694566809194450312.post-4663828476443127526</id><published>2009-04-20T23:23:00.000-07:00</published><updated>2009-04-21T00:01:53.598-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Kismet'/><category scheme='http://www.blogger.com/atom/ns#' term='InterpActor'/><category scheme='http://www.blogger.com/atom/ns#' term='Platform'/><category scheme='http://www.blogger.com/atom/ns#' term='Movers'/><category scheme='http://www.blogger.com/atom/ns#' term='Collision'/><category scheme='http://www.blogger.com/atom/ns#' term='Animation'/><title type='text'>Kismet: Movable Platforms</title><content type='html'>Because movable platforms are so common in Unreal, the editor has a shortcut to create them without the hassle of enabling Triggers and hooking things up in Kismet.&lt;br /&gt;&lt;br /&gt;Select a Static Mesh but add it as an InterpActor (very important)&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/Se1ngyVqNfI/AAAAAAAAAHU/xLOAPdN5HEE/s1600-h/01.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 386px;" src="http://1.bp.blogspot.com/_rRYV73e310o/Se1ngyVqNfI/AAAAAAAAAHU/xLOAPdN5HEE/s400/01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327027747215259122" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The InterpActor will be pitch black. If you cannot see the mesh, press "W" on the keyboard. Double click on the mesh to access its properties. Under DynamicSMActor-&gt;Light Environment -&gt; LightEnvironmentComponent, enable it.&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/Se1oRAetydI/AAAAAAAAAHc/HXMToXWoVbg/s1600-h/02.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 291px;" src="http://1.bp.blogspot.com/_rRYV73e310o/Se1oRAetydI/AAAAAAAAAHc/HXMToXWoVbg/s400/02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327028575645059538" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The result is from dark to visible:&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/Se1oaKqL2wI/AAAAAAAAAHk/p1YJSMW0UUI/s1600-h/03.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 165px;" src="http://3.bp.blogspot.com/_rRYV73e310o/Se1oaKqL2wI/AAAAAAAAAHk/p1YJSMW0UUI/s400/03.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327028732996344578" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Select the mesh, open up Kismet, right click on an empty area and select "New Event Using InterpActor" -&gt; "Mover"&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/Se1o-ZdUAiI/AAAAAAAAAHs/3bG3H7UMJMk/s1600-h/04.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 390px; height: 400px;" src="http://1.bp.blogspot.com/_rRYV73e310o/Se1o-ZdUAiI/AAAAAAAAAHs/3bG3H7UMJMk/s400/04.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327029355444175394" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Double click on Matinee, notice the tracks have been created for you. Add a key for the starting point and ending point.&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/Se1pnowO8lI/AAAAAAAAAH0/4-ENDoAhFzQ/s1600-h/06.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 336px;" src="http://4.bp.blogspot.com/_rRYV73e310o/Se1pnowO8lI/AAAAAAAAAH0/4-ENDoAhFzQ/s400/06.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327030063924703826" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Do the necessary movements.&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Se1pzJqG3OI/AAAAAAAAAH8/Fr4uxEA-KTM/s1600-h/07.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 208px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Se1pzJqG3OI/AAAAAAAAAH8/Fr4uxEA-KTM/s400/07.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327030261735939298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Run the level and you are able to trigger the platform to move. HOWEVER, there is one problem.... the platform does not detect collision with your character and you are not elevated with the platform (which is the whole point of elevators, right?). So double click on the InterpActor to access it properties. Go to Collision and choose COLLIDE_BlockAll. There! Instant elevators.&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/Se1q3AoPGMI/AAAAAAAAAIE/0XsdG9svlhM/s1600-h/05.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 366px;" src="http://3.bp.blogspot.com/_rRYV73e310o/Se1q3AoPGMI/AAAAAAAAAIE/0XsdG9svlhM/s400/05.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327031427543275714" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6694566809194450312-4663828476443127526?l=hyperunreal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hyperunreal.blogspot.com/feeds/4663828476443127526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hyperunreal.blogspot.com/2009/04/kismet-movable-platforms.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/4663828476443127526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/4663828476443127526'/><link rel='alternate' type='text/html' href='http://hyperunreal.blogspot.com/2009/04/kismet-movable-platforms.html' title='Kismet: Movable Platforms'/><author><name>Kevin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_rRYV73e310o/Se1ngyVqNfI/AAAAAAAAAHU/xLOAPdN5HEE/s72-c/01.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6694566809194450312.post-8183007652554311739</id><published>2009-04-20T22:30:00.000-07:00</published><updated>2009-04-21T00:03:42.340-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Matinee'/><category scheme='http://www.blogger.com/atom/ns#' term='Kismet'/><category scheme='http://www.blogger.com/atom/ns#' term='Add Key'/><title type='text'>Kismet: Animating with Matinee</title><content type='html'>This is a general way of animating using Matinee. Some functions like movable platforms, have shortcuts to get it working so this chapter can be skipped altogether. The reason for this chapter is because we may have specific needs to do certain animations, and thus knowing the steps to get things animated is important. Many things can be animated: Movement, Rotation, Colour, Intensity, Effects and even Sound.&lt;br /&gt;&lt;br /&gt;Select a Static Mesh, right click on the floor and either add InterpActor or Mover (as I understand it, they can be used interchangeably).&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Se1j1Ahy6aI/AAAAAAAAAGc/17IU0P6Q3HA/s1600-h/01.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 296px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Se1j1Ahy6aI/AAAAAAAAAGc/17IU0P6Q3HA/s400/01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327023696575130018" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;With the InterpActor/Mover still selected, open up Kismet and create a new Matinee.&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/Se1kJRROPfI/AAAAAAAAAGk/0RhKl6AjFBQ/s1600-h/02.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 297px;" src="http://3.bp.blogspot.com/_rRYV73e310o/Se1kJRROPfI/AAAAAAAAAGk/0RhKl6AjFBQ/s400/02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327024044666404338" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Double click on Matinee to get into keyframing mode for Matinee.&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/Se1kZ_KA6BI/AAAAAAAAAGs/GvwERU4hRRE/s1600-h/03.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 237px;" src="http://3.bp.blogspot.com/_rRYV73e310o/Se1kZ_KA6BI/AAAAAAAAAGs/GvwERU4hRRE/s400/03.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327024331862108178" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the dark grey area, right click and "Add New Empty Group". Give it a name like Test Anim.&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/Se1krRG3fYI/AAAAAAAAAG0/I1kA4zal3xw/s1600-h/04.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 305px;" src="http://4.bp.blogspot.com/_rRYV73e310o/Se1krRG3fYI/AAAAAAAAAG0/I1kA4zal3xw/s400/04.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327024628738522498" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Select the Test_Anim track and right click on it. A wide variety of animation choices becomes availalbe. If we want to animate movement, then select "Add New Movement Track".&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/Se1lGXfLYPI/AAAAAAAAAG8/ktz7C43vBZE/s1600-h/05.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 217px; height: 400px;" src="http://4.bp.blogspot.com/_rRYV73e310o/Se1lGXfLYPI/AAAAAAAAAG8/ktz7C43vBZE/s400/05.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327025094307569906" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You should end up with this:&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Se1lSras44I/AAAAAAAAAHE/oXgAE3i_sZ8/s1600-h/06.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 330px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Se1lSras44I/AAAAAAAAAHE/oXgAE3i_sZ8/s400/06.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327025305815933826" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;With the InterpActor at starting point (red arrow), click on the "Add Key" button (circled red) and it should add a keyframe at time zero (pointed by red arrow). Scrub the black bar to the next keyframe area (yellow arrow) and click on "Add Key" again. Move the InterpActor to it next destination.&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/Se1mLn1HveI/AAAAAAAAAHM/ZSFw38kOa9k/s1600-h/07.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 249px;" src="http://1.bp.blogspot.com/_rRYV73e310o/Se1mLn1HveI/AAAAAAAAAHM/ZSFw38kOa9k/s400/07.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327026284105547234" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Done! With this basic knowledge, you should be able to animate in Matinee with some logical thinking in place.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6694566809194450312-8183007652554311739?l=hyperunreal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hyperunreal.blogspot.com/feeds/8183007652554311739/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hyperunreal.blogspot.com/2009/04/kismet-animating-with-matinee.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/8183007652554311739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/8183007652554311739'/><link rel='alternate' type='text/html' href='http://hyperunreal.blogspot.com/2009/04/kismet-animating-with-matinee.html' title='Kismet: Animating with Matinee'/><author><name>Kevin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_rRYV73e310o/Se1j1Ahy6aI/AAAAAAAAAGc/17IU0P6Q3HA/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6694566809194450312.post-6217958315723841881</id><published>2009-04-20T20:22:00.000-07:00</published><updated>2009-04-21T00:04:15.976-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Kismet'/><category scheme='http://www.blogger.com/atom/ns#' term='Trigger'/><category scheme='http://www.blogger.com/atom/ns#' term='Toggleable Lights'/><title type='text'>Kismet: Enabling Triggers</title><content type='html'>A trigger is something that will set off another event. Creating it in Unreal is simple enough. First, create a simple level with a point light.&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/Se08fCif38I/AAAAAAAAAE8/-y69U56pwzw/s1600-h/01.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 273px;" src="http://3.bp.blogspot.com/_rRYV73e310o/Se08fCif38I/AAAAAAAAAE8/-y69U56pwzw/s400/01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5326980438204342210" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We want another light that can be on an off upon stepping on a trigger. Under Generic Browser, go to Actor Classes tab and expand your Light till you get PointLightToggleable.&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/Se09AcjfiKI/AAAAAAAAAFE/_ZvzbKoDvrE/s1600-h/02.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 209px; height: 400px;" src="http://4.bp.blogspot.com/_rRYV73e310o/Se09AcjfiKI/AAAAAAAAAFE/_ZvzbKoDvrE/s400/02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5326981012123519138" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Select the floor and right click to "Add PointLightToggleable Here"&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/Se09Tq-NZyI/AAAAAAAAAFM/9DmvMcKxvXQ/s1600-h/03.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 351px; height: 333px;" src="http://3.bp.blogspot.com/_rRYV73e310o/Se09Tq-NZyI/AAAAAAAAAFM/9DmvMcKxvXQ/s400/03.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5326981342411188002" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Change the lights to another colour (double click to access its properties) so we can differentiate between the PointLight and the PointLightToggleable.&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Se09oydfizI/AAAAAAAAAFU/0jfDRRk1uBQ/s1600-h/04.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 216px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Se09oydfizI/AAAAAAAAAFU/0jfDRRk1uBQ/s400/04.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5326981705198701362" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Add a Trigger by Right Clicking.&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Se1VwuQcMWI/AAAAAAAAAFc/cbx6zPe7hPY/s1600-h/05.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 288px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Se1VwuQcMWI/AAAAAAAAAFc/cbx6zPe7hPY/s400/05.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327008229788234082" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The Trigger looks like this and is invisible by default.&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/Se1V_kSzXzI/AAAAAAAAAFk/HWS5a2KFtdc/s1600-h/06.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 231px;" src="http://1.bp.blogspot.com/_rRYV73e310o/Se1V_kSzXzI/AAAAAAAAAFk/HWS5a2KFtdc/s400/06.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327008484811824946" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For testing purposes, we want to be able to see the Trigger icon. Double click on the Trigger icon to open up its properties. Disable Hidden.&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/Se1WSApACUI/AAAAAAAAAFs/UEBW8l6H15w/s1600-h/07.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 365px; height: 326px;" src="http://4.bp.blogspot.com/_rRYV73e310o/Se1WSApACUI/AAAAAAAAAFs/UEBW8l6H15w/s400/07.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327008801658767682" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Create a Trigger event in Kismet. 1. Select the Trigger, 2. Open up Kismet, 3. Right click on Kismet and choose New Event Using Trigger -&gt; Touch&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/Se1W-2YVV6I/AAAAAAAAAF0/Z8RnQEClgEo/s1600-h/08.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 254px; height: 400px;" src="http://4.bp.blogspot.com/_rRYV73e310o/Se1W-2YVV6I/AAAAAAAAAF0/Z8RnQEClgEo/s400/08.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327009571998619554" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You want this trigger to have a Toggle function, so right click on Kismet and add New Action -&gt; Toggle -&gt; Toggle&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/Se1XXFhXSSI/AAAAAAAAAF8/qlgDuPRSz20/s1600-h/09.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 370px; height: 400px;" src="http://3.bp.blogspot.com/_rRYV73e310o/Se1XXFhXSSI/AAAAAAAAAF8/qlgDuPRSz20/s400/09.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327009988379887906" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You want your Toggleable Light to be hooked up with the Trigger and Toggle functions. So, click on the Toggleable Light, right click on Kismet and add New Object Var Using PointLightToggleable_1.&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Se1YC743LjI/AAAAAAAAAGE/yE1NbOHd-HA/s1600-h/10.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 268px; height: 400px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Se1YC743LjI/AAAAAAAAAGE/yE1NbOHd-HA/s400/10.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327010741708336690" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Do the hooking up as per diagram. Remember to select Trigger Touch function (denoted by yellow) and under Max Trigger Count, change to 0 (This will make it infinitely toggleable).&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/Se1YnRsG0rI/AAAAAAAAAGM/YK9f8yhCHdY/s1600-h/11.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 385px; height: 400px;" src="http://3.bp.blogspot.com/_rRYV73e310o/Se1YnRsG0rI/AAAAAAAAAGM/YK9f8yhCHdY/s400/11.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327011366035706546" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Build All the level and you should be able to toggle the red lights on and off by walking into the Trigger.&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/Se1Y-liecVI/AAAAAAAAAGU/EywksIZvK6Y/s1600-h/12.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 314px;" src="http://4.bp.blogspot.com/_rRYV73e310o/Se1Y-liecVI/AAAAAAAAAGU/EywksIZvK6Y/s400/12.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327011766501011794" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6694566809194450312-6217958315723841881?l=hyperunreal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hyperunreal.blogspot.com/feeds/6217958315723841881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hyperunreal.blogspot.com/2009/04/kismet-enabling-triggers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/6217958315723841881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/6217958315723841881'/><link rel='alternate' type='text/html' href='http://hyperunreal.blogspot.com/2009/04/kismet-enabling-triggers.html' title='Kismet: Enabling Triggers'/><author><name>Kevin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_rRYV73e310o/Se08fCif38I/AAAAAAAAAE8/-y69U56pwzw/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6694566809194450312.post-9008445205837389230</id><published>2009-04-20T20:07:00.000-07:00</published><updated>2009-04-21T00:04:55.249-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Kismet'/><category scheme='http://www.blogger.com/atom/ns#' term='Animation'/><category scheme='http://www.blogger.com/atom/ns#' term='Introduction'/><title type='text'>Introduction to Kismet</title><content type='html'>Kismet is what I call a "Visual Scripting" software in a sense one can "program" a series of events by simply drag and dropping events in a flowchart. If something needs to be animated, it can be further articulated in Matinee.&lt;br /&gt;&lt;br /&gt;Kismet is activated by clicking on the funny "K" button.&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/Se06mPs5HjI/AAAAAAAAAEs/tYdj-2sBsDU/s1600-h/Kismet.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 327px;" src="http://1.bp.blogspot.com/_rRYV73e310o/Se06mPs5HjI/AAAAAAAAAEs/tYdj-2sBsDU/s400/Kismet.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5326978362973429298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What it cannot do&lt;/strong&gt;&lt;br /&gt;Kismet is good for modifying existing parameters that already exist in Unreal. However, once you wish to add functionality or parameters that do not exist in Unreal, you will have to turn to UnrealScripting to do that (which is out of my league for now). Examples would be to change the way the Camera works or Adding a new kind of weapon complete with totally different abilities from that found in Unreal.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Getting Started&lt;/strong&gt;&lt;br /&gt;I think the best way to learn Kismet is to create something in mind rather than learn what each and every function is about (which definately put me to sleep). So let's begin!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6694566809194450312-9008445205837389230?l=hyperunreal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hyperunreal.blogspot.com/feeds/9008445205837389230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hyperunreal.blogspot.com/2009/04/introduction-to-kismet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/9008445205837389230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/9008445205837389230'/><link rel='alternate' type='text/html' href='http://hyperunreal.blogspot.com/2009/04/introduction-to-kismet.html' title='Introduction to Kismet'/><author><name>Kevin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_rRYV73e310o/Se06mPs5HjI/AAAAAAAAAEs/tYdj-2sBsDU/s72-c/Kismet.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6694566809194450312.post-2621587827255024372</id><published>2009-04-06T07:50:00.000-07:00</published><updated>2009-09-18T21:39:00.614-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ActorX'/><category scheme='http://www.blogger.com/atom/ns#' term='UT3 Rigs'/><category scheme='http://www.blogger.com/atom/ns#' term='UT3 Modding'/><category scheme='http://www.blogger.com/atom/ns#' term='Character Modding'/><title type='text'>Setting up a Custom Character</title><content type='html'>This is one area that is not covered in Jason Buzzby's video tutorials. Surprising because I would think that many modders would be interested to mod not just a level but to create characters of their own and populate it in their Unreal levels. I will attempt to offer a very simple a straight-to-the-point guide as other online tutorials do a good job explaining things in detail.&lt;br /&gt;&lt;br /&gt;Note that you need to create your characters to match the proportions given in these templates. If you do not do so, then you either 1. have to make your own set of animations OR 2. using the ready animation sets, you will get weird distortions in your meshes.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Character Templates&lt;/strong&gt;&lt;br /&gt;There are 4 basic rigs/meshes to use:&lt;br /&gt;1. &lt;a href="http://udn.epicgames.com/Three/rsrc/Three/UT3CustomCharacters/UT3_Male.max"&gt;Human Male&lt;/a&gt;&lt;br /&gt;2. &lt;a href="http://udn.epicgames.com/Three/rsrc/Three/UT3CustomCharacters/UT3_Female.max"&gt;Human Female&lt;/a&gt;&lt;br /&gt;3. &lt;a href="http://udn.epicgames.com/Three/rsrc/Three/UT3CustomCharacters/UT3_Krall.max"&gt;Krall&lt;/a&gt;&lt;br /&gt;4. &lt;a href="http://udn.epicgames.com/Three/rsrc/Three/UT3CustomCharacters/UT3_Corrupt.max"&gt;Corrupt&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Opening up the Male, you get this IronGuard character.&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Sdoc6s2XHEI/AAAAAAAAABk/CI8JIgFwFIU/s1600-h/IronGuard01.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 244px; height: 400px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Sdoc6s2XHEI/AAAAAAAAABk/CI8JIgFwFIU/s400/IronGuard01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5321597704488819778" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Essential Body Parts&lt;/strong&gt;&lt;br /&gt;Typically, your character should also be in parts:&lt;br /&gt;Head&lt;br /&gt;Torso&lt;br /&gt;Shoulder Pads&lt;br /&gt;Arms&lt;br /&gt;Thighs&lt;br /&gt;Boots&lt;br /&gt;&lt;br /&gt;NOTE: All the parts do not have "holes". So fill up the gaps between the polygons.&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/Sdod_BWgNgI/AAAAAAAAABs/iB__ieqf0Lw/s1600-h/IronGuard_CSBodyParts.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 297px;" src="http://1.bp.blogspot.com/_rRYV73e310o/Sdod_BWgNgI/AAAAAAAAABs/iB__ieqf0Lw/s400/IronGuard_CSBodyParts.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5321598878223447554" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Note also, that Characer Studio is used for animation but the real rig is the one in yellow. Why? Coz Character Studio has some nice "auto balancing" features (and more) that makes the animation more natural. It is then "baked" into yellow rig.&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/SdoelKlJ0mI/AAAAAAAAAB0/QjeiDzRDiw4/s1600-h/IronGuardYellowRig.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 226px; height: 400px;" src="http://2.bp.blogspot.com/_rRYV73e310o/SdoelKlJ0mI/AAAAAAAAAB0/QjeiDzRDiw4/s400/IronGuardYellowRig.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5321599533535842914" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When you skin, skin to the yellow rig, not Character Studio's Biped.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Sdoe-0re2iI/AAAAAAAAAB8/LjhmimjdQDs/s1600-h/IronGuardLOD.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 297px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Sdoe-0re2iI/AAAAAAAAAB8/LjhmimjdQDs/s400/IronGuardLOD.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5321599974333405730" /&gt;&lt;/a&gt;&lt;br /&gt;You will also notice the IronGuard file comes with additional LOD (Level of Detail) meshes. You can do that if you are looking to optimize your game. Let's skip that for now.&lt;br /&gt;&lt;br /&gt;In case you do not see Character Studio's Biped, it means it is hidden. Just click on the grey thigh area, select Motion and enable/disable biped's viewability.&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/SdohL7iwKQI/AAAAAAAAACU/VG6xYHIoDAY/s1600-h/CStudio01.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 121px; height: 400px;" src="http://4.bp.blogspot.com/_rRYV73e310o/SdohL7iwKQI/AAAAAAAAACU/VG6xYHIoDAY/s400/CStudio01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5321602398537394434" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;UVW Allocations&lt;/strong&gt;&lt;br /&gt;All your characters need to be UVW Unwrapped and placed in the correct slots.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/SdogS0aeV7I/AAAAAAAAACM/tA4pQU7QU78/s1600-h/IronGuardUV02.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 399px; height: 400px;" src="http://2.bp.blogspot.com/_rRYV73e310o/SdogS0aeV7I/AAAAAAAAACM/tA4pQU7QU78/s400/IronGuardUV02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5321601417371080626" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/SdogOhzmxOI/AAAAAAAAACE/9rIEo_7TZTA/s1600-h/IronGuardUV01.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 399px; height: 400px;" src="http://1.bp.blogspot.com/_rRYV73e310o/SdogOhzmxOI/AAAAAAAAACE/9rIEo_7TZTA/s400/IronGuardUV01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5321601343656740066" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Exporting and Importing Mesh&lt;/strong&gt;&lt;br /&gt;You will need to install the &lt;a href="http://udn.epicgames.com/Three/ActorX.html"&gt;ActorX&lt;/a&gt; plugin to 3dsmax in order to export it to Unreal.&lt;br /&gt;&lt;br /&gt;You can access ActorX from the Utilities Tab.&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/SdojI4Tt3xI/AAAAAAAAACk/SJPeHNZ_sls/s1600-h/AccessingActorX.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 390px;" src="http://1.bp.blogspot.com/_rRYV73e310o/SdojI4Tt3xI/AAAAAAAAACk/SJPeHNZ_sls/s400/AccessingActorX.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5321604545152671506" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Make sure you do not get errors when exporting. These settings work for me.&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/Sdoiv1kAjdI/AAAAAAAAACc/Wbg8hC7qv4E/s1600-h/ActorX_Settings.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 69px; height: 400px;" src="http://4.bp.blogspot.com/_rRYV73e310o/Sdoiv1kAjdI/AAAAAAAAACc/Wbg8hC7qv4E/s400/ActorX_Settings.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5321604114918968786" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;First, export the skin file (PSK). Select the mesh components for export and click "Save Mesh/Refpose".&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/SdolgUeAh8I/AAAAAAAAACs/AF7In_kPJTc/s1600-h/PSK_Message.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 176px; height: 107px;" src="http://2.bp.blogspot.com/_rRYV73e310o/SdolgUeAh8I/AAAAAAAAACs/AF7In_kPJTc/s400/PSK_Message.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5321607146872276930" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In UT3 Editor, in the Generic Browser, Import the PSK.&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/Sdol9z3EUBI/AAAAAAAAAC0/Uq41Q3aV1Qg/s1600-h/ImportingMaleTest00.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 398px; height: 322px;" src="http://4.bp.blogspot.com/_rRYV73e310o/Sdol9z3EUBI/AAAAAAAAAC0/Uq41Q3aV1Qg/s400/ImportingMaleTest00.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5321607653515087890" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Then, create a package to store your custom character.&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/SdomZNmPFhI/AAAAAAAAAC8/1U2Z3KKsmvM/s1600-h/ImportingMaleTest01.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 400px;" src="http://4.bp.blogspot.com/_rRYV73e310o/SdomZNmPFhI/AAAAAAAAAC8/1U2Z3KKsmvM/s400/ImportingMaleTest01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5321608124280280594" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;From the Generic Browser, go to your package and double click on the MaleTest. You should be able to see the character.&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/SdomxhWXPyI/AAAAAAAAADE/-W7IRvotEbQ/s1600-h/ImportingMaleTest.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 370px; height: 400px;" src="http://2.bp.blogspot.com/_rRYV73e310o/SdomxhWXPyI/AAAAAAAAADE/-W7IRvotEbQ/s400/ImportingMaleTest.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5321608541899276066" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You should import the two UVW Maps Head/Mask areas and Body Parts areas. Create a Material to assign to your custom character. We skip this step as there are already some ready made materials for the IronGuard Male.&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/Sdonr55INdI/AAAAAAAAADM/gCEq83tUkhE/s1600-h/IronGuardMaterials.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 359px;" src="http://4.bp.blogspot.com/_rRYV73e310o/Sdonr55INdI/AAAAAAAAADM/gCEq83tUkhE/s400/IronGuardMaterials.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5321609544919954898" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Select the relevant Material Balls and assign it to the Mesh (by clicking the green arrow). Here 0 is for the Head area and 1 is for the Body parts.&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/SdooOM0Vt8I/AAAAAAAAADU/qZXAqQq1RM0/s1600-h/IronGuardCustomMaterials.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 388px; height: 400px;" src="http://2.bp.blogspot.com/_rRYV73e310o/SdooOM0Vt8I/AAAAAAAAADU/qZXAqQq1RM0/s400/IronGuardCustomMaterials.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5321610134115694530" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Exporting and Importing Animation&lt;br /&gt;To export animation, look to the lower part of ActorX.&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/Sdoo8YQ441I/AAAAAAAAADc/1mh5P36st-I/s1600-h/ActorX_KickExport.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 85px; height: 400px;" src="http://2.bp.blogspot.com/_rRYV73e310o/Sdoo8YQ441I/AAAAAAAAADc/1mh5P36st-I/s400/ActorX_KickExport.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5321610927462212434" /&gt;&lt;/a&gt;&lt;br /&gt;For a quick and dirty test (assuming you want very specific animations and not reuse the standard UT3 animation sets), I exported a Kick...&lt;br /&gt;&lt;br /&gt;and a Bow...&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/SdopZG9eZPI/AAAAAAAAADk/MGFyoBBZ2zQ/s1600-h/ActorX_BowExport.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 83px; height: 400px;" src="http://3.bp.blogspot.com/_rRYV73e310o/SdopZG9eZPI/AAAAAAAAADk/MGFyoBBZ2zQ/s400/ActorX_BowExport.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5321611421033587954" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Notice that the main animation file (.PSA) is called MaleTestAnimation. The Animation Sequence Name is called Kick. Click "Digest Animation". Proceed to the Bow animation. Don't worry. The Kick info is kept in memory.&lt;br /&gt;&lt;br /&gt;Once you have all the animations "digested", click on "Animation Manager".&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/SdoqNqZMU8I/AAAAAAAAADs/yUyzdqEIXg8/s1600-h/ActorX_AnimExport.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 271px;" src="http://3.bp.blogspot.com/_rRYV73e310o/SdoqNqZMU8I/AAAAAAAAADs/yUyzdqEIXg8/s400/ActorX_AnimExport.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5321612323898282946" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Move it to Output and Save it as a PSA file. Open UT3 Editor. In the Generic Browser, click on an empty area and create an AnimSet.&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/SdorKiZG7oI/AAAAAAAAAD8/tGvoj671sjY/s1600-h/AnimSet01.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 388px; height: 400px;" src="http://1.bp.blogspot.com/_rRYV73e310o/SdorKiZG7oI/AAAAAAAAAD8/tGvoj671sjY/s400/AnimSet01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5321613369722465922" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and Import the PSA file.&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/Sdoqwf_P3MI/AAAAAAAAAD0/G5YQZbivsco/s1600-h/AnimSet02.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 365px; height: 400px;" src="http://1.bp.blogspot.com/_rRYV73e310o/Sdoqwf_P3MI/AAAAAAAAAD0/G5YQZbivsco/s400/AnimSet02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5321612922400529602" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Under the Anim tab, you should be able to select "MaleTestAnimation" and playback both the exported animations.&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_rRYV73e310o/SdorolTHbpI/AAAAAAAAAEE/bZABP2thosU/s1600-h/AnimSet03.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 364px; height: 400px;" src="http://2.bp.blogspot.com/_rRYV73e310o/SdorolTHbpI/AAAAAAAAAEE/bZABP2thosU/s400/AnimSet03.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5321613885898714770" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Adding the Custom Character and watch him Move!&lt;/strong&gt;&lt;br /&gt;Select the Custom Character, click on the level floor and Add the SkeletalMesh Actor.&lt;br /&gt;&lt;br /&gt;Next, double click the custom character, go into SkeletalMeshComponent and click on the "+" sign for AnimSets. Select your AnimSets from the Generic Browser and assign it by clicking the green arrow.&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/SdotFbS3q4I/AAAAAAAAAEM/FAt92VGbFfI/s1600-h/AddingSkeletalMesh03.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 264px; height: 400px;" src="http://1.bp.blogspot.com/_rRYV73e310o/SdotFbS3q4I/AAAAAAAAAEM/FAt92VGbFfI/s400/AddingSkeletalMesh03.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5321615480941161346" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you want your custom character to be kicking when you play the level, do this:&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_rRYV73e310o/SdotYRyxh3I/AAAAAAAAAEU/EmkcMTn8CUA/s1600-h/AddingSkeletalMesh04.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 264px; height: 400px;" src="http://3.bp.blogspot.com/_rRYV73e310o/SdotYRyxh3I/AAAAAAAAAEU/EmkcMTn8CUA/s400/AddingSkeletalMesh04.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5321615804808136562" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Compile the level, and play. The character appears to be unlit. I am not sure if this is the correct way, but this seems to work:&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_rRYV73e310o/Sdot4dom6RI/AAAAAAAAAEc/UtcWpuPVAo8/s1600-h/AddingSkeletalMesh_LightingSettings.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 264px; height: 400px;" src="http://4.bp.blogspot.com/_rRYV73e310o/Sdot4dom6RI/AAAAAAAAAEc/UtcWpuPVAo8/s400/AddingSkeletalMesh_LightingSettings.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5321616357742536978" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Congrats! Your custom character is alive and "kick"ing ...hahaha&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_rRYV73e310o/SdouDTUHYCI/AAAAAAAAAEk/dW_YpezHEzE/s1600-h/AddingSkeletalMesh05.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 314px;" src="http://1.bp.blogspot.com/_rRYV73e310o/SdouDTUHYCI/AAAAAAAAAEk/dW_YpezHEzE/s400/AddingSkeletalMesh05.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5321616543950790690" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6694566809194450312-2621587827255024372?l=hyperunreal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hyperunreal.blogspot.com/feeds/2621587827255024372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hyperunreal.blogspot.com/2009/04/modding-character.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/2621587827255024372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/2621587827255024372'/><link rel='alternate' type='text/html' href='http://hyperunreal.blogspot.com/2009/04/modding-character.html' title='Setting up a Custom Character'/><author><name>Kevin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_rRYV73e310o/Sdoc6s2XHEI/AAAAAAAAABk/CI8JIgFwFIU/s72-c/IronGuard01.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6694566809194450312.post-1492100933809576847</id><published>2009-03-30T09:11:00.000-07:00</published><updated>2009-03-30T19:35:46.293-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UT3 Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='modding'/><category scheme='http://www.blogger.com/atom/ns#' term='Level Creation'/><title type='text'>Making your first level</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;&lt;br/&gt;Making levels in a FPS engine can be done in two ways; and Additive mode and a Subtractive mode. In the Half Life 2 Engine, you made levels by adding them in (somewhat like you do in a 3D modeling program). In Unreal 2004, you had to subtract your levels out. Think of it as though you have a solid mass when you start out and you need to "carve" out your levels as you go. The advantage of this method is that there will be lesser chance of getting "holes" in your level thus lesser chance of your level crashing.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;In Unreal Editor 3, you have the choice of doing either way:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href='http://4.bp.blogspot.com/_rRYV73e310o/SdDyU61ujmI/AAAAAAAAAAc/eU8ausL8C7A/s1600-h/LevelCreation_Subtractive.jpg'&gt;&lt;img border='0' alt='' src='http://4.bp.blogspot.com/_rRYV73e310o/SdDyU61ujmI/AAAAAAAAAAc/eU8ausL8C7A/s320/LevelCreation_Subtractive.jpg'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;Go to Edit-&amp;gt; New and choose the Subtractive option for starters. It's easier to start in Subtractive mode. Later I will show you how you can convert to the more optimization-friendly Additive mode and you may notice some performance improvements (especially if you level is quite complicated).&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href='http://2.bp.blogspot.com/_rRYV73e310o/SdD0INnTyhI/AAAAAAAAAAs/PmTIQ0ctwzk/s1600-h/LevelCreation_CubeSteps.jpg'&gt;&lt;img border='0' alt='' src='http://2.bp.blogspot.com/_rRYV73e310o/SdD0INnTyhI/AAAAAAAAAAs/PmTIQ0ctwzk/s400/LevelCreation_CubeSteps.jpg'/&gt;&lt;/a&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;You will be faced with a 4 viewport interface not unlike most 3D packages. If the Generic Browser is on, just close that for now. We won't be needing it just yet. Right mouse click on square cube and you will be faced with a dialog box asking you for the dimensions of the cube. If you are familiar with 3DSMax, this way of working may seem rather odd and counter intuitive. Just bear with it for now and you will soon get used to it. Now may be a good time to introduce what is called the &lt;em&gt;Builder Brush&lt;/em&gt;. The &lt;em&gt;Builder Brush&lt;/em&gt; is that red box you see in the diagram. It shows the &lt;span style='text-decoration:underline'&gt;intention&lt;/span&gt; of what you wish to create. Until you commit to creating it, it will just remain an intention. Click on the &lt;em&gt;Build&lt;/em&gt; button to confirm the dimensions of your brush.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;To commit to creating that brush, click on the &lt;em&gt;Subtract&lt;/em&gt; button. Now observe what happens to the perspective viewport. If you mode is a) Lit, you will see a black screen but notice the blue line (compare a with c) no longer cuts through the red box. That means you have successfully carved out a level. You just cannot see it because you have no lights assigned to the level. If your mode is b) Unlit, you will see the level with lots of chequered boxes as textures. Either way, you need to add a light to the level.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href='http://4.bp.blogspot.com/_rRYV73e310o/SdD0tBSJCKI/AAAAAAAAAA0/Am1u-cX6ksY/s1600-h/LevelCreation_SubtractionResults2.jpg'&gt;&lt;img border='0' alt='' src='http://4.bp.blogspot.com/_rRYV73e310o/SdD0tBSJCKI/AAAAAAAAAA0/Am1u-cX6ksY/s400/LevelCreation_SubtractionResults2.jpg'/&gt;&lt;/a&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;To add a light to the level, simply hold down the "L" key and click on anywhere on the BSP (eg. the floor). A light icon will pop up.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;Compare the Unlit Mode view and the Lit Mode view:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href='http://3.bp.blogspot.com/_rRYV73e310o/SdD3pBtY12I/AAAAAAAAAA8/91psjcXRMm8/s1600-h/LevelCreationUnlit_08.jpg'&gt;&lt;img border='0' alt='' src='http://3.bp.blogspot.com/_rRYV73e310o/SdD3pBtY12I/AAAAAAAAAA8/91psjcXRMm8/s400/LevelCreationUnlit_08.jpg'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;a href='http://1.bp.blogspot.com/_rRYV73e310o/SdD3w8bPspI/AAAAAAAAABE/CCR3L922YPQ/s1600-h/LevelCreation_09.jpg'&gt;&lt;img border='0' alt='' src='http://1.bp.blogspot.com/_rRYV73e310o/SdD3w8bPspI/AAAAAAAAABE/CCR3L922YPQ/s400/LevelCreation_09.jpg'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;Next, you need to Compile the level before you can play it realtime. So hit the compile button. Don't worry about the error messages for now. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href='http://2.bp.blogspot.com/_rRYV73e310o/SdD4NcXGpSI/AAAAAAAAABM/t43jZf6J_rU/s1600-h/BuiltAll.jpg'&gt;&lt;img border='0' alt='' src='http://2.bp.blogspot.com/_rRYV73e310o/SdD4NcXGpSI/AAAAAAAAABM/t43jZf6J_rU/s400/BuiltAll.jpg'/&gt;&lt;/a&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;You are almost ready to playtest the level. Click on the floor, it should turn light purple. Right click and select "Play from Here". &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href='http://2.bp.blogspot.com/_rRYV73e310o/SdD4huIFy1I/AAAAAAAAABU/FFKmuOg-7J8/s1600-h/Playfromhere.jpg'&gt;&lt;img border='0' alt='' src='http://2.bp.blogspot.com/_rRYV73e310o/SdD4huIFy1I/AAAAAAAAABU/FFKmuOg-7J8/s400/Playfromhere.jpg'/&gt;&lt;/a&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;And you should end up with your very first playable level. Congratulations! &lt;br/&gt;&lt;a href='http://2.bp.blogspot.com/_rRYV73e310o/SdD4vio5uiI/AAAAAAAAABc/c3tI3Ict4L0/s1600-h/InGameEditor.jpg'&gt;&lt;img border='0' alt='' src='http://2.bp.blogspot.com/_rRYV73e310o/SdD4vio5uiI/AAAAAAAAABc/c3tI3Ict4L0/s400/InGameEditor.jpg'/&gt;&lt;/a&gt;&lt;br /&gt;			&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6694566809194450312-1492100933809576847?l=hyperunreal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hyperunreal.blogspot.com/feeds/1492100933809576847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hyperunreal.blogspot.com/2009/03/making-your-first-level.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/1492100933809576847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/1492100933809576847'/><link rel='alternate' type='text/html' href='http://hyperunreal.blogspot.com/2009/03/making-your-first-level.html' title='Making your first level'/><author><name>Kevin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_rRYV73e310o/SdDyU61ujmI/AAAAAAAAAAc/eU8ausL8C7A/s72-c/LevelCreation_Subtractive.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6694566809194450312.post-2451039814690740738</id><published>2009-03-30T08:01:00.000-07:00</published><updated>2009-03-30T08:36:31.381-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UT3 Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='level design'/><category scheme='http://www.blogger.com/atom/ns#' term='modding'/><category scheme='http://www.blogger.com/atom/ns#' term='Unreal'/><title type='text'>Introduction to Modding</title><content type='html'>So you are interested in game modding but don't know where to begin? Want to make your own levels but got totally lost with what you read so far? Then let me introduce you to the world of modding and let me simplify it as much as possible and I will try not to repeat what has been said and done (unless it is essential that you go through these steps). Basically, when I started to mess around with modding, I couldn't go very far because fragments of information were everywhere and worse still, some tutorials tells you (logically) how to do things but when you try it, you only get frustrated because none of what was said could be done! This is my attempt to document what I know, point you to places you can go for more detailed information on certain subjects and hopefully be comprehensive enough yet simple enough to follow and serve as a rough guide to get you to what you want to achieve. So here goes!&lt;br /&gt;&lt;br /&gt;The tool of choice is Unreal Editor 3 which comes shipped with Unreal3. The Limited Edition version also comes with Jason Buzzby's excellent video tutorials. However, certain aspects of modding were not covered which left me scratching my head and pulling my hair on how to achieve things like Importing and customizing your own characters, Importing and modifying features for a custom-made weapon or even to alter gameplay.&lt;br /&gt;&lt;br /&gt;So without further ado, on with the intro. As far as level creation on FPS (First Person Shooters) games are concerned, generally you can make 3 basic types of levels:&lt;br /&gt;&lt;br /&gt;1. BSP (Binary Space Partitioning)&lt;br /&gt;2. Static Mesh&lt;br /&gt;3. Terrain&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;BSP Levels&lt;/strong&gt;&lt;br /&gt;BSPs are relatively very simple primitives created within the game editor itself. It is extremely low polygon, has its own set of built-in optimization and accomodates lightmaps baking without the need for the user to manually do it themselves. As a result, BSPs are fast to create, compile and run. They can also do automatic culling and other optimization calculations which speed up their performance. Ideal objects for BSPs would include walls, ceilings and floors, simple boxes and staircases.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Static Mesh&lt;/strong&gt;&lt;br /&gt;Static Mesh fills up the void where BSPs cannot accomodate. Some objects are simply impossible to make using BSPs for example, a complex organic statue. In comes static meshes which are created in an external 3D package such as 3DSMax and then imported into the engine. One disadvantage of static meshes is that they do not light up as nicely compared to BSP lightmaps. You can compensate in a way by adding vertex lighting but the results may vary.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Terrain&lt;/strong&gt;&lt;br /&gt;Terrain is a special feature that can be created within most level editors. It contains height depth information and is relatively easy to use. It is preferable to use terrain as opposed to making a terrain and importing it as a static mesh (usually) for optimization and avoiding "holes" in your level issues. NOTE: I will explain in more detail what these "holes" are later. Just know that any "holes" will cause your level to crash of fail to even compile.&lt;br /&gt;&lt;br /&gt;Well, that's it for starters. Hopefully, with this basic knowledge, you are better able to appreciate when to use what when you go ahead and create your levels. Happy modding!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6694566809194450312-2451039814690740738?l=hyperunreal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hyperunreal.blogspot.com/feeds/2451039814690740738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hyperunreal.blogspot.com/2009/03/introduction-to-modding.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/2451039814690740738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6694566809194450312/posts/default/2451039814690740738'/><link rel='alternate' type='text/html' href='http://hyperunreal.blogspot.com/2009/03/introduction-to-modding.html' title='Introduction to Modding'/><author><name>Kevin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
