gH]kDwP$Rosetta Beta 7.61[VS_O93YJClinton Reese, Clintons 3D Creations`d8pM*#ͺOD$PNG  IHDR`ZIDATx1 0@1B>2z*Xyq]` 5kX` 5kX` 5kX` 5kX` 5kX` 5kX` 5kX` 5kX` 5kX` 5kX` 5kX` 5k hpIENDB`/tfѭ8Lwb"q@܂dKu=P Dinstall Joint Orientation ControlL .;]kI 忞@.;]kI 忞@"SubObject*Encapsulated objects"L iL kL 3 L 4W}@O{4W}@O{$ Owner4Owner of the Encapsulator$(XFҦV(XFҦV"LE2Data$LE2 Data for node >g'JNjn*p" zFAa| zFAa|DhelpText\vRm)EC!avRm)EC!aD leftClickScript\1V {E!Y1V {E!YD name\!K0}q!K0}qD"rightClickScript\-1OSM n-1OSM n"LayoutLayout 럆L<_ї"1V {E!YsayHello!K0}q2System.Alert("goodbye");(XFҦV>g'JNjn*pF@D?r@@T@+XB?vRm)EC!a<System.Alert("hello there!");-1OSM n 럆L<_ї˃DefaultOˁ CRih[  ΋ }}LActivity.Run('%THIS_NAME%' + "/doIt")8install buttons and scriptsZ`Ez]UO GFʠN= 0΋ .}} version 2.0.1Z`Ez]UO}} zFAa|say helloܯ tP 4P `._E#ބ6D P CustomFrame(L .;]kI 忞@"M L 4W}@O{$*O΢C}*O΢C} WinIDWindow IDL -pϗO 0)t-pϗO 0)PositionShelf Position mz!OHwcL L >-MD'zZt>-MD'zZRectangle"Screen Rectangle THj6F 2s*L RÒGbDeC tRÒGbDeC  WidthWindow widthL L [FB%n*jt[FB%n*jHeightWindow heightL  [GDJM [GDJMMin Width$Min. Window width%]GJ7ψ%]GJ7ψMin Height&Min. Window height^^Dy^^DyMax Width$Max. Window widthv43N tv43N tMax Height&Max. Window height~൱D@ j#^c~൱D@ j#^cMaximized(Window Is Maximized 9@'s9@'sRootNodeRootNode{Q !aOt {Q !aOt  TitleTitle Text6*Mv46*Mv4View Index$View window indexf$I `7f$I `7Frame TypeFrame Typej^G@!,j^G@!,"ViewersViewers array 2bOdA)f "I)LL !I)LL ! Def1D Default 1D GUID8M0cry8M0cry Def2D Default 2D GUIDF L$3F L$3 Def3D Default 3D GUIDobFFJL}obFFJL}SnappedTo$Snapped To WindowBXPjKɸtEBXPjKɸtE SnappedToTarget@Snapped To Window Target CornerkJHx(V@WkJHx(V@W SnappedToSource@Snapped To Window Source CornerKTLA7~fKTLA7~f"SnappedToOffsetX6Snapped To Window Offset XK8Y8O#=gtMK8Y8O#=gtM"SnappedToOffsetY6Snapped To Window Offset Ymk~_Lb.mk~_Lb.SnappedToWidth0Snapped To Window Width|7EId |7EId  SnappedToHeight2Snapped To Window HeightKXtO LKXtO L,StartSnappedToOffsetXBStart Snapped To Window Offset XVG))jHETVG))jHET,StartSnappedToOffsetYBStart Snapped To Window Offset Y?V{N7l?V{N7lSnappedToRatio,Snapped To Ratio Mode 86*n^HD9t 86*n^HD9t OwnedByOwned By|_ D|_ DTabsAsButtons Tabs As Buttons _N>G1_N>G1HiddenHidden Flag \q^2FII3w\q^2FII3wPreference,View Preference Panel >=жaMpT>=жaMpT&HideDockedTitlebarJHide Title bar when window is docked N'D)L-N'D)L-MinimizedBHJWindow Is Minimized into Blue Handle ϕ`&FSx9wϕ`&FSx9wSizeLockPrevent horizontal and/or vertical size change. 0x01 - horizontal, 0x02 - vertical˽OS˽OSDispTitleText,Display Titlebar Text Ī8mݧC>!7Ī8mݧC>!7SmallerTabs*Display smaller Tabs (XFҦV"&|_ DkJHx(V@WBXPjKɸtEmk~_Lb.8M0cryN{485B725E-A69D-4AD5-A876-B3BBA72D2C0A}[FB%n*j\q^2FII3wK8Y8O#=gtM6*Mv4 [GDJMRÒGbDeC 1f$I `7{Q !aOt Ī8mݧC>!7obFFJL}I)LL !v43N t (XFҦV>g'JNjn*pFBCX@1@?^^Dy_N>G19@'s*O΢C}N{5FDDFE6E-518F-464A-B4B9-8D24B556E36C}˽OS-pϗO 0)mz!OHwc ϕ`&FSx9w>=жaMpTF L$3j^G@!,2bOdA)f 6^r[HJv-, ^r[HJv-, %]GJ7ψ>-MD'zZKXtO L?V{N7l VG))jHET~൱D@ j#^cN'D)L-86*n^HD9t |7EId KTLA7~f^r[HJv-, l$P Toolbar.;]kI 忞@"M 4W}@O{$n_<&KES Qn_<&KES Q NameItem nameo(K ]p do(K ]p dHelpTextHelp text8Cechg8Cechg RowsToolbar RowsNL {NL {$Dimension$Toolbar dimension$Z_IFL!OSZ_IFL!OSHorizontal Horizontal Flag .S)A2UЍc.S)A2UЍcIsSubToolbar$IsSubToolbar Flag =JM@hM Q3=JM@hM Q3IsImportant2IsImportant Toolbar Flag .UuwO e.UuwO eIDToolbar ID'0#ԪC'X/9}'0#ԪC'X/9}$ IndexItem Index$_N>G1JdWJc~JdWJc~PrototypePrototype name<9BH@b\<9BH@b\IsMinimizedPTrue/False flag if toolbar is minimized m O1Wwm O1Ww$IsAspectT(Aspect Toolbar Flag $(XFҦV".UuwO e'0#ԪC'X/9}m O1Ww=JM@hM Q3 (XFҦV>g'JNjn*pFBCb@ f@?_N>G1Z_IFL!OS NL {JdWJc~8Cechg.S)A2UЍc n_<&KES Qo(K ]p d<9BH@b\ R/$ķKniaWt!P "jointOrientation'0#ԪC'X/9}]8teO?s]8teO?s"MaxItemTxtHeight.Maximal item text size% sH?DC sH?DCTagTag%IlfāA>ˁwIlfāA>ˁwTagAliasTag Alias%/ru|GF0/ru|GF0AgentIDUpdate agentID(XFҦVLE2Data, 1"-1OSM n".;]kI 忞@"iL 4W}@O{$n_<&KES Qo(K ]p dQm6l3Ll/V^Qm6l3Ll/V^CommandAction commandN="QEj%:N="QEj%:RClickCommand,RClick Action Command$ܿORE bi$ܿORE biPreview2D8Item preview 2D resource id*S]?G[~x;*S]?G[~x;Preview3D8Item preview 3D resource idSr)B8Sr)B8Package"Package class idDNOQsP'ѭDNOQsP'ѭBitmap.Item preview 3D bitmap eSBgciDsL[wiDsL[wRadio Group(Radio buttons group4E*4E*ControlID2D&User Control ID 2Dh>ǑJ]@<h>ǑJ]@<ControlID3D&User Control ID 3D+fyOA7XC+fyOA7XC MaxItemBmpWidth2Maximal item bitmap sizeTl@fC.^&GZTl@fC.^&GZ"MaxItemBmpHeight2Maximal item bitmap sizeh0OY~ C h0OY~ C  MaxItemTxtWidth.Maximal item text size%?Aυ D)7t?Aυ D)7tGrayPercentxGray icon about specified percents if it is not highlighted][D+Iv(][D+Iv( MenuAct As Menu 8{Nm(!8{Nm(!IsMenuButtonIs Menu Button ko6ǑJ]@<N{2BBC850E-6EEF-4364-9265-A4A606AE464B}N="QEj%:$ܿORE bi//ru|GF0N{00000000-0000-0000-0000-000000000000}+fyOA7XC(XFҦV>g'JNjn*pFC`b@v@p8B?8{Nm(!][D+Iv(ko6ˁw?Aυ D)7tUTl@fC.^&GZo(K ]p d:open joint orientation panel]8teO?s.;]kI 忞@Sr)B8-1OSM n 럆L<_ї0DNOQsP'ѭeSBgc C:\Documents and Settings\Clinton\My Documents\My Pictures\jointOrientIcon.bmpI?'kLjW9 x}LUeouJF\B ZcVI,E{s9HLr(/r3ŗ jGrQ}zʋwߞ{:+hb4 ]6:UiQwՈahO0#̛>LZ-ZDyE9Έ_bZdt~OMe`E3߃r’!= T߻ C _gYU_/tUpccy 3ΐl_s8E8i 8xp^+#C| Ue948:!5Xg `^tt4)ӲμNO >%l%>sv-N pΈ}+ 7u΍Wc4.s=1gcr5v4=I]q z!Q&4$SsG|Srx4 v~[شw㟼ϑAI1χ'?>\.U85Wc8[a)r2&νx5+zHL)Wؾ(*|v,X/I `4tqg'JNjn*pceZU@䑧rceZU@䑧r$_scriptData*Internal Script data [җJs@ %kL 4W}@O{$(XFҦVLE2Data, 1#J@#QLJ@#QLLE2Data$LE2 Data for node >g'JNjn*pLE2Data, 3MT^RwL~YYTMT^RwL~YYTޢLE2Data$LE2 Data for node >g'JNjn*pLE2Data, 22|=Bynj2|=Bynj Control OutTransitionOutz@Hoz@Ho Control InTransitionIn 2|=Bynj2AEHM'>g'JNjn*pnBC`@0@2|=Bynj|?z@Hoۙ>?ceZU@䑧r[җJs@ 4NewCommand // Execute // Called to execute the command function Execute(params) { // TODO: put your action code here owner = System.ThisOwner(); button1 = "jointOrientation"; theScript = "Joint Orientation Control"; // if(Node.Exists("/Project/Windows Manager Space/CustomFrame/Toolbar/" + button1)) { replaceLeft = System.Question(button1 + " button already exists in the toolbar. Would you like to replace it?"); if(replaceLeft) Node.Delete("/Project/Windows Manager Space/CustomFrame/Toolbar/" + button1); else return; } //check for and create customframe if(!Node.Exists("/Project/Windows Manager Space/CustomFrame")) Node.Copy(owner + "/CustomFrame","/Project/Windows Manager Space"); //copy buttons to custom frame oldButt = Node.Copy(owner + "/" + button1,"/Project/Windows Manager Space/CustomFrame/Toolbar"); //copy script to custom commands //create CustomCommands if(!Node.Exists("/Scripts/CustomCommands")) { temp = Node.Create("Kernel Package/Object","/Scripts"); custcom = Node.Rename(temp,"CustomCommands"); } if(Node.Exists("/Scripts/CustomCommands/" + theScript)) { replaceLeft = System.Question(theScript + " script already exists. Would you like to replace it?"); if(replaceLeft) Node.Delete("/Scripts/CustomCommands/" + theScript); else return; } Node.Copy(owner + "/" + theScript,"/Scripts/CustomCommands"); //activate it WindowsManager.Activate(); WindowsManager.UpdateWindowsStructure(); //reset the toolbar //1D Aspect WindowsManager.SetWindowAspect('/Project/Windows Manager Space/CustomFrame', 1); //2D Aspect WindowsManager.SetWindowAspect('/Project/Windows Manager Space/CustomFrame', 2); } NScript Object Package/jScript language" Ɯ 4W}@O{(XFҦV>g'JNjn*pn7C`b@H@2|=Bynj|?z@Hoۙ>?J@#QL>g'JNjn*pnBB`@T@2|=Bynj|?z@Hoۙ>?-1OSM n 럆L<_їjControlOˁ CRih[ Ca8Activity.Run('%THIS_NAME%') StartZ`Ez]UOOˁ CRih[ 0 Ca:Activity.Stop('%THIS_NAME%') StopZ`Ez]UOMT^RwL~YYT>g'JNjn*pnCB`@0@2|=Bynj|?z@Hoۙ>?z@Ho܂dKu=P 4Joint Orientation Control83 .;]kI 忞@"8+ 0 K _? > > > > > > > > > > > > > > 3 4W}@O{$(XFҦV"-1OSM n" LhD_CoQ!'LhD_CoQ!'Dstandard T> (XFҦV>g'JNjn*pF/DB@j@q@@ 9?-1OSM n 럆L<_ї˻Default GFʠN=xC }}standard 3D colorsLhD_CoQ!'Z`Ez]UOͽ>fdN*5Ւhx, }}LhD_CoQ!'Z`Ez]UOOˁ CRih[0iPx}}dActivity.Run('%THIS_NAME%' + "/copyDummyJoints");Create GuideZ`Ez]UOOˁ CRih[i0Px}}^Activity.Run('%THIS_NAME%' + "/remove scale");4Transfer Changes to JointZ`Ez]UO GFʠN=`px2}}1. select a jointZ`Ez]UO GFʠN=P`x=}}2. click Create Guide buttonZ`Ez]UO GFʠN=px:}}3. rotate guide to desireZ`Ez]UO GFʠN=xK}}*4. click Transfer Changes button to updateZ`Ez]UO GFʠN=x.}} Version 2.0.1Z`Ez]UOOˁ CRih[8x}}`Activity.Run("%THIS_NAME%" + "/buildJointList") Zero All JointsZ`Ez]UO GFʠN=x?}}1. select an actor or skeletonZ`Ez]UO GFʠN=xu}}T3. click "Zero All Joints" to set the matrix for all joints to zero value rotations.Z`Ez]UO GFʠN=0xI}}(Use on skeletons/joints before skinning.Z`Ez]UO GFʠN=xJ}})2. Be sure the default pose has been set.Z`Ez]UO}}LhD_CoQ!' ܯ 48@J 2AEHM'ceZU@䑧r%8+ 4W}@O{$(XFҦVLE2Data, 1#8, z@HoMT^RwL~YYTLE2Data, 2J@#QLLE2Data, 3-1OSM n# 2|=Bynj2AEHM'>g'JNjn*pnBC`@0@2|=Bynj|?z@Hoۙ>?ceZU@䑧r[җJs@ NewCommand// Execute // Called to execute the command function Execute(params) { grandParent = ""; parent = ""; gparentMat = System.CreateDO("Math Package/Matrix Float Data"); gparentMatInv = System.CreateDO("Math Package/Matrix Float Data"); parentMat = System.CreateDO("Math Package/Matrix Float Data"); parentMatInv = System.CreateDO("Math Package/Matrix Float Data"); childMat = System.CreateDO("Math Package/Matrix Float Data"); scene = Space.CurrentScene(); numSceneObj = Node.SubObjectCount(scene); //find grandparent for(i=0;i<numSceneObj;i++) { curNode = Node.SubObject(scene, i); //sname = Node.ShortName(curNode); sname = curNode; //GRANDPARENT prefix checkName = sname.substr(0,11); if(checkName == "GRANDPARENT") { grandParent = scene + "/" + sname; //System.Alert(checkName); gparentMat = Node.Value(grandParent,"WldMatrix"); gparentMatInv = gparentMat.Invert(); } } //find parent - which is the joint that was changed //if(grandParent=="") return; for(i=0;i<numSceneObj;i++) { curNode = Node.SubObject(scene, i); //sname = Node.ShortName(curNode); sname = curNode; //PARENT prefix checkName = sname.substr(0,6); if(checkName == "PARENT") { parent = scene + "/" + sname; //System.Alert(checkName); parentMat = Node.Value(parent,"WldMatrix"); parentMatInv = parentMat.Invert(); } } //do parenting //find each child and do parenting if(parent=="") return; for(i=0;i<numSceneObj;i++) { curNode = Node.SubObject(scene, i); //sname = Node.ShortName(curNode); sname = curNode; //PARENT prefix checkName = sname.substr(0,5); if(checkName == "CHILD") { child = scene + "/" + sname; //System.Alert(checkName); childMat = Node.Value(child,"WldMatrix"); childMat.Mult(parentMatInv); Node.Value(child,"Matrix") = childMat; //parenting step Node.ConnectTo(parent, "WldMatrix", child, "OwnerMatrix"); } } if(grandParent!="") { parentMat.Mult(gparentMatInv); Node.Value(parent,"Matrix") = parentMat; //parenting step Node.ConnectTo(grandParent, "WldMatrix", parent, "OwnerMatrix"); } //manual test of next steps is good //copy matrix of the fake joints to the real joints //and set min/max xyz to match translation //do this for PARENT and all the CHILD joints, no change for the GRANDPARENT it is just a starting point //ideally - // 1. select the joint // 2. create the dummy joint objects and select the PARENT for transform manipulation // 3. after manipulation transfer data to the real joints PARENT and all the CHILD // 4. delete the dummy joints // need to save the real parent joint for step 3 } NScript Object Package/jScript languageR4W}@O{(XFҦV>g'JNjn*pnCCb@O@2|=Bynj|?z@Hoۙ>?J@#QL>g'JNjn*pnBB`@T@2|=Bynj|?z@Hoۙ>?-1OSM n 럆L<_їjControlOˁ CRih[ a8Activity.Run('%THIS_NAME%') StartZ`Ez]UOOˁ CRih[ 0a:Activity.Stop('%THIS_NAME%') StopZ`Ez]UOMT^RwL~YYT>g'JNjn*pnCB`@0@2|=Bynj|?z@Hoۙ>?z@Ho܂dKu=4P .axesIndicator Standard啯]`O둒B啯]`O둒BLE2Data, 5$LE2 Data for node >g'JNjn*pLE2Data, 14K4#KbnxCK4#KbnxCLE2Data, 7$LE2 Data for node >g'JNjn*p8/ .;]kI 忞@"M QL :M 0N K  G?ŋ G?ŋ tSObjLtrueSpace object synchronization data g'JNjn*p@̌*A TYj@̌*A TYjLE2Data, 2$LE2 Data for node >g'JNjn*pLE2Data, 4iX%C+%ciX%C+%cգLE2Data, 8$LE2 Data for node >g'JNjn*pLE2Data, 11 偢jD%~`8偢jD%~`8BObjMatrix Object's matrix `^02eE{|@[D_霥ND!YͯvD_霥ND!YͯvLE2Data, 8$LE2 Data for node >g'JNjn*po4DIM>[o4DIM>[ϣLE2Data, 3$LE2 Data for node >g'JNjn*pLE2Data, 58 <ĠF姁J]<ĠF姁J]DMatrix,Object's input matrix `^02eE{|@\QL uB!#~}uB!#~}LE2Data, 9$LE2 Data for node >g'JNjn*pLE2Data, 13J@#QLJ@#QLLE2Data, 1$LE2 Data for node >g'JNjn*pLE2Data, 16gXHTˑgXHTˑLE2Data, 6$LE2 Data for node >g'JNjn*pɄ4D-%p6Ʉ4D-%p6LE2Data, 10$LE2 Data for node >g'JNjn*p%%u5E b%%u5E bLE2Data$LE2 Data for node >g'JNjn*pLE2Data, 15ȂT"D*ݫȂT"D*ݫģLE2Data, 1$LE2 Data for node >g'JNjn*p8 WAGWAGOwnerMatrixOwner's matrix `^02eE{|@M L ׊;Jf|ڢ׊;Jf|ڢBWldMatrixWorld matrix `^02eE{|@Z# vK L5KN*tkL5KN*tkLE2Data, 12$LE2 Data for node >g'JNjn*pL -V?XM%-V?XM%Material ListMaterial List +N⩊ L tveDCE`"IWJtveDCE`"IWJB Mesh"Ouput Shape Mesh >W5f@(䐈R8# vK L S $hKnPSVmS $hKnPSVm"RenderAttributes"RenderAttributes HEoq5v(  M L[> IkF:ǭJL[> IkF:ǭJB Pivot0Local coordinate system `^02eE{|@R(XFҦV"-1OSM n"-V?XM%S $hKnPSVm%%u5E b>g'JNjn*pFCBb@H@?L[> IkF:ǭJU.XC VŠZ1JSU4\vs'eChw+>g'JNjn*pFB|C`@0@?偢jD%~`84W}@O{D_霥ND!Yͯv>g'JNjn*pF8CC`@0@?o4DIM>[>g'JNjn*pFCC`@r@?(XFҦV>g'JNjn*pFC0AX@>@PBB?啯]`O둒B>g'JNjn*pFCAb@@@LBd?gXHTˑ>g'JNjn*pFCC`@v@?ȂT"D*ݫ>g'JNjn*pFCBc@n@?׊;Jf|ڢL5KN*tk>g'JNjn*pFB(Cb@H@?J@#QL>g'JNjn*pF CCb@H@?K4#KbnxC>g'JNjn*pFB|C`@0@?WAG`^02eE{|@B????iX%C+%c>g'JNjn*pFC8Cb@H@?@̌*A TYj>g'JNjn*pFxBpCb@r@? G?ŋ~0iV@KU>x%g'JNjn*pFA Bb@v@?.;]kI 忞@uB!#~}>g'JNjn*pFC b@@@?MJ 47m2O P TransformQL <ĠF姁J]pDM M M WAGpM M 偢jD%~`8PB M ׊;Jf|ڢPBL ;M M 4W}@O{$(XFҦV"偢jD%~`8(XFҦV>g'JNjn*pFB CX@1@?׊;Jf|ڢWAG<ĠF姁J]qU F3fP 2Object Render AttributesM S $hKnPSVmPL M 8Ns2]t8Ns2] Surface Opacity Surface OpacityM M ^mګA~Ksi[t^mګA~Ksi[Points opacityPoints opacityM M (lrsGrt(lrsGrPoints Size>Point Size in Point rendering.M M \Eh{5t\Eh{5Points ColorLColor of points during the rendering. -n,NjlpgM M "PbEGDߗrt"PbEGDߗr0Ignore mesh point color0Ignore mesh point color M M F?N dtF?N d.Ignore mesh point size.Ignore mesh point size M M ]*qBCxt]*qBCxEdges opacityEdges opacityM M \J:I%7ut\J:I%7uEdges ColorEdges Color -n,NjlpgM M iA޲1rIK>XtiA޲1rIK>X0Ignore mesh edges color0Ignore mesh edges color M  M ,ot"AaYt,ot"AaY$Show hidden lines`Do not use ZBuffer in point and wireframe modes M M ^RI8ÿRt^RI8ÿRShow backfaceslEnable two-sided rendering when Color mode is enabled M M çwH5#VtçwH5#V0Ignore layer attributesvDo not combine render attributes with layer defined values M QL 4W}@O{%J@#QL-1OSM n#(XFҦV"W0@zdW0@zd%VersionVersion%RL ȅ8vDCxZtȅ8vDCxZInvisibleInvisible flag M N F+2MGtF+2MGCast shadows$Cast shadows flag M N I2GWM:).$tI2GWM:).$ Receive shadows Receive shadows M VK mBޖw ptmBޖw pLayer index(Modeler layer indexM K o[nfFto[nfF Overlay opacity Overlay opacityM K zgGFohN)tzgGFohN)Overlay ColorOverlay Color. -n,NjlpgM K vhD zʔtvhD zʔ4Ignore mesh overlay color6Ignore mesh overlay color. M 5M fB #^tfB #^$Transparency Mode@Quality of transparency solving :KrbSxM 5M |$}mK;)t|$}mK;) OverlayEnable*Enable color overlay  M 4M rg@*oHtrg@*oH OverlayColor*Color of the overlay -n,Njlpg M 4M !eLZE^Nt!eLZE^N OverlayStrengthJStrength (visibility) of the overlay M I2GWM:).$ zgGFohN)S $hKnPSVm]*qBCxvhD zʔrg@*oHçwH5#V 4W}@O{\Eh{5-n,Njlpg????\J:I%7u-n,Njlpg???fB #^:KrbSxv No Hidden FacesNo SortTriangle SortNo Sort(XFҦV>g'JNjn*pFCk@@\@?F?N d 8Ns2]?ȅ8vDCxZ "PbEGDߗr F+2MG ^mګA~Ksi[(lrsGr?J@#QL>g'JNjn*pFCBb@ h@?W0@zdo[nfFmBޖw p,ot"AaY -1OSM n 럆L<_ї˓ DefaultAdvanced GFʠN=1 }}^RI8ÿRZ`Ez]UOͽ>fdN*5Ւh, }}^RI8ÿRϱZ`Ez]UO GFʠN= 1 }},ot"AaYZ`Ez]UOͽ>fdN*5Ւh , }},ot"AaYZ`Ez]UO GFʠN= 01 }}ȅ8vDCxZZ`Ez]UOͽ>fdN*5Ւh 0, }}ȅ8vDCxZZ`Ez]UO GFʠN=0@1 }}F+2MGZ`Ez]UOͽ>fdN*5Ւh0@, }}F+2MGZ`Ez]UO GFʠN=@P1 }}I2GWM:).$Z`Ez]UOͽ>fdN*5Ւh@P, }}I2GWM:).$Z`Ez]UO GFʠN=P`1 }}mBޖw pZ`Ez]UO1釥GP>aP`0 }}mBޖw pZ`Ez]UO GFʠN=0(@6 }}Color\J:I%7uZ`Ez]UO B>I(0h@%}}\J:I%7uZ`Ez]UO GFʠN=@(P8 }}Opacity]*qBCxZ`Ez]UON\q+nN-K^(@hPA\VV?]*qBCxZ`Ez]UOY@ GFʠN=h@P@ }}Enable Obj ModeçwH5#VZ`Ez]UOͽ>fdN*5Ւh@P, }}çwH5#VZ`Ez]UO GFʠN=h 6 }}Color\Eh{5Z`Ez]UO B>I %}}\Eh{5Z`Ez]UO GFʠN=h 08 }}Opacity^mګA~Ksi[Z`Ez]UON\q+nN-K^ 0A\VV?^mګA~Ksi[Z`Ez]UOY@ GFʠN=h0@5 }}Size(lrsGrZ`Ez]UON\q+nN-K^0@A\VV?$@(lrsGrZ`Ez]UOY@ GFʠN=( 8 }}Opacity8Ns2]Z`Ez]UON\q+nN-K^(h A\VV?8Ns2]Z`Ez]UOY@ GFʠN=h(}}SurfaceZ`Ez]UO GFʠN= h0&}}EdgesZ`Ez]UO GFʠN=h'}}PointsZ`Ez]UO GFʠN=Ph`1 }}fB #^Z`Ez]UOnevG4'hP`̆fB #^VNo hidden faces No solving Triangle sortZ`Ez]UO!eLZE^N|$}mK;)^RI8ÿR iA޲1rIK>X "L2OƲ@5NlP  Pivot3M L[> IkF:ǭJPBM ;M <ĠF姁J]pD3M :M ;M WAGp3M :M :M ׊;Jf|ڢpB:M 4W}@O{$(XFҦV"L[> IkF:ǭJ(XFҦV>g'JNjn*pFBECX@1@?׊;Jf|ڢWAG<ĠF姁J]`^02eE{|@B????܂dKu=ԻP "Material List, 1'N .;]kI 忞@"!M WK UK jK 0N 4W}@O{$0N -V?XM%L (XFҦV"-V?XM%(XFҦV>g'JNjn*pFlCBX@1@?) 6G%P ,Material List Manager"M -V?XM%P0N qL &zB}J?t&zB}J?&Active material ID2Active material class ID"M !M 4W}@O{$ZK  *GAAyt *GAAyMat Chunk 0BDynamic material input connector |E8y"M +L  Jbt!t Jbt!Mat Chunk 1BDynamic material input connector |E8y"M CL LE\G Q v.tLE\G Q v.Mat Chunk 2BDynamic material input connector |E8y"M -V?XM% Jbt!&zB}J? *GAAyLE\G Q v.܂dKu= P $Material Chunk, 1HL .;]kI 忞@"ZK DK EK WK 4W}@O{$XK gYأC۲+?gYأC۲+?Material ChunkMaterial Chunk |E8yZK gYأC۲+?b=h0CRfP 0Material Flavor ManagerXK gYأC۲+?PXK YK !EJGWMt!EJGWMMaterial IndexMaterial IndexXK YK 6~qK;2t&t6~qK;2t&Active Info4Active and validity flags NOI/)[&XK ZK 4W}@O{$WK SbW MίAtSbW MίAMat Item 0BDynamic material input connectorXK [K ɱtA{-><tɱtA{-><Mat Item 1BDynamic material input connectorXK !EJGWMɱtA{-><SbW MίA6~qK;2t&NOI/)[&|z@*GVgYأC۲+?~wC쇀DP  Solid GK .F_P#T.F_P#Material Output material __W8E#(WK JK n%⟀A}aJtn%⟀A}aJDiffuseColorDiffuseColor -n,NjlpgGK OK >]zJ4 t>]zJ4 (VertexColorStrength(VertexColorStrengthGK BK J.HE /*gtJ.HE /*gShininessShininessGK BK 8VnZN:W pt8VnZN:W p DiffuseStrength DiffuseStrengthGK CK ll-#Ez k^tll-#Ez k^"SpecularStrength"SpecularStrengthGK CK K#uiL$tK#uiL$AlphaTestAlphaTest :KrbSxGK DK ,L?D}t,L?D}AlphaTestValueAlphaTestValueGK DK 4W}@O{$J.HE /*gA>]zJ4 n%⟀A}aJ-n,Njlpg?==~?,L?D}.F_P#K#uiL$:KrbSxbDisabledEnabledAs OpaqueDisabledll-#Ez k^=8VnZN:W pfff?܂dKu=ܸP LW Material, 1EK .;]kI 忞@"JK KK NK SK TK EK 4W}@O{$FK RGψ"FRGψ"FLW Material Output material _[@.~$[K RGψ"F }R?DVmDP LWMaterialFK RGψ"FPFK GK qN9{ۡ-~tqN9{ۡ-~$TransparentShader&Transparent shader `ގ@;ENiFK HK  7-+Ahhvt 7-+AhhvColorShaderColor shader U@M[ VMFK HK ,< -THJ`t,< -THJ`$ReflectanceShader&Reflectance shader =HG s FK IK ~:T@hHt~:T@hH&DisplacementShader(Displacement shader 01gH=-FK JK 4W}@O{$qN9{ۡ-~,< -THJ`RGψ"F 7-+Ahhv~:T@hHJtP8N.P  ColorIK {[f(@-L*;T{[f(@-L*;LWColor_shader$Pure Color shader yᮍGM޴"HK KK '޽lL]>Lt'޽lL]>L NameShader nameIK KK 4W}@O{$LK 3"vqHyhkt3"vqHyhkcolour0colour : Shader - Color -n,NjlpgIK {[f(@-L*;'޽lL]>L plain3"vqHyhk-n,Njlpg?==?tJx_JDyiLP  Model MK r鷅wOq=0Tr鷅wOq=0(LWReflection_shader.Pure Reflection shader yᮍGM޴"HK MK '޽lL]>LpMK NK 4W}@O{$NK 'x%Ft'x%Fambient factor@ambient factor : Shader - ModelMK LK 3 Eg򼉝t3 Eg򼉝diffuse factor@diffuse factor : Shader - ModelMK ]M PžD&ptPžD&p specular factorBspecular factor : Shader - ModelMK OK T<[BL6Fc! jEtT<[BL6Fc! jEexponent4exponent : Shader - ModelMK PK umOb:JmtumOb:Jm specular colourBspecular colour : Shader - Model -n,NjlpgMK PK Ng_Cπ&RwtNg_Cπ&Rw(transmission factorJtransmission factor : Shader - ModelMK QK rbН AKKtrbН AKKmirror factor>mirror factor : Shader - ModelMK QK oIE? StoIE? Srefraction8refraction : Shader - ModelMK  umOb:Jm-n,Njlpg????T<[BL6Fc! jEArbН AKK3 Eg򼉝fff?Ng_Cπ&Rw'޽lL]>Lcaligari phongoIE? S?'x%FPžD&p=r鷅wOq=0 7G5f|P DisplacementRK I˕XMӍJS9TI˕XMӍJS9,LWDisplacement_shader2Pure Displacement shader yᮍGM޴"IK RK '޽lL]>LpRK SK 4W}@O{$'޽lL]>L noneI˕XMӍJS9 EvmE|Kc\LP TransparencySK fO*EI,STfO*EI,S,LWTransparency_shader2Pure Transparency shader yᮍGM޴"GK TK '޽lL]>LpSK TK 4W}@O{$fO*EI,S'޽lL]>L none܂dKu=P $Material Chunk, 2UK .;]kI 忞@"(L K L UK 4W}@O{$VK gYأC۲+?+L gYأC۲+?b=h0CRfĮP 0Material Flavor Manager&L gYأC۲+?PVK 'L !EJGWMp&L 'L 6~qK;2t&p&L (L 4W}@O{$(L lmYo\@k*tlmYo\@k*Mat Item 0BDynamic material input connector&L )L Z+YEǻrtZ+YEǻrMat Item 1BDynamic material input connector&L lmYo\@k*!EJGWMZ+YEǻr6~qK;2t&NOI/)[&|z@*GVgYأC۲+?~wC쇀DP  Solid )L .F_P#T.F_P#Material Output material __W8E#((L *L n%⟀A}aJp)L *L >]zJ4 p)L &L J.HE /*gp)L +L 8VnZN:W pp)L \K ll-#Ez k^p)L `K K#uiL$p)L K ,L?D}p)L K 4W}@O{$J.HE /*gA>]zJ4 n%⟀A}aJ-n,Njlpg=?=~?,L?D}.F_P#K#uiL$:KrbSxbDisabledEnabledAs OpaqueDisabledll-#Ez k^=8VnZN:W pfff?܂dKu=P LW Material, 1L .;]kI 忞@"[K ^K `K K cK L 4W}@O{$ L RGψ"F)L RGψ"F }R?DVmP LWMaterial L RGψ"FP L L qN9{ۡ-~p L L  7-+Ahhvp L L ,< -THJ`p L \K ~:T@hHp L [K 4W}@O{$qN9{ۡ-~,< -THJ`RGψ"F 7-+Ahhv~:T@hHJtP8N.TP  Color]K {[f(@-L*;PL ]K '޽lL]>Lp]K ^K 4W}@O{$^K ʖyG=:MtʖyG=:Mcolour0colour : Shader - Color -n,Njlpg]K ʖyG=:M-n,Njlpg=?=?{[f(@-L*;'޽lL]>L plaintJx_JDyiLP  Model _K r鷅wOq=0PL _K '޽lL]>Lp_K `K 4W}@O{$aK R뮯\Kԡ; ?tR뮯\Kԡ; ?ambient factor@ambient factor : Shader - Model_K aK COt̶mirror factor : Shader - Model_K K M_?>OBzAtM_?>OBzArefraction8refraction : Shader - Model_K  EHOZl-@M_?>OBzA?O"@DADZyK&ֵT-n,Njlpg????'޽lL]>Lcaligari phong!fI%͘DCZB/=R뮯\Kԡ; ?COt̶LpK K 4W}@O{$'޽lL]>L noneI˕XMӍJS9 EvmE|Kc\P TransparencyK fO*EI,SPL K '޽lL]>LpK cK 4W}@O{$fO*EI,S'޽lL]>L none܂dKu=\P $Material Chunk, 3fK .;]kI 忞@"K gK hK jK 4W}@O{$mK gYأC۲+?CL gYأC۲+?b=h0CRf,P 0Material Flavor ManagerpK gYأC۲+?PmK sK !EJGWMppK K 6~qK;2t&ppK K 4W}@O{$K uL%g|rstuL%g|rsMat Item 0BDynamic material input connectorpK K 6gt/^5O0"٢t6gt/^5O0"٢Mat Item 1BDynamic material input connectorpK !EJGWMuL%g|rs6~qK;2t&NOI/)[&|z@*GV6gt/^5O0"٢gYأC۲+?~wC쇀DP  Solid K .F_P#T.F_P#Material Output material __W8E#(K bK n%⟀A}aJpK dK >]zJ4 pK dK J.HE /*gpK eK 8VnZN:W ppK eK ll-#Ez k^pK fK K#uiL$pK gK ,L?D}pK gK 4W}@O{$J.HE /*gA>]zJ4 n%⟀A}aJ-n,Njlpg==?~?,L?D}.F_P#K#uiL$:KrbSxbDisabledEnabledAs OpaqueDisabledll-#Ez k^=8VnZN:W pfff?܂dKu=dP LW Material, 1hK .;]kI 忞@"lK nK qK K K hK 4W}@O{$iK RGψ"FK RGψ"F }R?DVm̫P LWMaterialiK RGψ"FPiK jK qN9{ۡ-~piK kK  7-+AhhvpiK kK ,< -THJ`piK lK ~:T@hHpiK lK 4W}@O{$qN9{ۡ-~,< -THJ`RGψ"F 7-+Ahhv~:T@hHJtP8N.P  ColormK {[f(@-L*;PkK nK '޽lL]>LpmK nK 4W}@O{$oK w$Nuitw$Nuicolour0colour : Shader - Color -n,NjlpgmK w$Nui-n,Njlpg==??{[f(@-L*;'޽lL]>L plaintJx_JDyiLlP  Model oK r鷅wOq=0PkK pK '޽lL]>LpoK qK 4W}@O{$qK  PH$n ?t PH$n ?ambient factor@ambient factor : Shader - ModeloK rK NrsJ+*ùtNrsJ+*ùdiffuse factor@diffuse factor : Shader - ModeloK rK 7N=ILBJ_t7N=ILBJ_ specular factorBspecular factor : Shader - ModeloK sK ;+K`=Q t;+K`=Q exponent4exponent : Shader - ModeloK tK pZļ@f-C)tpZļ@f-C) specular colourBspecular colour : Shader - Model -n,NjlpgoK tK I"֧H%~.~tI"֧H%~.~(transmission factorJtransmission factor : Shader - ModeloK uK S3ACշ&tS3ACշ&mirror factor>mirror factor : Shader - ModeloK AK vK*OK)¿)OtvK*OK)¿)Orefraction8refraction : Shader - ModeloK  vK*OK)¿)O?I"֧H%~.~S3ACշ&7N=ILBJ_='޽lL]>Lcaligari phongpZļ@f-C)-n,Njlpg????NrsJ+*ùfff?r鷅wOq=0;+K`=Q A PH$n ? 7G5fO DisplacementK I˕XMӍJS9PlK K '޽lL]>LpK K 4W}@O{$'޽lL]>L noneI˕XMӍJS9 EvmE|Kc\P TransparencyK fO*EI,SPjK K '޽lL]>LpK K 4W}@O{$fO*EI,S'޽lL]>L nonen':hF% IO Editable shapeK VIQGіF͡TtVIQGіF͡TInput Mesh*Input Mesh for Shape >W5f@(䐈K K tveDCE`"IWJPBL K /nkUCEHLjt/nkUCEHLjSelection.Mesh selected elements >`g4RJLUDK K 4W}@O{$(XFҦV"/nkUCEHLj(XFҦV>g'JNjn*pFlCCX@1@?VIQGіF͡T>W5f@(䐈Ɍ&ٸ*ćIC7K@%T">3?/3C><3?޸G>@v4lc>%]3? tU@ef;93? 392%@%^@AubW?3?ݸs&@(><3?t>692@T>;+]3?mMF>~V@(>K">!3?s>2>S@pwݾa 6@^Ҽr:@s @NҼо@R)>!@<)>Eݒ>U@->+fa @PҼ>>@scݒ> 1>B>uƽ>=s%1&@W=>^v@ =\>}>{@Qz>=>>:>P>$@!5>ؙD>@QVƽ>R~a@@0;79咽>s[94@3]q̻O@>5@{1=bv>B@$>Q>@' =>@ nȟ@nhq٥@䏹E@Э>*ؾ@>a=jspD۸ z>,x3q@/߬3Vx>j9U踼@ИXt~;t>H=te@i >3 p>;r@>3$@t>]鸼@I>J>Lܸ*mn>\r@>ft> $@i >v>p p>=NF>e@ИPF>A;t>+t>o@͞/ v>vVx>X=_W Q6-@>lP߷@-=%Uv3@>@>٠~>ܷ@+G{ ~>@-=fU>p3@UG{TP@6E@ h* 6H?BJ~            "!! "$#"#!$&%$%#'(%&'%'('#%(#(!#! ! '&$'$"'"")+*+,*,-**/.0*1)*0./-.-,1.,+1,01+)0+*.1-/*2435233463677687898;:98:<;=:;<>=?<=>@>A>?A5A2@A5>@<<@5<5::53:39937=A?=;A;2A;82842864BDCBCEBEFBHGBJIBIDFGHFEGEJGECJCIJCDIBGJBFHy'HN~UfbłL:I5*~LjUb)R~    !" #!!#$#%$$%&%'&()*+*,-.,/012343)5678689:69:9;<:;<;=2>/1?-@AB@BCD@CDCEFDEFEGHIJIKJLMNOMLPQRSQPTUVTVWXYZXZ[\]^\^_`abc`bdefegfhijhjklhkmlknlmonmpqrprstpsutsvtuwvuxyzy{|{}~x}8{EE%D7[~            !"" !#$!$"#%&#&$'(&%'&'('$&($("$" " '%#'#!'!!)*+*,+,-++./0+1)+0/.-/-,1/,*1,01*)0*+/1-.+2345244364677687898:;98;<:=;:<>=?<=>@>A>?A5A2@A5>@<<@5<5;;54;49947=A?=:A:2A:82832863BCDBDEBEFBGHBIJBJCFHGFEHEIHEDIDJIDCJBHIBFGZpߘHXOu;þ l?Zx;þ~l?x;þ~l?t;þl?y:l>[_:ӂl}>a:ׂlo>J{:l>SfV<lþnV<lþmV<lþeV<ltþ<þyl <þcylA<þ]yl<þylz;Olv;<[>lv;l0{;<0>Sl*rl?þ\el?-þVql?þdl?2þgVl?A>gVl?->vkVl?>kVl?>]>yyl?u>Wyl?b >Tyl?Q>|yl??pg;?̝;?5;?o1b͝;?Ƶ^;?^;?rZs6ȸ;?666Ǹ;=.?-5?4X;'5?;.?ݏ,C6?7235?U>i.?ڏ>x,E4?>?X-?-?z>5?#4?h;[3?e76? ?4?!?˨,?ݏ[.?N-?;->HN5ԻmG7 Ի}5 ԻTI5Իa58Իۙ47Ի;<5ԻXԻج,?ۏ>.?G.?k-?꯶Ի eԻ_̶Իf45Ի]5 Իu6 Ի#6Ի8F6Իi:E>io:F>i:E>i:F>vg;n?vR;n?v;n?v3;n?E>;i?E>;i?E>P;i?E>;i?Do?N:u>Fo?:u>o?:v>o?C:v>i?-ցDоi?ԁDоi?IEоi?Eоw>Gn*w>nv>ov>aoDо=i[EоiXEоiDо{inhwoM1wn(wo(w6?@)X?(?%)>?J)=?rJ)=?bJ)Q?l/)?Xp)8c);*8L);-č89);K8^);J8^);%!8(-);_8 ();28);{<5?n4?A?i5?,>>$:.?F+?4?5? y/?-?Ѕ> >y4?f+?-?;Й옾^-?$,:24?U5A4?2W$Xi5??,+-?z>45?c<_=:.? /?Ì8"]);ٌ8^);s8c);86);^8{<);S8q/);Hw8XA);E{8F);f|/՞-?ʘ >^-?E/nlþq_lr$>OlIr$>PlQr$>_lr$tnl?þuƼrnl?þuƼ}nl?cþvƼ}nl?_þvƼnl?>qƼnl?>MqƼnl?#>PqƼnl?>pƼ>Ql?[$e>Cl?[$h>Al? [$>Ql?[$Cþ|l?r$<@þ~l?r$<þl?gq$<þl?Tq$vvvv<6<v?6<5v?<.A6w?<6w?z< \6w?x<u?-g+?N<4`5?q?1?y(2?@ޏ-)?E9?U\7I0?%2?_ۏ>1)??>԰1?-?/?<4? 5?-Hx>f8?U )ݏ.I2?!03պ79?T `8?-3/?nּ1wּwnּJPwּyxּqxּk׵xKּվ7wMּ"6x)ڏ>'M2?>>-?S+?89Ig"K>-?I/??j/??;D>>x%?O?&>y?o*?ٳ,?>>;?C>?.:??>0'>%.?^>v?`X=)Q>=>!g!?*>WQ=>?~$d?1p? ?.t??Lq>n>R>I>ډ>>l>N?~B> ,c?i?}R?^-?,?ܱ@>>6?h5>$+>{>t,?>֚>/w>kO?u4>輥>#h>*.?%>Ln>&+?y??>s;?-!??>w ?>>[??XZ=>>Qf? >$4??d>+Y/?>lx?>lF?>,?H?k%?``5?C?r>:R ?s?_U>{m?vd> *G?K>sy1?e>\>D^>?|>d>>V^>/>@(?=t?=NFF?d>??*̦>>?+>D?*>O;?x>3>0>H=?>ƺi?@?6?&8?tveDCE`"IWJ܂dKu=O  dummy K .;]kI 忞@"K K K K 4W}@O{$ G?ŋK tveDCE`"IWJZ8  vK K ׊;Jf|ڢZ vK K 偢jD%~`8ZK WAGK K <ĠF姁J]\K $1&KߊPV$1&KߊPV$AutoShowPanelAutoShowPanel$K -V?XM% (XFҦV"-1OSM n" -V?XM%偢jD%~`8(XFҦV>g'JNjn*pFJD CX@1@?׊;Jf|ڢWAG`^02eE{|@B???? G?ŋ~0iV@KU>x%g'JNjn*pFB BX@1@?׊;Jf|ڢWAG<ĠF姁J]-1OSM n 럆L<_ї08c+KjWNO Cube primitive K tveDCE`"IWJPBK K \5KZWDL&ft\5KZWDL&f WidthMesh widthK K [irH%}Jt[irH%}J DepthMesh depthK K cCN!F)/tcCN!F)/HeightMesh heightK K XxEbN5g'JNjn*pFBBb@ b@?[irH%}J?cCN!F)/?XxEbN5a@P0 }}ZK=nʼZ`Ez]UO GFʠN=p0@7 }}Height4MBLt6Z`Ez]UO1釥GP>ap@P0 }}4MBLt6Z`Ez]UO GFʠN=80p@6 }}WidthXxEbN5a8@`P0 }}XxEbN54MBLt6?K?Z`Ez]UOPN AnqH`@pP>XxEbN5ZK=nʼ?K?Z`Ez]UO GFʠN=08P)}}SegmentsZ`Ez]UO GFʠN= p01 }}[irH%}JZ`Ez]UO1釥GP>ap 00 }}[irH%}JZ`Ez]UOPN AnqH 0>[irH%}JK>Z`Ez]UO GFʠN=p 1 }}cCN!F)/Z`Ez]UO1釥GP>ap 0 }}cCN!F)/Z`Ez]UOPN AnqH >cCN!F)/K>Z`Ez]UO GFʠN=p1 }}\5KZWDL&fZ`Ez]UO1釥GP>ap0 }}\5KZWDL&fZ`Ez]UOPN AnqH>\5KZWDL&fK>Z`Ez]UOtveDCE`"IWJ\5KZWDL&f?4MBLt6ZK=nʼ܂dKu=O Material ListK .;]kI 忞@"K K K 4W}@O{$K -V?XM%K -V?XM%) 6G%O ,Material List ManagerK -V?XM%PK K &zB}J?pK K 4W}@O{$K nк~fHg'JNjn*p՞'fA5-_՞'fA5-_D3DEYED3DEYE =xNT{-1OSM n"(XFҦVLE2Data, 1"J@#QLLE2Data, 2K L QNIM5G&L QNIM5G&BitmapInput bitmap eSBgcColor MapL K "uI̎4)]"uI̎4)] ColorInput color -n,NjlpgColor TintL K 嫈{RMv]sE嫈{RMv]sEAmbient Map, 1Input bitmap eSBgcAmbient MapL K V?icIX(V?icIX( Ambient Tint, 1Input color -n,NjlpgAmbient TintL K +kCY5]BtO+kCY5]BtO FloatInput floatBrightnessL K ~zk⊢Dc]5~zk⊢Dc]5Normal Map, 1Input bitmap eSBgcNormal Map? K y݀J}Ny݀J}N FloatInput floatU Offset? K (gD9f<(gD9f<TCMoveYTCMoveYV Offset? K wkd@Xywkd@XyTCScaleXTCScaleXU Scale? K ĦBZĦBZTCScaleYTCScaleYV Scale? K a$1LAVa$1LAVAlpha Map, 1Input bitmap eSBgcAlpha MapK K })F c})F cFresnel, 1Input floatFresnelL K /1a yDK"zD/1a yDK"zDFloat, 1Input floatOpacityL K EyAS`H5yEyAS`H5yDToggleToggle input Use FresnelTL K <;vHw<;vHwAlphaTest Alpha Test type :KrbSxL K  0S̤@+R 0S̤@+RAlphaTestValue"Alpha Test ValueL K  ~K޸2 ~K޸2Float, 1Input floatDispersionL K DfTDfTFloat, 1Input floatFeatherL K vqEH7;kvqEH7;kDToggle, 1Toggle input Use FeatherTL K Ux:Gي!\0@Ux:Gي!\0@DToggle, 1Toggle input Use DispersionTL (gD9f<L QNIM5G&eSBgcP: RG:\TsProjects\Textures\atmosphere_sm.pngI?'kLjW99xZk]yˀ \,٣Lx{RH5J;saen˓d/g WM*hٯ&oy4wɬ{TM&j2nWQEsSIf.=r2oYL[d%lIq2:r:>(F&l2 笕OAoBulT̪$CP54y9KvA7m-لd:O“tN_HV*Y.U m=]dms3;<߽ __ÿ38KPɼPd;OƽZڻH^D]z^u4\&U2Nfd~Ld~GZod#=uId~,AsNַW{ ?MM~Tfy1nx=%o-P6Y2ɼytL%ӫ_슞.IXu׋QR<~^^ATHAiG2g]~&ˠ5i H#bulw6 AE#NP~ @λ~YnA3RkҤAS< gx]5~kUx}l' @D]*u`Dϗ _ % / ز O4p^4%ӠI't 6`ԫ xez& ? ZlZd [_ܣ. Mدk')=|d6^uxy;gľ ?6%? `~!^~`#4?% _ cboUuL̷ylG96O;KEe緒^?>D{DokVxGI e_:0&wn (d2ܧ?:ùg̼ WeO>d|^))ۀ)6`rbeW_6.߳o { 8d5?G9wƾ|#5ڄaܫ]zr*'3ִ]רszEHn]qd^{@7M_l@|G3?/y ]hXGh-r-A}4zg7<@'ɢ :N ?bQ#LqWf߸^QKwƱ/t{+T O|sS= S?AoSĸr>p?.g?g}:H g3 ޲j ."xc|DS@ߜ{ǸKfu[Y[ЯXiƓyn{i6cWoz_>f ɶ|yy;QaWl-C+x5gqL{)ǻ$Mkb1.Yi~fZZu;;PV[0V[p}ـzx\ }~-i$̯:J%@lGgۻX_һ][ P?7O~'$ ܹ/׿o]|c/>;K1g~t'_ ==z?x_:5+ǖ=1E1I|YJL!f Xg88  T߷ 6<b֧3cs)oY\r 1:Vs>|>e hWX_0P q6`6pv`| z`?+@̲W 1-luK# >g"d;@}M/~Owyx"d-#Sow(6{+;'C?;N 7&Xޣ9g;w~}保g-O}K܀J)>%_ 0>8V(gڊ9-$@ eBl5︭~dH+~{?1BE%H>KSt@mlPK,7T =@)?.qDu)?K}Opg[wPvBǶD'@[(3&A3>˝?p/^^Ώݟ7QOt3_lMG[_]nدTsHQ.YHc~)J7vO=;[ٞfTVx _ OUQ AgT/0Gg¬GF"=R?gNkKNbsLۉف s3k5?x/b>rxqCrAWG?P}"9?J?ۀ߻LB@o#+`x_ng$g~ADo2׬ pPӞv;?3׽8x) cqψu`:g;|wO*s뤹.|,ruS cvkq}s.cm&a9c"` > G0zUUWP?7)fF'? }Ve7w 7d{\};5¯o06 _.P$-{}9JX-[{[?5I&hψ%ۀU}G Z_B5fd]3?a-\+k)Cs1-yOb{Wzߵp/_{Tt??hmmtkI+XO; 2KlE\t?b(<~?jWYzO/v}ο_vWPDZC_?9oj>3cj^y'I">O`XPkQxlN[')_ Gz>pEN] |H=',߼b\dg~!cLTc&Rc::kw~Oڂ(_™/qmQ; 5G1l=k7|GYĿθ {~LDj~)!8_g>}N6swI|tzO Owǿ\e# =hP~¹ c€/ 5>i¹)ZӁ9b_yGOb-wzmg=q1OICz̀{HmH4i'/5??ـo aᮇܓ$gS/p{T5HqSc؀޹z`/ҟ/ogo~6ǔ7.O~pK\* >Ges/<1S:}M?H$g8?¹b?۠3Ov uØ?J>/1ϰw* C?q=/~;Kt98(+o>#POFZH~Qi3#zy? "LT?:ecoO?)u?k~d_97?y0ٿSл?FTP۔0v6l@S 8Ą)V(QS<߿b^li,y)y德3ky0_E!γ?z>PreYg$\Yw<ߵ'NJt; 6hbO;"O6ꋥ[C~Ú>6>.0y6gޑy-io) sU6W_.~a.ly=Kv ?C?؏~}}suFansJT]Lc7h\rg;z8bu/0G>+zQOsJ#NFj^Ad>UH?]5qo˟QcO?ڀcɝ5@WxV2|-M'99iKl؀O6lyfPq_\jY}U$/Aρgd8ya=pv`{ c9e JmTt[^^fM3>f{{g>}pM-[9ňR;+6@f{H0<8e{}{sӘ11:G_RWuYuwO#w_6@? O,ZP{ #-~:yڸ/<~%=/ߦu=M/`\YV`?Uc?Q/(^mX{:.>pS߸mKWb~>I_U@zmvIr ky$VgWh]~LZuV}ESzL*_.@q?Ss? {_t-^65a+cbvI| @\ ooA&于h&RN]@jħ-Xok$Y8/iQ7~!y _}))o<Ή'G|NRcvG^_ا3' o!5u}=R.u|ֺU8\ʹ,?Kaۋk*)R"}rSvy>J{MK-9G_ϖ ̺':J}gjq_Gt[Ir]?O` ?}MP>@Νe}0m />#Q҃k_7s>}zF;E7 G`~޳dk8Ù:O?d^?:{fsc1>ߗs_HTF5Sfw>z8{pNmT{R U_)^'~ӬjUĶ/u+m` hSgy(qX)\sY2kͧs3s6 4@uA¿&] 2ŽgoyܗuG#ؿ g}?ـ~@|Yw/3oy?(֟xz45d>^T=$xe=ᔮ9v)ްZwڃU,P6v;7__*4h%h}ɹN\~6JTN_fV,?g 3;s6kzTfkbu v'cR Һ ؀+~[t_;"DžNGbzaϯ_sؿ{>c.jY ?%G>8H"py8j{`E6y>-o 0;p7O =՘&)G6:OҳQ(1| .X|cO\ߐnXc"?lJۓ>Q;,EFc?F-(r{P%H? `|y"5ާbISZ))9v6fo]6%EE)1/'tb BoXιĦYFЛ*=5MS8 fSҌ~kc#;@|gt' g>EY'D/hw#!?<9`fNHrT%績O!>A7}>.|}8E:I^ryS]3~MZ^=D`Ǐ=فw߱SrcʟOBA#wHpL_Ջ]4I'M=k>}|ŧU.Oyl\WHWUk/6AW.9^%kY\;"j *KĿ7Fm@|DZ8\\k hϔQ:88fovՅΩyl V,K7X;9sEk2 ` ~فڀh 2>9%.[/=127>8i58ԏڌ& gj8}׼?)?Xx.> O/E|yO31v5#UlZt0pI)˶!v^Ä6IE32(eNEa6oVyaޝ3\o)Awߡda=JؿTKf:ہ x~;XFW`smvT<`S>#Co$o(?_K1@f?Vw-ox1 ڷ7=!b>,.Ox L'p?Ez>`c>Os1{l@Z7d~ ~?>Al޿HX#{ ~c?Y,g2ـc7__gYiW}!&<~̏U,_3L&=eY}\]{ @}a.҃,6 L[ETr v&?t6 X+Pێ5gkwR`Ŕ/PP@m@RyGg ),=~E” zu2Ȭٿ{͗71oԹ3>tINPoߝ O½c#`PF޴kɽ3w&ȹDak vw}^c{3=Ωw3dk=`pA|HˡbwynWpF~f 6  ?A7@1zmo@?ReF =G);~^{GǛ}߸80Gv,+$;ӗzo@+'mEƏϬ?ؗXA7*6eڀS;`;62=2HgvSng';PN@AY™8:s){^ۤy@~"R %sno՗Sf'f x4/XTIf3/u)1ʨyþk?]L0=s@iR=׭=6ҷr=0/j~ſ9to?$pgŨwg=nv`|mMܴ-:8oߡ2s7C`1&zb`_2d7Y5yOaB)Fw֢ΒYϹ_{jԋp?ۂAp h<@sP;q_~s=U*\y@:qW#6 ˽Y/xϘ}?56q(Ϣ__wKsv)"k_Oo4i6v`" b~&5u^FJqg@Q|1Y/%Os T}~<1jx7Yf6gÜk֢wFܜ$ymsAPhxdq3IV϶g-@KdtP3_?:OV`qӜit?̾D^8w,/zeyOozҙC״-ɻY|#ޛߕ}}#;~GRۡv{$]L=܋#uhw /-;i|3X?5H>>OJT |ǢSp< 8E?` ~@G\{f]k{+:~%{:\`֘_lف?E|j-%fKnbfhɽ8䧹w;hW=Tp_RI%rAH?i?cx=ʻ #VOg+e{֕#=A}!6cg/pk>=m@4ț~j @(9\P>Q x_j~<>Spv>9=ސ=3i~1̠ u رb(cdO1~j}b8w׌N3[ٿω_z95e8\ y3#6'wG=Wnn=+PoƳoEvtq^_YCna(eg&Ac0H끸'{u. xeF8p p6U@v:`P9yW%Yl@5V[X}Y׌I싒y0yI>בoѹK ؠ_j֛6>=Os2pJ`4i' ۢ$+ebߣ;[1}%3yoԬ{j{:{bx?e3_ؿGx v#3y/GZt}}$:2;.I(X}6 \`|ͿI2Ӿ{>lp?@)xM?Q_0iҳ/6FOpm娟6{֩^r67#'@v V[Ļp~/f3пa,4=R3bYR~};'b/(fXF_a;ʜ.S9=Qk6,TC_%RTx s~w@_l@k~[ 9 _gq"؝zmV 57FGAw|=_;)fv&:qD/=myFv/HYL( }l8psM ŏ8&s$c^r _ϭ~%s׳%ςͪn`~4x'3yVϻݖZـ̳(4K3O l |DN=}G:4+N.lЅdyMUę̾r3irL|}[.~/ o_MOw+.%L\{Ttϟ/?n[_~.5yr3-,7K޳=x=(bG!_PO\; 6jWt߅Ƭ}2Jgtaӳ9{6`h6 _f?1x0yXXXu6`o/yE9=-<ьó#x˝e?q abm_oy\ڱwYuŬǻ#4ٿAwqs6T/ 6{IrhgI/=Оf\m Pw^IgHK P Su[yl;R_9; hqnO'Q_=)?^ xV]s? R[/:[Nom@-egُ߳os|~?/i{ؽ`M6| ҇??ѣ T|GU.|Ozlau\wͻN lBE=ê ߬?w,>Xt x:yz㙏2>,|Q}|x&ڏGQ1۝K̷\yI3Kos)>}uo6`q>܎Q5{\b~OGD'xo? xq1Xc-p}W}lcx(aY`e}w }i~NU:$6v!P-[j1|=g ,OxQOr/|_d=2#h^{zmRg? KdS6π"޿:_97/5~/_)p6Ҳ{14;_wf5Osٳ 0?$?Zǩ6D-4g]@H5`s/ ?! | 2|`=[6ph֕ށi&A0! yYQN$%_wf.UR*- ed N<~wo}>25B>6~{n@S (ɑFc;{;́,gf:Y|>^9 "ZyeZ?f;_kkͷyD2b;`m-_ +>=k7XnR?ue(͇EWDqʵƚNJn^M{T|I9/6`\ͽ \ٰ!ṇrܓ$xz8گsu;]еG>Eۘlق;`kQKvnKYY6}QdA? YTb'? E؀xg̬?;Ǽ_o~9'C~Ҷ-3ǹUplcf%9ܓnF9Xό9ox~}Oso׆rdL ?q}+dyj85|9???-Y;_uBcggf`^Kkf P]یgVџ/N'AE/ NI0pw}l{n9G"6ۈ5JGb1޵<@N@wfX2r/{spLVClצvu^X򳃀mJX:CR/M~>l;Ͼ.#~-7[/^Rih.ƛ񼁃9jItǪGw/X"`Obq|c|b{pq4Q&?Z`$=4,bg5^w~V|lVмgv;IEIޕ^SAmm\r/[ivyW瘠y}TJv=n6~sYCFr?r6?mY͝b臷y>8z"iGZl tI3EO3$g_Ym4Ůz,o*3nlQlx[Kԯ6q6/6PLu30Mlqx_YNuK~ ` 7<ސbX|>O:C!pj%}B$w㻫R`TP^x~n6 fq߹hd+9Y/F[s|ˆ]!t@:ʎL+}9C}=z9g}xL,4V\Fkܺ\4vȞyYOBwy9Hcso2cSao흓9%JǬ0V]? .jLpr7,:zC; LփFk1>)O} s/]ùؿ 2m`"(.l DA8Wk6@SһD{kTyC+z֝.4J`;I>*:eҾ:wѕ|}-s~#\4 >-ʕlNQ/,9'{/y+bq\_`~bÝ({JL&Җ}J1C}&i+>"?\xtzgfn8<)G`\rSĽĶ"+1]W*asw+|ܥ>b|x7_):'/{o P><ہJl v9y^q\ۜٙ]>wʭ=Q` 4p'nlw)Y]1vk$ 2ײ[_s}X~pwxNPcusO$Y8W6mt}L u̦xw6dbWg*™{O8Arњr%i vs4}?ǢZ{ϵǵ8`3!|my?|^?clLw(*K%q?PCP]lAA@$v (靂w9+rKsJZD۸[j}ޜjϴgbˑ./3g991kڡ~,^[f)}e=e41lw6 Er/mtLiǹf?/9 9^~ݸ-6@{0{UQr=%WKO@;m= QxGݺr/"xM': (0x_ʾ1ܫ<]l+;YFuWHM g?|žƭNܮΏ}zZ ˀyru?Ӷv3|G'(:I',7M>Kjvſx7yMg#r[n;ƿ؀Q;5L{ղ;'yXO М-uv0l}s=%5 2w}s,,|κK[ApI}BXsM('[W;@tp ڀ .`NWWw9Z8obѫMX ak}p~eƚʑ{J~sNZp EUw?"Kk~?H˥7TFw앝a/}~:#Շ=nP,:Cm6)a(6|)xƛ~C6@SPGL;j _#s/1`^;.u{ew(e4'|Ω,ـ|-ρ2 &3::ĉ06< CB v,nq@Թp|8pMU4-> 'g6+}zfx}?edFU8/3$n/~>03[SÒMg/N.ֈwHļ>ƿR.u_pd3gW9A=<UfbOafk p9&.t\@g݊֞ Pw""?FDۓ~nIjf%f)~]٣>{P?jƽR6@wI/fz9 K})V0͇~1^9nY4s9|ID;c|SdÎϔ<;(s;w/H_NRVbov:R(hJ/wbJ)#+ȿ!M6[sѾDe=]"n$ۍ&{IXzdˎqqVJ \;٧ʇRk;@~@>s8kesOO{: |\8kc;|+>St.J~ۋϿׅN>xr3AwQ 8>UKﱕW vؕMº9m'ZjhƆ5 d<q+O1WE6{`gE>0t>>ˋc]Lj+ Q5o<ڀ [?1R.=秞jXY7ܧrk*;h {v@f;YߡvNqE{Rs6-ߥ9rs>?V-X߆Iz,̸ktb3{̟yS. 8hY])c 3mg<5VSw/: F3^ycw><| ~&r<2O \(5qR+%)/ȽXxC쯰OkyR?Ov [kb-{9 ;}H_ɜn Hn.}bo{>@lg}yu!î"t6ՠWݲ܌ʑdq'}W }p#yz|݁]*D~w3FAUM#;hwۀ+?<^8kil2(d ;Ge77F6gxW.yԷZh#EyAKLI<_b/>2|Klw5'JɼϹMEP4fG"OrYO{~N=Ɏ q;~m&su{nJ9nyF3lJ hvynx߭?>> ؇];'_Gp/t???|._c@?Co!V)px?JgsYWEi{Ynr vx=Z_~{}esy>9O]"ˤJFT_p1HPU]7C³]+q}ƀ3Kez0c@˫xi{UUdzwL:\s_4/q8:lP&0a3|g_' yd??N!#\?SkL ʽ|&b=To=#dyYa6ͿrOUc~$w.Ž/5U>A穴N|iqnߨ%1_(?n;@>|m3O3z=5S퇠RPNlM^o~!qř.?"Όe;@vv son=!]? f"ױ86E8}Q$s_9vӹ1Ogm?s_0q~\ ^̅Z2"(WgHO_f1||RSqO-鉦zm I4ս&Wh,3be۞N[Sg=K1:h$Oi=f02G}9JjGd.5v8av8'g~`2O= yb0Κ?w?sחWCW@ @= Ux5`}PX=5ml>3;uoe֏c>KZ(;}kvZbgӎ 9}v|\H~1湧i/,/}2C` \s_fE._<=_ G{ju]hP׳p=8o 螓)6`y@ n\M9uȭGHuf,Vˬoa&~Rۗ>c;TesUO[~]v|moxW:î?[g1s`)񾪿3a6@?`{|אSUm.Kf7J&ӊmف8>(y@_+Xѽ \c9}s?ܻI?g7iĈfYl3CenDvA8lrfJbPs=M ?12GQd,"Ϊ{H/zj_:e7"H+#)w_]u6 {@YmXM~sތ(S:~Hή/;-jejβ`_ { VgԢ ɻ]x/¹3>%6r~Owܽb]`DYs|zg؀ d aQ?/P9sC0&m?3Թ(j|p֏;O]ϣ8㱝!9A:O~}RYTó*zA}5 l} ïK<7NxIMHL%lZ\F4oʽٗXo5e~˼L]KK!>./I`s}|,u|ᚮ19jjikߟںGl=ـ]}m_XOHUt狞F;}?w-7wO[+#4Og?zoY>?+>*_GgC5v==i>3xV1;= 3'㠓؋{Edw~oh;6wz f.=#jy 7&_C.ulgD3gȽI+~+λ ^>pIvՆ9gj.]KcVacf>ѲG}wvҮJd2Az'jq?@l w៸gmo߃Nc_؟7e~_3 7n=-?0g}>ݽ⶞e;@L\{mWV{/8ؿa侞A#?IvPq3~xdxCW%z9QEDvi4w._Xխ>:q?+y݅;dפ$[s_X LX@x]]]nrTwͿϲ-y a4x5OpuX/wPK#Aܣ&[w^~zJo_o /߀G#8>G#k ]f18$E(6[X7NucWr>;#powuX}M/jc|;>ײF 97IDzM#2ҝQ8y3٫ճ>OKQw`?_lgIl A5`tF(gGޙ@^Ȟ;s-B >=&8@.eXٔ rWoߏ>9K{OcО=+SԠ`ΉpGs_ I|o/c]C,ǟ7 ԸYEby^l700-L>[2S19sWouOs|1+Q`~KҸ˻6Qϝgi֫iڱ=4{>g7@gf}!EdE6\Ք{;>Xgݝ ܃_c1|6 _\j .q0cEFX\X_΁lZSPS8B81ޥz6G$ߟGf+t}K Cw~d_(vU96!DG?P3'? %SHW<ό5;Mg ?IU{}ٿ-%;0+\I}-Z?X,P/FK"-cnTSuBϟxzg`q?Z#ŷyĿ5s4N3}֙-xs'%0y^;ǝa)d%.<tE <p7o:wխ57'G=anQb x {r@-MBO i'fh d\vhrNwO\Zc$^e(J!J=\065d9ti7j7 _#+=W?}Ù_UW7k:cs 9 оJ4WhOX ߀oI1@S^M#xvkߜ3b a4l_6k53mSﯞO_O /^@ /R_y&3+!q@ j_5V5_xeb~}{9/mй>y83 vy@5zu _{/;gW9 s5?'Z4%}YaAcM$b$sp9/g"rUqް`4λ)wkNp'Z3 .[uTcI,]_a{ט5@ܤp{[Sh^o\/gi 1s_`?q#<ǁb_)8<npo߽e¯3Ba`e1s5krk8 d:DJQMIocs *.e/!r?x|?泬sb.c zKےq4CױxFP(ܩS._oQӜNw S구3vQ}~Sjz'v838O0'gsO?O^S p xĹfokny_E gߞ 6 ?cdxo%,XEho!U:swFd)5grWoAI1@.{Qh+h7?_}O5A , 49A?Fwי+8JK~tܧO*{sߋhi%PY#'S|O5 _H7Z:[x#i{kq(i] /^$ Z =& KOkp7me۴){+ߡlJ?|]>CQSd;/ZwK,#<=c25~⼠{C| g^OJWǀ3x;愱 C\gm!4׆ACh+Ǿk:A-ŀ% g֡!{Nmtz翗n/y1k){/oy}){v+EAhQ[g8=o/70#_1=#Qmcwdg ܗ >S:It?F./%&)c7Q.^PD?WL0> 5{ :Br|oC${<ǫqV_wPx' q_#:S_Byds+r/}K\/ݸ9_C/Fۋ^e ~گQOF1w/hE&~o; LiA/_uUu//}خWh<ë(.`P 9`R7.~EYލ>žԩRvpCs_ݑCI}GУl Go)l^ £]O9C|=讐 ={3}< ѧk_}? {M\_>:a/ꜚq-TX g?ke`#%,ks|ZW;zzU_x#ͺIWY%ft //s^G_yziv71@@Ђt {Lqo5ǭ:-CqX>C:}̲k w/dGg,q{cf>*ʜz#GkNy>Aʢx?1mŀwC%;<._^|M1X<-\:KQg,*t~z?qI̎\Cg}Qkwu4 s{:A3Ta~1pI5=~_Π:%S]:1uwrvAձQG{{Gvyq@j:~}-ߘܯ܏uR zU;j2.!2&WmzRe&v=cłNQ:+X XͪM_90%{}@?5\{?k>m*q?}{{7&>s m͑f;15 9>][}2zoBnv\]s<hy ݾ 3(]+/\_FLrTg+~뾊hV}-n]Ooc35=Oy-#˒E\߮ Ro'ۉ~"qr<4*?!q_K-wE^УiX`5~H7忞-oK\rZ<huT&j>^Kxn2T?~/ń=cFe0~8˺xGb/rxzwŜ~!9Đwgc8Nߩs׹/yׅz'5e&sHzhb#X?n_J1`~Zk&! V-Z@͹;WQoyyo'wsY^<ʋVexBo߻m?½>_YLRZw&\A{NM%'f1اQi d層P@}FKǽ^r&p<+ۼӫj-^c8Z=#Q;/zQ9^8~ÌO1S^YOgvtq_=_' /M-xk,^)4zq__N Ne1%S/{ |i[FwxgAu dSsM'y?aD/ 'ƶyyb/VDy5] ?'x|/fs⨂ΙjO{9.dG>>tg 瘟LOoׯpNxhU׵댗[xk8 P 0LgQxO<)?:>4)C-=wԛ#FN1^Ak'Z ])RwRt1q FlS_=cp^]M-)[txߔ>`x?&?w~MzsZL5q\}滽}^߈}ߋIiu}1kl%,"o)?fč1/WPWW<5ƀ)GR3~z=5A_?ģ`kH<"2 g7܏⫍<]f]'jxe l:&hqx=NsF;N>]{q%p_|HcLzr?9;9}urxm1k}js_X 1 _wC?2Xo(O>E?/sk7p?#~^H~zOn=5Ss~=O齊jxmYr4mrL/:3a5݋m/XeU:AQ+=> %k)Z6|fqK{m^sڟCQ+osr h@ N~bɭN+7a݉i~13bg~85y\ ݽh{9&33V @wGbay&sj73 QSXS!ߜ) CzظN Ù݆N=\ 1`bSrGm-M&q0Qߜ|jg"$ e>T@!=u?zlFIM]jyLw~T{&M9S+?z=՗7~O;鼿`FgSgy4A|=r<ؾ ڃTxBPxso(z9i s,1y6g8pisv6_̿v3;>oljyޏ|/I޿Y]D=ztȼ3C3TkwBU]=y5{⽽?7 mMIJ{ݿ6ks賾0YGO3;>DT'ygA. tH,k{QMu=n+~o+f|50U2 8^fۗzb ڍktaz+{'Z}){ yhk_B3AkMXy?z!A8tV=Ӻ ~lM׾t}>S+.^VU&{.׭,^ uyz^>VùLG{`\/{#3aw[}b<,w&\_\s^qO=G?{!Z~n&nw핐ދ^7p>fg)9oXsN7\weydgy 7y_8~sywGA(hܮr_4ݳvO'ΩT_ꀍk5eW|X3ߵYeWkWl^:Џ1z}> Uk\=ӧRW yuw4>bқ/">drmPҳF5_G >r_3oa7NWjǁT 6 3 ^E?/1@m[pq[{3nw-<糵|nR3:ПS&~ѽ1w i ^~'G12hk :g<t> chXu(S u ^]\F8ݗh? mˠx0{&j9a ;^Yxύ _Bv0">`0.tC80ǭymA; `?kCCp=2}U/\Òc@5йa3@iƒRcm' . qem1I9A;4lšnBw\9|?5^xMm/X=fxRx=w]\!~Bߋ1q?I?x(pw@_< ^W]Gܯ d5{nwf ~ ^_-rjoGgIzϊA$󂝩%.l.Fb?gIbtxK Vl&$~+7k:}!1 >8o/~ k"OsiC%zIoUg!a WDX/Gohy3}cVId3ׇgYA3 }T,Wqm15t'1`~?yFn< 9{x/u>㳉D{Lό4So'' 7TSIc,z1:XWd{?lߕ̗oGϪ%s>춌8#;m2pzAmqbUг@=Èyv"/~-FnV#sf y-|Tݿ au#T 34F;ѮkEޮ :yE*zg@|sgO{Nwg1@/]O)|')ǃy/[.cНvGqʎ4m9[4ix*'?ވYHV=!Ń|Nqq!g94@cu ,g}ܧ:HtP㾣gܿn"/)Cޒ˹_c#I3QdLǃ.X3.["d =?93/=xz0Є;?ܣƞhџVtX;ESb ?ƀ0*4=L- `S7xz[vt)_? {g$3n_ G;AOs;M==jl(ӻn/Xb on򛬗sY}Sp?$/Ë?ː,p_,Gg~ߜ~{7C~$xQdZɯ}뤺ff]c0|[63mP1=p_W?Ӭ?rEOVŁ~as3c.nsx<3<]n*=.x4=c7"wHh'8nՍ@ZI|Y Vp?gǻB_o1#D C~6GKd@mcwys_#~1ul#h7g)Ϛ2p^r_1t&G@W1=Q6>{+ 53uQsgwws-$Ig$X,1@LLuT'*Qm,9Rae6WfqiV^IM;r~yE]yyq•sYH4!|TxZ[c}1wy2w{2"9U{^ZKǿ_p6=Ӽ_qGW8kV~VO05^bB) &$ο Ɩq^hᎶzOvnj{s7qqcusu)3 3O5_sY9{_b| /˜4q'@h7>m>bGg{"3gfx''sCC#uծ|ǻƁUwo<#N߿2}rs?39;Wm5v !d^RćNfh<㝺.b@z~{ZTW1 oy|;#qvϹo8g_<ߟrG(%}1tف$cx'뜴.{ GsJgW{ ҃!uPv'FB0kyq8؞i1h_>hOg]/ =4*o7{B8Z}cvq's?rs1_):S/skzpS 0z+X,g%}o]ѾjIx~pB,Zh>ŀ{'y/b9P?Bǀ}4_T$۔ؼ`sXм2Og15f !x{KE3m|bswຓM6RMĊ uа3ߒ.Gܯ\2/݈pg/wHO-/ }>μvgkѽg~p"Xcy&({ ?O~S3%|V?T|% hFLo t.s$o 0!=7%s+,G1%9GQ8N 6Aq{sp$ iteY2VrƏ? 24$vOS'@hYDs~g~x޷:7mn`E@_~;#t! ܟw}A; 12=Xb@ ז|ޚ{j hP 8[U1(_vw+>XK'&ƀ5?x GM/?C?-=2ԁz7_{)Pߥ}(cqy3}ek3k~_%s?qz3quR|2O~žNLktHt;.OB1h!}#l[w7'hIz k{_BS|Oo[QYg;Vji=mcyY?)}C?5{VeƤWgx8av_R׾^1XyS`z7qV g$xSG-T= н_uj=@\+{nG:q=0~?jCA\ϋͽ0/71<~(:>\}-K7FQ'p#Uw op ?aX 8Iu@p̠ϟ%vt5 uSϸ?-㼓oqmg?_ϑhmQMk='lBK5u7ϣ=>aw}=a~ 2s-rT7}Wx.j/;y>_֏9_>[Ow7uA使Gvmwu1s+9_?yc}p$@}Z»VhQmH72!N>;x:cH}Vpt~+f>M;x ~:#̇f p W\Dџ.s޻4jg|Tɹ i}S}>o.#q!/~ݞ:î1o8{vC|[qb zMxVcJ=+=ogW_iV ?S," .qܿ=ܝ￸?93^ wSl{ooc- 1`_ע9>~v`x ?|)+44>>V^^/[ݲ}ӗa/-S_=Zk| z4W+@?p?7~7rw|3Ҟ^tvOx/^2C YEMu#wݛ)QŃˣu@%w9Be?*pxޟumWr\q j w4>%hm9y_(zCZݫr{_ͥ3^=+z/>?q'py3R_p9u"%h@wE;b¨%u;cx)u><2}m~?,>TU4l aͮwC__=/y^m3>W'^<~ / Wnkn^ 3ؽ~?soq=zޖBmZ:5JL׸{kK}OC>w:.߇h>ǎp^ae;?_oIKs=ւ}QKSЗemIN>sb˹v3StW{H\θrqckCtj\T<@}Mk0{9>rZ:Ʈ}f^gԋd} hN3)ǁ/:k~`^x5Z_=<}5cX`ؽ9q?!R's{7ŀg~Mj]׽N{gooW}\ާҫ#onkr|o}Eu:g߂u> 1Lu<ɌP?A׏u+m,q_x/;s|zϝG#~ȿT|ZXC!비G}f5gq5«0C>Xyg["%owN;Sk5>v{怞#}j_fqz=qvd}ԏBa s j|K;elϰS|~QGkYkK>Co&yM3y/^{f?  Vs-75#3wsO s11@oA~ s'YiMnw.ҏѾ^9o^e[p?b|~1Ok'ƹ9=)Jo̯[5om *c 83ˀ.~m_5C}J =>33_<P Pw~'q7jo{x|_c;+~2NcjG2ywV+>y_'Вe5g/8}kyx[o,-SNq#mäȸk+_3Ìwb'!*|gط_>ׯ kmи 1`bχ,{Aýr_s3wgoO\=ԛ=S1 zr~@k,z怢>D;o=?sk%7ЭR3ӓqC+va|] >D #c7vVnkӀIxm5 ga H0p#N;,׆ݽ9.s׺Dž^vh7 nUUU~se1Jb4;Ls4!nl PczC1``wp.W[%/g'd<:ٿ?}7> 8fpޏGWͺeM|x~)|6_b@-yok;q_?C5=d~Ł۞u7;l fax}X"us/lWoܿk/yan_9>t.)1|HLJ9R]|>GɃp=Nā<xmcuҬ}'^QC{F!7nj+6*WAk; ؇/ g{=>1Ab/ߞq> qO [fOf8} ;DhOln0 s(z_)p.;r<8}}7|wջ^=B>("zۗt=#ky^+3;>,_3ä,m/x/qࣶ&ݑUJ 77_Ɔc|-r&y}o/3Ycl&L#}g fe&66?vn?z1W%<=c^=mϹ_Bнrr}8=\r~glO-^):W1iYG"7#":BBB녬1p)h>0;}0̈ :W }~PP cx[oۡv42ruCp0- f W-XY1vFjM6 Ac__g?kXG [`?[|$@v'0Qf҆hg-~޲K:u9 :; о /[c/B/-$ig(  G=v>o3FC?^ݕ5\fsS<8tq{c^G+$0r%|O >{?<(ޝ${@z߿\V|/9s>aS2# 1`3G8a;y fH'|/ =|O|[8'EwyP{z/zgs>/1s~Nu??* <||21\+; }O:Ð%?s?b]i1?9Z[<{|d~қ>>2vx\odݯwb@^? Ƹj^awPOy?x'q/?tg:Ozqœ|Cǡ_2n(ky?O`Xsŀ \_Vbw7/g+-W&k耨և~AWku{\Q>\3L5ϻEy!1BO~Q~ή'{:kds s 7{S*aXuusw+|.;+}4&.RW?ǀg^s--MxK1OzM`}@#NSv/|_ŀWvxw;e^('?+Hh\=}}qg9r_1ZWp-x }ko2Л\w-]ъQn8vq˹81k4Je M-ձV-޵z|^:`|t;yмэ{F}E?TP x7o}? O_vCE,F1@gNl6(>(zGb_{O-s{[vjA{:x릑x |OWT{sjfω_rOWzF83 #qGY5LYj8=0 ms_ =+D&ŀ:bAzft1@x-؜]ƽf(o[Ow' ykO> S=.h!aqN7<[w\c%We1`^,` 3ݲsu@>,Zz_wvkrU/ }*gq3*MMս{is 3nH/|._@!#l`}o,=L7_E<_p^g+벋[Y WNDW+1@?1`{{wqv>cmg/uQgw]]vc:q9J:- ZSg_O#OҮ Ҳ|8 O~m,`EeH45YW3ڶygÉ}o u1kpN(29S75 !ҷD?{$#cWL~s>TN^ppb!eHFO#c S-ixGzBis);{=K :C<1Rb3bSA3)FМӞ+&¹y_/rн =0[łmtVsCww>:Ol`^MлN B jUP*H`1^{=ֹ7ۦC}.'MS5鏱h}#Xp/@D_~~`WHivuײɠ6 G [ _R xq.>8"uw(l{3˱:=<H ̖/vGUK "%8gZ!˹=u%hѠy>C ~{O!%+;1htæڕêu;{W4MI5(E{ ~yIcUſ#JKPRO`I<Ŝo?_s 8z! tArmmwnFAO:t˺?!5אܛ[q_UGuLz_ADU]y}ա5|GP4o@؇O& zڿcΚ6u^w ok4^d:5;!Xur~\M50EtI̓D{Kc@v'5Kv6>aC3&1f;vK16 TpAGڳH @muBA5A3Ve4{wI~ѽCi{ |nRox_ԛz~ s/W"@zZϵV9vj];wU{>8& "<0 R9{ su@z.# ;c?p p+w==H r]fzY?2~9xd|\N8[8wʹMk张|y'&N/zq%`c@ؓw=q;у|ޭ{sU/XW7=ݓQ[>ڟ1: yLY ^Wo<зkF]g8` jocǀ"#&_ڠiz)2>$z 肴ݽynB t_1u/ }`9l{?=B-;˹rgy^;|O5fKx?u6 B- 5Ć}-[3Oz_zO8Os'Oc(=aWPMb@$'ˌҼ̬cfq`VYiiPu@P\Ç +z;ߕψs%# Mbi!6d]|Ӡ;zs[ TkKbǦǵa+bV?>Mkb~#ph=ԋ`3ϣ;Vj$y?xٞy/!3xGfwr1N:{?syʎhǒ_Lߌ{K8U{WХ-Z Gz4',:'A@5OGw ß, _?.:Ť#:Fc[ ?1@cpJӹrF! }ZA5qwdzp3~ח%zޙꧧ[[āLwv6&r Qs뢍?W]\ι_Q- *k깩8;0^̼¼z% <+ {, vHw4#l8pq@p`0\z_pԄ,zŇxayKwQ:g{Iyهީv7C_w+{[-r_gdg}ӓ0]zWvv=9єwmV1 Ř@o ^WR%ULqޜ>|$'4?K#?:sn'X] x<$`L@8N@aӘW0:W `uN'/ݿg%#3X{Ab/94X?GpΥƛ\R1vL#[%,D}r[}e#%v}0C~zIՈVݪ^aW"`= (Cز8cżdyC<`{Q g xR<\/znw'y3wK!a!e Tmh A%<<`ڙn#{0v5mO4^%:b}\݋ݽJ 2߮'g;(zfYn5Ϋz֭ł_ʞ-߹?^svP68s(xOG<7r^r7zr'g9CktcSP/b?oLAJ"~>9s-6.1@EGCX+|K}ػ!{qfL7ܧ_ӹȸO!yPG}~zy!l ꀈToqu w-{c?A+ǀY1g#Ɓ<&'Bu^xa/i{v;@sN!l\e?Vl5}ob.]߁g7z?P:QҖ; bs'b];qD7P<IeI@r7W=<`s f<31FxeB,(-ap>}}{'Hr}1h zE?=dTɚa7:DsM?_{5ZQ5^}Xq/.` bnX(ƃs#5n嵖w5Hyc<7#B=pǘm!}43]˫O[ q`K8W(ڰ8a-*Bfd2_]ŚehM&ӆ56x}u D-sAUOف7*I{z=Bމ?uM#G%#d@% hw޳n/LbN@}Nxl.S %w$6/sA8&s]U ;.kpO"^&`g0-|$@?VhSӕ80 V ?3xmusIGSQ3ur/E{3b8OW}jʭ\ggz+={s?2 vDv }Ki&jF nRZnQcJw~C0k`I:8 =C/1Ȭ`J3P(/"y5?~N3a$ۍEAwjVt;ZuA#|V"VTWd?L/2{uf0ecMāhgk/S e%gy%;jWt4}ZGL uL7BKU* zWhaL7w`x=DcuăHeF}W gyG> P_Mܗ^_)q?% R w{ P &_~P#,iimWhC]M!ggP)̠6Q}6&ǭkwM.l< [ =o8wgSt6x 3W^r-zj#W=o4Cg'tui솹]Ag*.X&mAI0VP `Mi[\ǀ]y_d>t]Y)H}r/#g+bA[cA8#q/`$~9{}T#0c@!1#1@F0p }MuGXc*I}t(%*`";_ˡcj^E_.f'N&3kƱ7ܶVi3=i钶-о=7ƞݵLwLC1΁"Osڙfi'cf 'lo)[wKԪju;su˴#5xPa_x~g@/7/Rz5;Ɩ[A8! -#jNF Kb%L9J_ddWݩum84e13OٟTz$ق&o3hخZYW6'ѳyRa؂؛)b/x9-ג\w@x`^a.uYC~Sů eꅤ@g =~رo~oPM﹖1Csz{ģ]_|~?v楮!Lg[k64 =:hWglHmk,9;)8יl `f k( 83tߘAyV7&f3{mQO||f?}< ࿝oͯW{dO`f_gI϶n'$_؜Wv _q^cg V{2+`~ak_GxFEO5~^S<}_W.? Y2/~K]\cO~﯐ aK?)o~o~.~ʻ~*_W jW1ym{ оiyd\3lr1<49/.~=re~|Ig;{Gu?1/QMI{Hg<κ~k/A3ebٗ]ľ ƬZ45dD>U5W =Jyaa~>8Į=Sw 6e;2Y>f>l]lgߵ3p Y71}WH5ϱGy3rzܿ5кs@ {ʳ+gj;qqVmb+dޫl ]4Ϊ{1Gv=CA-2?]m#_{ ,B~o?b#{@o{Z##s2guW{0υ}O^}Ԯ,GkqvsVD NJu[^?;~.-0[5/^ri@f1ek\NfdfKuiTyxPyfb^syb}z߿٫`|GX:(ͬo睗Z -:8?6#[?'z,[` ׳Iya5f9k>Ӣ-f68P&1CۀKծ+3~e sp_o0,0mө}\;s+;]{S=]n@-= `T?Mj۬ڎ8[y6Y@\p_@gbǝ@5]=@y6_ĵy:]Ճn!꫎!vy (:d(=j⿺ ;2;pl?,wjx\{] fJQ+^{)943}sIX48溼[|Ya'} Y|Ox?=edtL*e*[!`@&v ص;6s ܿz^w%?v/Z];Y.pl@^Y|噲0'5<'G/jHϛo2]fMu'aĜ$=k2YՉs[Ѝ1+l,dwn7ęL\vF.ԙpp/i`oC|Am@Q =WwOݯ׌i} 4bο35|R|y\O?s*ꖱ/o (؁a~>k;?ڀ  yܫX_,S̵2 U КX~27}7}Ȕ*\@nߞ\$a&q7Ó*kי &>[=;+pTvlFzP=>k¿KRw[.B1dn ?߯zn$;-;zWILw}QbDI뭳!\~v44'WQMYs9c^l ڀSs-wۑ뇺Z?f,c~f>mfxlH%5|ʽ^G.{Yt?Sfׄs?=_Cd tg8I>wmljaJUS6 CQeWp."=:}D9h,gǶ*?qבKcH]wZc{Us+1'LoMܶ=</0?1*\=,pq1<8R5w6 |‬#8}l씷Y 6~v^7?{s{Psy*!潻n6wa+}Q[A;֜c{Ş_i$/g忽m=T!6` w} }>aУhp @uIJ#b_Y ͕M ׽ =;\oG7ؗ/k9ru;>{Q`A9;#a7m>boԗF9~*4r 5Vc /w 5jrs|N/go6ⳗ,ݣq`toיiܫ;^d&l}_ہO^'X#s b<"?:K=}塗*ZϔQ{Y=Vlgְ_Ad?4-])(lcGO7ӚYYnCI=%yY  /rߟهEk;!qwO}*F(>yRC4 }|?-_  u?xF-j(3'Yj6j0Tf=Pv{?o+_Fxn Zd V?B=3;֫/D1%>Fzn ,R<,᾿sRG޷C$'zڸFc?c6_#^a ̹ > _׻|;鳨pY:ڋ;ZMg6 }Ws7q_J|{A>׍ﵠlqʎ\"z.T`?׽?¿k "Q2\-ݏ^܍{Eg܌{|s=|4isyyvVL?`\mO\<G8u}mϾI̓;"|@?˔= b$}=?}7Eֻʮ>OZ?g]ʾ)̿m{' t}ۦ;#eKv{MRgL:v%L3P}CyuڭmRbXWtov9zm_6H.Pk%>3|"pZ+D g@~yόgo{pdz*7Gf Y Xs~O+R{#wn:1D́}?/p .mXmo;{>X:ñm-+s$P'#Ob%-.I}4{Z)t¾Ͽ]c~Ɯr*o1»wO:ݴi o{$؀k~Q W XpٯUo_]9S;rS1!ܝC|x^{w9(-pW~'?v@O,?x]{|L"?ғf:Fbݽ 3s@g*gƝ|l@ڡh}zVQg@ƮĩNN_v ? 8! 'BzG$b,ORH>@YH|c/诰LCLY=#ƿj ߿v?Rn6 /4%ZxؿޱHmދ샹.s?/K>O_ v@8r ؜}>>lgvIw W n;cf3uK~k19.V-)j糏ϱ& ӮC9o{z8?Y&_ׂ \P23&K?/o1,X࿮>;9^vKX[q%y^F-=?9(XZX\e[lJ -ĆZf&otװD]GFh]uej?+2t=RfXBipggƦ`/aA)yjc~C0^[.Nr'I0ka__}-rWO)_Y~%ș7mZ /XGy@؀EAZ< XFcU4;PyYϯњ%6g ;`@wvA&Po/F@g]4%Dž}Aqb^e6A}7?Tsh׋~}?`db'<^al=ml=~mb|3xO9Pwn`͘֍{)t֪c{liUHۀ7l;真\4{1!?e$vYbJ0.ӟm{j6v^wy;:G>XfGt._5xe_v Ƨg~bx#OZO~ƾo6 'ۓu*vϹ5{{ qų ~mPj} nڒO~ ʭOGH-lfsfs#:[8lNgkcli=>f'},7YUKQ2|^>M5eϽ@ rc|[ )qNIgec ? DhS؃/e? }:C!])Ps_w68%o<A'] $b-~ e;+47Uպ>7s  O aD}af ΃T[i gXã~b';;8l<ՁR?&\0TsЃަ@&/Qn My3({1!q{H. ~.wG7WKCڹg)槨Wvl`3ـ-5~##P9'mnhf1G@a憳}V?l}ywrxE]\ޫ07,ϰFaW%KwĻ v^Ҭ_l&?ftc;l{O/c@~(11*N㣅]+er=|Q A~{|b 5fem@[<}wq{>@-P6{ mrṶ^t'E:Ʊ}XY1}M|k'n"/__=E/Az(k^RZWXs 8K6Ļhvx}s+Ngbl-eezO{2l̾zp ړ!Rd63~Fu"s[98!º o~6g` vv-һD)#qJ;lt5}];hw Hg|(x_ְj4̷۱Ӱw]{uϽ]h^Oٿ:r $:U>e%SLRk~ҟ-5~==E>o=`%&z5_KZH9kR@p/"KWqoh[! &iOғ= 'kYxzond?ʶ[!ry;K /aɧ:x=6^:q/)={إxrR!в?8=_gW{apG|b}ʿ!Vi;}Pߍ3߿Lq=Bv, ؿnl#CtbJP:umZܧ~g;9 ď>?ξ#%{Uh55G$~.ʺ; toP'(v #nk=]8EZ/{t\k;gQdk.{IbIκ;!ljn讹O-L\W29f{yP,}*_;k _'kJrM_P{a_// aξrμS/ =z=4 oM kTU߿oCGl@m{}m=>R{/?\9"O'<"nQ=0aAOӖ|TGP}=}1ͷ E龵k о: gmudڀ=@ZR影>ǑYf~W[3}ҐOTyUuUo7X68. ye΍D_n~S̘xSQy?cJ$D\KϵYW k׫=ﶾ:.GmN Hh;%~VZ4Wӎc2 |Z!yE5C}+VjBݞug[H/bm g=7/bu(2go ?ܱ=6+Ğu6`zUEGG'!a9Oeag)ϫ׮3=;n߉ۦlu -?TAgt}>8tל;[[/rku^YI?ĆV ^cf;GC%]mwA$I⿞'\'Ibl o|YZ#ڂOJ}ܱ|뽲:bR<8E\ỏg?=98z (|pK1w~e~{,/*0 LbUCU+34}<. gB܋b;5τr3nou|zXoWkOwEl( +kr?*+O1<\3~ פ+?57w S?{oy,W|yDه"Wg8>K`WXW w=h MmʗRDؕYF?Oe#OW\OH:}Ra3oߟcgܾg\1?xs?R{ 6:,Ig|@d(/f}1%fv1j_%q)~=|TWU^=cnz^TGaρ*f .G h?O3g6sBƏ#>笩/9>ߛ,n;߉}үtJrߢcZ_ù/g >2[:cJܷgՈ HٱXcjU`v :,v /}?.y Y ^"'pS D=}M-z `;cy5^g\J)zO64ťXU>ǑϫUUu]46Do7uiNn_~۳]Zj3~Wwk*sc!{exޏN߉Jbψ#bw:o861>iȜx"{G2?%n}RW~P?QSןg$=z׵oyWy:tc8?\ӝNpm@ſpf}bbQffNd /|ޫ産fU|?TuQ! W~iu,A7lIS;ξݿC}-v@KS%-71ɧ|?b?GWD,=+R:+'76=bޫw@.շ{b3T E ie2?vX!翟ew=t?3ΜC/xsj S q`D!6qhr 4%)LQ\51]u 9CO~H)qW3v?UD~K؏لc1]NBn2a=ŽR1QwN$/t{~$m:'9=Y?Mb_ O0e&;"[Qt :;Ub9o;#"-`>WAΰZ}y!g,޷v~ٿ?igzNh DBnQϢ }q{Z27Uе=>"B>?3I-G=KsWx43_~QO=8WkޫLv@n|NkICc.|}罛F 2y,oq)5U%X g{:&0zY o#Zv k?ޕͺt\*Ud 8== ڂ0Ehݿg? (Wgk~wk~ĿIȿkuC{nh-?-RC4&5K%v@ȹ98?u:1e=?kxw ɸTgݵPEٽ@fgR*Zw*|>1DZ撣|:$6aibOT+}"mܫb/{?mA{*fx6Ө&b;P3{0 30;f}Q?f5.u|οOĿ.?I3Ss51z? h`7ͥH͋4'@$QvZCbL?$nr6gXS}=s!P)؀xߞ,nq;%h򾃅;l'p?kFd;!oc015׸ӫeOYsXdwSs|V[Gw݃(7LPا\+C}z}엱Kb_mXJcwޗR71&QDw7brW{bO&&ϟ+f 49XUfnj%uTDߌw&Jt?O!&6c_s_E`+ʸ3eϳ\]q?/&HR=0!֡y)KaOKd}>]%l|)5=՜yO _%";Pbhbe_ZoK:He8_ 2UcG~08/` 3:a6 H\m}{;j^V6m8[0g*ڀ uHbOcwLލ(x ݄9egA{lT݊ەtp,{t*zf/L|T? т X@= [Js_H>9qRs|̟蹟Hz<93/kk5=m6 y:{JPNl.$ Z>Ooƾ?{afȾf_uĻَ7a_>2[0z}ƿa/+EuZƽc5{yv *VRSĠ'V^xokz7yTW.4^sRɚ~fEc}M[\#g!;Cfa^Թ< '.?qBhl@viϾYry.@מF Z|U=I~sk' x%`v`~=\OzUc m~`o 3'D?TW"/؀/#d@~81fd. ('sP?sPyo:3b5=#y ?)B ϷJ}ʽ+Aݞ'v+;~w0ߒk(ozUؼ#c, ,«^`iWp#Ljvj3HYc?tjGO~tx њXt??3sm%[b-f_v/U)^!> U+}a N1_W;2 쏊} 9Y_`-hQ[[P=,̟Џ{4>,wu5<臘~g-@cj7|rU:eݍ;2xpV]׺'֓ h$SxW8jlkKDHB(ċ%+5VTs+~5>|Kg^}oj7 ?D%of^ `q/2y|}-WyW\I#<(gA2?a] KgMhE^=r mQz@'aV}QKOVڀǖ}}aaoԖ^H)煞fSen=΋̧ߒ;98vX毉֯$^ik:_@g0F? w{@g?Pb[,zk?q O3FȘӢj(}~6Տ;4.J.ǥofo{ld{%w6@qd1 -_O~KؿFtָy&؀0&Yd_ʬK1$N}TjUbtK''.OOV |/l {Cd^zy%֬'焾O2? ԫK={J?I?#?&lpzo;'; pD<g8Z+W?roZz%ƓMT}^G[5N+&>? w(p˩=\(ƶ>`_n{5UA9,_;`?}_gۇSoXYʾ6Ӧh7vk+gՅD7a.q6gco~'tVu~!՘}%$oa3ـƿ¿;/sqy>[:'^YIs5ih~AoNzo\پj'DGKqUxug<|pO\g 64gf^Þqg>Xg;?5k.@c/N{-x}Wj]|~<}f}Rvqc7}oۤ>ٯ/3qc_qb'ψv-<λ'y'WF⿙o'|g? q?k̻Ǭt޿ߡ9"flqScsyľp/쿐Oyw#}hLJJѮ ?83x__?D@_8o-;l|_c~Ac'Jk۽W{nZon=J?C~d_X_Ԕ沤{Al W;/K;`OqNO`YwK e;JomX盳=QVsWlj39aϻy"2&mfSt;| 5o9t_Niۙ>6ll1ws#97uk?99=b?tcy"t~?ļngt{-?`-YgE31Nm.Z7r{ :9TW6SX\? P>s鴽Znvzue]:pދG6@VϪm2w):;R!3%;^+{]xPf_Ow3!fy~ڬO(1O:೿oͯ76irN?Ŏ45&G5{ pڑEz٧x ߰{կ_oJ̓~,?I 'YOR7Y>{;fxboΛۅObů=:'{\Џ5:ԯ`QŪ{d'\m{\`Nv?d+kϙ836]m=|5df:ڃp/?GނmY**f|?{aԬg?q?n:Y:5V:Eb;oщiϸF JfM އ?%Єh&=Mubct眽FϤrEEW k>ؿgx E{jj1'WGe纜jGؿ\^LSio~} =}l:cZʿϬzW >V̦s=|a^Pߨm` 6m}F0j}_C~]p'y⳿Y3~CD<1Ng?50a59@:AXz}O˜9=0T؛ 6 .Yt?_xGcK;=|$~R?}_G}_mnveE)|M{/~ҋC5=?-FW.ZLl2zAx'7|fBi 1kSv3뫸#y/:ʿ<>@!uzOI8z8 Ʊ+d9NPq? gK9Wd]'t{-wO&^0U#kC^/:Oo/<#snOf} k3rټ.&:;[^|yPǎLQ>'( 򾜿r$K.-ii.`t3; ѡ;(ER`9g=6s轿!>|~Qgߎ4za]??/}o_5Vy:?Gu_9m72=r}_?|6OO=_U?F,5y2]ZzjGvZA63Zg<󮻽nhϥ՚iNg1-ؔųgVb}黷`MA?B¼3n&[w&!}'ν .K<aߵL1j|~Ǹ͌K}$f_5?'}l%m2:d'_U핌}9U?p')E ?r#R}.Yxg ˻l<]/!ǯ[?kΧ1L-%qamb'P?ؿ/ %J mϿlKsKlkd3үiY0Hf?|g79B|>Ӊye쿘MdwS?Up'u1af `qf~faǵ.=]:Ng9;vsT:'CVރX8cK`:tTv']<>6Gӕ+w4b`(g|ە=T{<58>7~sd/=H6`m6໷V.bгwwU 5zݟrT =e?ʕT$?Qۀ3x7yYq?~ М3zXE]*{g|֙ۮqoq'卯\1Yq)J=⸜֔w ]KbSo AxbN4f6t70F8e֝2/{~>@bt\2_?'/U_!9^Z,^sO~Li܏2Dl5ܟ_J%]jOY ?_IqEe?½ Y=q $f!%E5S|%/75BBMao }з #tL1'mf{g/u޽L[ y.Ks/ptžl?HSyg Kܓ90Ǒ9lg3g=OO2@O}g9|agw߰=.v?"/UWb }7fPO7mmmύ:J?-,Aw}'O}h?:S4N6lB-HOω{h/pϧql'cow%ywr91a=Nv¾hMvNkec~k H@(Dyfvpzax>lݏIrܓ羱{1m͵,>4X#>ju|ۉ}}?~GSMz$7H\/塞>!~Z>g=;X4X88X =|G?̿( `ݤ6Asb.1_w2_`ph30_F3o9>7Ct}>1x@ urs߃s}Ǔd};K>vmSģkK]vym]vg5ۮkQ{/WZ+ `ˉ9,}%]{%6{Ԇ{ >Tf>Fm;mRӳ)~]w$Au??j<_d/k@s}kqHoO}(g>/kߏTo}g1;mrl/q aH\@$g>V`3;bS4½f 鴁%|Sr?R!uge}} xlY|:w;&YԹإ>Y\|td_U^մB}p?\2 Xa;ñ6=W'T;>waN5wQ0}g=Gz$z, 0}tOn+Yooumnp]s=uάd4_˅z/}sWu8<OEOǶߖ(@3/W?(qLlz?l_gb}, ?y7g__̸OAoq߇KN쟰^8_%>}:0[]>cݮ/;#6ŒE]V痼RTӾ3W?`-Hv˞{?OkFoH^Lޑy~B35\kN81]j'7w2h.Zww\imX+l,M#9Ka7m:@w{o'{vD?lpbUߘ;{ x8.H . Fs@oQٷwԞV}Vݵ޶{efU_msf7쭻 ;0 P06[ܫ^ܫ*ݳָO4ՙ4||y<s^;ʿ<{aMW{o{.NTOw?SKik~ΙJDSt@v@U 70~\\1h h3yfEOqYPw ;΀z>?~? @~kzg&>v[7E|}v}οM}.Ƕ]f$>^ YU_l<[뜴׭ϺfXMÖHY5}.`~0|=ـuXsuv{g%^n0ʚғwցsvm;߅ĻI@gy~}f³ݙ*bn%Zd_ޟ>WU+|u̺ێ|FO9?wX$]CzE[=e3`t;1. ufa#c-=Q}>{l8+AwϩY7rk`"b {02I6㝸-3^́\1V8.zwkd@Xy?~zk⊢Dc]5eSBgc PG:\TsProjects\Textures\normal_plain.pngI?'kLjW9x__(ţxDbۗ"uI̎4)]-n,Njlpg???? 0S̤@+R ף<V?icIX(-n,Njlpg????ĦBZ?y݀J}N+kCY5]BtO #<4W}@O{vqEH7;k a$1LAVeSBgc BG:\TsProjects\Textures\white.pngI?'kLjW9 xQ0Ry.DfTL>(XFҦV>g'JNjn*pFC%CX@@@B?<;vHw:KrbSx`DisabledEnabledAs OpaqueEnabledEyAS`H5y ՞'fA5-_.F_P# ~K޸2L?嫈{RMv]sEeSBgcz BG:\TsProjects\Textures\white.pngI?'kLjW9 J@#QL>g'JNjn*pF4CtCd@@@?Ux:Gي!\0@ /1a yDK"zD?.;]kI 忞@-1OSM n 럆L<_ї˨DefaultAmbientEffects. GFʠN=f01 }}嫈{RMv]sEZ`Ez]UOٓ PM>1wdf0%\VV嫈{RMv]sEZ`Ez]UO GFʠN=0P@1 }}V?icIX(Z`Ez]UO B>IP0@%}}V?icIX(Z`Ez]UO GFʠN=@PP; }} Brightness+kCY5]BtOZ`Ez]UO1釥GP>aP@P0 }}+kCY5]BtOZ`Ez]UO GFʠN=Pf1 }}.F_P#Z`Ez]UO}4կMj=+fP0.F_P#}} GFʠN=f0W1 }}L QNIM5G&Z`Ez]UOٓ PM>1wdf0W%\VVL QNIM5G&Z`Ez]UO GFʠN=0P@W1 }}"uI̎4)]Z`Ez]UO B>IP0@W%}}"uI̎4)]ɱZ`Ez]UO GFʠN=@fpW1 }}~zk⊢Dc]5Z`Ez]UOٓ PM>1wdf@pW%\VV~zk⊢Dc]5Z`Ez]UO GFʠN=pPW1 }}y݀J}NZ`Ez]UO1釥GP>aPpW0 }}y݀J}NZ`Ez]UO GFʠN=PW1 }}wkd@XyZ`Ez]UO1釥GP>aPW0 }}wkd@XyZ`Ez]UO GFʠN=PW1 }}(gD9f<Z`Ez]UO1釥GP>aPW0 }}(gD9f<Z`Ez]UO GFʠN=PW1 }}ĦBZZ`Ez]UO1釥GP>aPW0 }}ĦBZZ`Ez]UO GFʠN=fW1 }}.F_P#Z`Ez]UO}4կMj=+fW0.F_P#}} GFʠN=f0hJD1 }}a$1LAVZ`Ez]UOٓ PM>1wdf0hJD%\VVa$1LAVZ`Ez]UO GFʠN=0f@hJD1 }}<;vHwZ`Ez]UOnevG4'f0@hJD2<;vHwZ`Ez]UO GFʠN=@PPhJD1 }} 0S̤@+RZ`Ez]UO1釥GP>aP@PhJD0 }} 0S̤@+RZ`Ez]UO GFʠN=PP`hJD1 }}/1a yDK"zDZ`Ez]UO1釥GP>aPP`hJD0 }}/1a yDK"zDZ`Ez]UO GFʠN=pPhJD1 }}})F cZ`Ez]UO1釥GP>aPphJD0 }}})F cZ`Ez]UO GFʠN=`phJD1 }}EyAS`H5yZ`Ez]UOͽ>fdN*5Ւh`phJD, }}EyAS`H5yٱZ`Ez]UO GFʠN=fhJD1 }}.F_P#Z`Ez]UO}4կMj=+fhJD0.F_P#}} GFʠN=hJD1 }}Ux:Gي!\0@Z`Ez]UOͽ>fdN*5ՒhhJD, }}Ux:Gي!\0@ӱZ`Ez]UO GFʠN=hJD1 }}vqEH7;kZ`Ez]UOͽ>fdN*5ՒhhJD, }}vqEH7;kZ`Ez]UO GFʠN=PhJD1 }}DfTZ`Ez]UO1釥GP>aPhJD0 }}DfTZ`Ez]UO1釥GP>aPhJD0 }} ~K޸2Z`Ez]UO GFʠN=PhJD1 }} ~K޸2Z`Ez]UO})F c@U@Ra.>g'JNjn*pFjCCd@T@?Pc|B;]2O MaterialK .F_P#T.F_P#Material Output material __W8E#(K K S^M~b tS^M~b Alpha_shaderAlpha shader RnчINNK K 5OD.GWf5t5OD.GWf5Color_shaderColor shader zdU@AUʂ*K K qΤIGGItqΤIGGIModel_shaderModel shader @SrE8㲻tK K ,S@vTVt,S@vTVNormal_shaderNormal shader Xb"ٲN+4K K зVJiltзVJil Texcoord_shader Texcoord shader lrMH;eK K 4W}@O{$U@Ra.-1OSM n"(XFҦVLE2Data, 1"L kF_dkF_Vertex_shaderVertex shader k|eKwj9CqVertexShaderK L t@*Ntt@*N Constant_shader Constant shader QVO Pk@K L <;vHwpK L  0S̤@+RpK ,S@vTV 0S̤@+R ף<5OD.GWf54W}@O{зVJil(XFҦV>g'JNjn*pFD`Bb@{@?<;vHwS^M~b .F_P#t@*NkF_-1OSM n 럆L<_ї0U@Ra.>g'JNjn*pFDnC`@\@?qΤIGGI܂dKu=|O Half Lambert R:>a[EH*M\R:>a[EH*M\LE2Data$LE2 Data for node >g'JNjn*p7wCH7wCHLE2Data$LE2 Data for node >g'JNjn*pL qΤIGGIK L 4W}@O{$)rޙG )rޙG ˢLE2Data, 1$LE2 Data for node >g'JNjn*p(XFҦVLE2Data, 3"%%u5E bLE2Data, 6QA@y:l1QA@y:l1LE2Data, 5$LE2 Data for node >g'JNjn*pK .;]kI 忞@"K K K $Q/G|]8$Q/G|]8LE2Data, 1$LE2 Data for node >g'JNjn*p-1OSM n# R:>a[EH*M\>g'JNjn*pFCA`@T@?7wCH>g'JNjn*pF[C)C`@T@?%%u5E b>g'JNjn*p^CCb@T@y݀J}N Ԡ>KC~B?4W}@O{(XFҦV>g'JNjn*p^CoCb@@P@y݀J}N Ԡ>B?)rޙG >g'JNjn*pFCA`@T@?$Q/G|]8>g'JNjn*pFC`B`@T@?QA@y:l1>g'JNjn*pFAC`@@@?.;]kI 忞@-1OSM n 럆L<_ї Default GFʠN=f0ȥ1 }}qΤIGGIZ`Ez]UO}4կMj=+f0ȥ0qΤIGGIՃ}}qΤIGGI/|V FK|O ShaderInput?ڵfA'7(?ڵfA'7(EyePos8Eye position in world space F 1+5?N>/K %dLrQn0%dLrQn0EyeDirNormalized eye vector in world space. Note that this is vector pointing from surface to the eye F 1+5?N>/K piDM7piDM7EyeDistNDistance from current point to the eye F 1+5?N>/^@A툷^@A툷PositionNShading point position in world space. F 1+5?N>/p1M@o=p1M@o=TexCoords3D texture coordinates for given surface point. Any undefined channel (u, v or w) is replaced with 0. Initialized to interpolated vertex texture coords. Replaced by output of TextCoord shader. F 1+5?N>/K }E[2CV)}E[2CV) ColornColor specified by color shader. RGB portion is used to specify color (and is not limited to range 0-1). Initialized to interpolated vertex color. Replaced by output of Color shader. F 1+5?N>/K K `MOWIB"ѥ`MOWIB"ѥNormalNormalized normal of the surface for given pixel. Normal vector is expected to be in world space. Initialized with denormalized interpolated vertex normal. Replaced by output of Normal shader. F 1+5?N>/K HtO{/(HtO{/(TangentNormalized tangent of the surface for given pixel. Tangent vector is expected to be in world space. Initialized with denormalized interpolated vertex tangent. Replaced by output of Normal shader. F 1+5?N>/ qQ@Rj qQ@Rj AlphaZTransparency specified for given pixel. Value should be specified in range 0...1 (full transparency ... fully opaque). Initialized to 1. Replaced by output of Alpha shader. F 1+5?N>/K ҥY@e&ҥY@e&LightDirNormalized light direction vector for given pixel. Light vector is expected to be in world space. Note that this is vector pointing from surface to the light. Initialized in the Vertex light shader. Replaced by output of Light shader. F 1+5?N>/K B_;OKFJ*rB_;OKFJ*rLightDistDistance of the current point to the light. Initialized in the Vertex light shader. Replaced by output of Light shader. F 1+5?N>/K HRSEpFCHRSEpFCLightColorLight color for given pixel. Replaced by output of Light shader. F 1+5?N>/K ~__um1CR¬5~__um1CR¬5TangentToWorldTransformation matrix from tangent space to world space for vectors. F 1+5?N>/ٻzEuSٻzEuSWorldToObjectnTransformation matrix from world space to object space F 1+5?N>/SaI7֏bSaI7֏bObjectToWorldTransformation matrix from object space to world space. Note that this is inverse matrix to WorldToObject. F 1+5?N>/K 4W}@O{$%%u5E b-1OSM n"(XFҦVLE2Data, 1"y"WMB]y"WMB]*ObjectToWorld_NormalA 3x3 Transformation matrix for normal and tangent vectors from object space to world space. F 1+5?N>/)5FYP)5FYPObjectToClipPerspective transformation matrix from object space to screen space. F 1+5?N>/x*yIx*yIWorldToClipPerspective transformation matrix from world space to screen space. F 1+5?N>/#h"mO('#h"mO('TexCoords2`A secondary set of texture coordinates for given surface point. Any undefined channel (u, v or w) is replaced with 0. Initialized to interpolated second vertex texture coords. F 1+5?N>/B_;OKFJ*rڳVܯ]FՃ尲+%tsxi_GetInputLightDistRtFloat qQ@RjڳVܯ]FՃ尲'!tsxi_GetInputAlphaRtFloatp1M@o=ڳVܯ]FՃ尲,&tsxi_GetInputTexCoordsRtFloat3^@A툷ڳVܯ]FՃ尲+%tsxi_GetInputPositionRtFloat4)5FYPڳVܯ]FՃ尲1+tsxi_GetInputObjectToClip RtFloat4x4%%u5E b>g'JNjn*pFC`@0@?HRSEpFCڳVܯ]FՃ尲-'tsxi_GetInputLightColorRtFloat4ٻzEuSڳVܯ]FՃ尲2,tsxi_GetInputWorldToObject RtFloat4x44W}@O{SaI7֏bڳVܯ]FՃ尲2,tsxi_GetInputObjectToWorld RtFloat4x4~__um1CR¬5ڳVܯ]FՃ尲3-tsxi_GetInputTangentToWorld RtFloat3x3x*yIڳVܯ]FՃ尲0*tsxi_GetInputWorldToClip RtFloat4x4(XFҦV>g'JNjn*pFCb@t@?#h"mO('ڳVܯ]FՃ尲-'tsxi_GetInputTexCoords2RtFloat3ҥY@e&ڳVܯ]FՃ尲+%tsxi_GetInputLightDirRtFloat3`MOWIB"ѥڳVܯ]FՃ尲)#tsxi_GetInputNormalRtFloat3?ڵfA'7(ڳVܯ]FՃ尲)#tsxi_GetInputEyePosRtFloat4%dLrQn0ڳVܯ]FՃ尲)#tsxi_GetInputEyeDirRtFloat3y"WMB]ڳVܯ]FՃ尲93!tsxi_GetInputObjectToWorld_Normal RtFloat3x3}E[2CV)ڳVܯ]FՃ尲("tsxi_GetInputColorRtFloat4-1OSM n 럆L<_ї0HtO{/(ڳVܯ]FՃ尲*$tsxi_GetInputTangentRtFloat3piDM7ڳVܯ]FՃ尲)#tsxi_GetInputEyeDistRtFloatfC{oO ShaderModelK qΤIGGIPL K C/-~CxrEtC/-~CxrE Color$Input color brick F 1+5?N>/K K 4W}@O{$%%u5E b-1OSM n"(XFҦVLE2Data, 1"%%u5E b>g'JNjn*pF DA`@P@?4W}@O{(XFҦV>g'JNjn*pF%DPAb@@T@?C/-~CxrE-1OSM n 럆L<_ї0qΤIGGIx^tHM[DO Half Lambert .;]kI 忞@"K 4W}@O{$ceZU@䑧r$(XFҦV"K CAkLFitCAkLFidiffusepdiffuse : RtFloat4 - The four component vector or color F 1+5?N>/K K NCy@{:TktNCy@{:Tknormal^normal : RtFloat3 - The three component vector F 1+5?N>/K K dAcj+D@VgUtdAcj+D@VgUeyeXeye : RtFloat3 - The three component vector F 1+5?N>/K K Ck`vI- EtCk`vI- Elightdirblightdir : RtFloat3 - The three component vector F 1+5?N>/K K ]D́Gt]D́Glightcolorvlightcolor : RtFloat4 - The four component vector or color F 1+5?N>/K K 7zlI4W8)T7zlI4W8)resultnresult : RtFloat4 - The four component vector or color F 1+5?N>/K NCy@{:TkCk`vI- EceZU@䑧r[җJs@ hNewFunction void NewFunction(in RtFloat4 diffuse, in RtFloat3 normal, in RtFloat3 eye, in RtFloat3 lightdir, in RtFloat4 lightcolor, out RtFloat4 result) { RtFloat lambert = rtx_Dot(normal, lightdir) * 0.5f + 0.5f; RtFloat DiffuseCoef = lambert*lambert*lambert; result = (diffuse * DiffuseCoef) * lightcolor; result.a = diffuse.a; } >D3D View Package/HLSL languageFG!RtFloat4diffuseCAkLFiRtFloat3normalNCy@{:TkRtFloat3eyedAcj+D@VgURtFloat3lightdirCk`vI- ERtFloat4lightcolor]D́GRtFloat4result7zlI4W8)dAcj+D@VgUCAkLFi(XFҦV>g'JNjn*pFCX@G@?7zlI4W8)]D́G܂dKu=O $AtmosTextureAlpha K .;]kI 忞@" L L L #L AL DL ,L M  M L L K 4W}@O{$(XFҦV"K S^M~b K K L QNIM5G&Alpha Map L L +kCY5]BtOFresnel-L L /1a yDK"zDOpacity%L L EyAS`H5yUse FresnelT-L L  ~K޸2DispersionL L DfTFeatherL L Ux:Gي!\0@Use DispersionTL L vqEH7;kUse FeatherTL  L QNIM5G&+kCY5]BtO@vqEH7;k DfTL>(XFҦV>g'JNjn*pFCb@ n@CA?S^M~b EyAS`H5y  ~K޸2L?Ux:Gي!\0@ /1a yDK"zD?nEtO InputBitmap L L QNIM5G&p L  L  L 5%Kլy|T5%Kլy|SamplerBrickBitmap brick (TpFޚ@'K L Q])JNЈtQ])JNЈoBitmapOutput bitmap eSBgc L GqiFE0IN tGqiFE0IN Input usageVThe usage specification for this parameter L L A ?gŘrtA ?gŘrMinFilterbMinification filter (Point, Linear, Anisotropic) L  L 5 B%OKt5 B%OKMagFilterdMagnification filter (Point, Linear, Anisotropic) L  L Muf2BޠQTtMuf2BޠQTMipFilter^Mipmapping filter (Point, Linear, Anisotropic) L L  T?cCx%Kt T?cCx%KU_AddressModexU Addressing mode (Wrap, Mirror, Clamp, Border, MirrorOnce) L L QnfM9M$ tQnfM9M$ V_AddressModexV Addressing mode (Wrap, Mirror, Clamp, Border, MirrorOnce) L L 9QbJF}~b{t9QbJF}~b{Border colorBorder color -n,Njlpg L L TKAIzc(tTKAIzc(MaxAnisotropy2Maximum anisotropy level L L  b/IG t b/IG MipMapLODBias"Mip map LOD Bias L L ЎeJf6KtЎeJf6KMaxMipLevel*Maximum mipmap level L L hdzCqIjAthdzCqIjA$EnableCompressionEnable the DirectX texture compression to save memory and increase speed (details of the texture might be decreased)  L L oC~Oܝ3 toC~Oܝ3  GenerateMipMapsPGenerate mip-maps to increase the speed  L L 4W}@O{$(XFҦV"-1OSM n"L QNIM5G&5%Kլy|GqiFE0IN 9QbJF}~b{-n,Njlpg????Q])JNЈQnfM9M$  Wrap b/IG hdzCqIjA ЎeJf6KoC~Oܝ3 (XFҦV>g'JNjn*pFDAX@1@?5 B%OKAnisotropicMuf2BޠQTLinearA ?gŘrAnisotropicTKAIzc( T?cCx%K Wrap-1OSM n 럆L<_ї0WG.3;W O ShaderAlphaL S^M~b PK L ;MF~Bt;MF~B Alpha$Input alpha brick F 1+5?N>/L L 4W}@O{$(XFҦV"-1OSM n"(XFҦV>g'JNjn*pF&DBb@@T@?S^M~b ;MF~B-1OSM n 럆L<_ї0/|V FK|O ShaderInput?ڵfA'7(L %dLrQn0.L M piDM7^@A툷L p1M@o="L }E[2CV)L `MOWIB"ѥ.L M M HtO{/( qQ@RjL ҥY@e&M B_;OKFJ*rHRSEpFC~__um1CR¬5ٻzEuSSaI7֏by"WMB])5FYPx*yI#h"mO(' L 4W}@O{$(XFҦV"-1OSM n"B_;OKFJ*rڳVܯ]FՃ尲+%tsxi_GetInputLightDistRtFloat^@A툷ڳVܯ]FՃ尲+%tsxi_GetInputPositionRtFloat4p1M@o=ڳVܯ]FՃ尲,&tsxi_GetInputTexCoordsRtFloat3 qQ@RjڳVܯ]FՃ尲'!tsxi_GetInputAlphaRtFloatHRSEpFCڳVܯ]FՃ尲-'tsxi_GetInputLightColorRtFloat4)5FYPڳVܯ]FՃ尲1+tsxi_GetInputObjectToClip RtFloat4x4ٻzEuSڳVܯ]FՃ尲2,tsxi_GetInputWorldToObject RtFloat4x4~__um1CR¬5ڳVܯ]FՃ尲3-tsxi_GetInputTangentToWorld RtFloat3x3SaI7֏bڳVܯ]FՃ尲2,tsxi_GetInputObjectToWorld RtFloat4x4x*yIڳVܯ]FՃ尲0*tsxi_GetInputWorldToClip RtFloat4x4(XFҦV>g'JNjn*pF<b@t@??ڵfA'7(ڳVܯ]FՃ尲)#tsxi_GetInputEyePosRtFloat4`MOWIB"ѥڳVܯ]FՃ尲)#tsxi_GetInputNormalRtFloat3ҥY@e&ڳVܯ]FՃ尲+%tsxi_GetInputLightDirRtFloat3#h"mO('ڳVܯ]FՃ尲-'tsxi_GetInputTexCoords2RtFloat3%dLrQn0ڳVܯ]FՃ尲)#tsxi_GetInputEyeDirRtFloat3y"WMB]ڳVܯ]FՃ尲93!tsxi_GetInputObjectToWorld_Normal RtFloat3x3}E[2CV)ڳVܯ]FՃ尲("tsxi_GetInputColorRtFloat4HtO{/(ڳVܯ]FՃ尲*$tsxi_GetInputTangentRtFloat3-1OSM n 럆L<_ї0piDM7ڳVܯ]FՃ尲)#tsxi_GetInputEyeDistRtFloatL{0nBg)`! /#L "L  n2B5INYt n2B5INYsProjectionhsProjection : RtFloat - Scalar floating point value F 1+5?N>/#L #L Fks J|TFks J|vTextureColor4~vTextureColor4 : RtFloat4 - The four component vector or color F 1+5?N>/?L #L 4W}@O{$(XFҦV"-1OSM n"sp;H~, (XFҦV>g'JNjn*pFDX@1@?P)\Fvq3wk0.DX?_OJ]8<ar BKHOj "Ѱ n2B5INYFks J|-1OSM n 럆L<_ї0z€ L& lO InputFloat%L +kCY5]BtOp@L %L %L uM@n;LATuM@n;LAFloatBrickFloat brick F 1+5?N>//L M M M M @L \/3Kf͈,t\/3Kf͈,oFloatOutput float@L GqiFE0IN p%L AL 4W}@O{$(XFҦV"-1OSM n"GqiFE0IN Opacity+kCY5]BtO?(XFҦV>g'JNjn*pFCb@@T@?uM@n;LA\/3Kf͈,?-1OSM n 럆L<_ї0L{0nBg)`! O ModulateP)\Fvq3?L 2x2֣K!dE5t2x2֣K!dE5InputXInputX : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/DL CL TXGy5֣ tTXGy5֣ InputYInputY : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/DL DL  dE9@T dE9@ResultResult : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/L DL 4W}@O{$(XFҦV"-1OSM n"(XFҦV>g'JNjn*pFCaCb@@P@?P)\Fvq3wk0.DX?_M0(rHH dE9@TXGy5֣ 2x2֣K!dE5-1OSM n 럆L<_ї0܂dKu=O $Fresnel Component 7L .;]kI 忞@"3L 6L ;L >L HL rL M M ,L 4W}@O{$-L +kCY5]BtO1L -L EyAS`H5yT8L .L UFNH-BE^^UFNH-BE^^InputXInputX : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>//=L /L 2x2֣K!dE52x2֣K!dE5InputXInputX : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/InputX, 1FL M (XFҦV",L m Oťjm OťjResultResult : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/L -1OSM n"UFNH-BE^^) 3 @~*9+kCY5]BtO@(XFҦV>g'JNjn*pFb@@\@AD?EyAS`H5y m Oťj2x2֣K!dE5-1OSM n 럆L<_ї0z€ L& O InputFloat, 11L +kCY5]BtOp1L 2L 2L uM@n;LAPM 1L \/3Kf͈,p3L GqiFE0IN p2L 3L 4W}@O{$(XFҦV"GqiFE0IN Fresnel+kCY5]BtO@(XFҦV>g'JNjn*pF Cb@@T@?uM@n;LA\/3Kf͈,L?ͤ*EgbĬO jScript object2AEHM'ceZU@䑧r%6L 4W}@O{$(XFҦV#.;]kI 忞@"-1OSM n#8L EyAS`H5ypD8L 8L ա@bg'JNjn*pFBC`@0@?ա@bg'JNjn*pF@@Db@H@?EyAS`H5y .;]kI 忞@-1OSM n 럆L<_ї0z€ L& O InputFloat, 29L +kCY5]BtOp:L 9L 9L uM@n;LAPGL :L \/3Kf͈,p:L GqiFE0IN p9L ;L 4W}@O{$(XFҦV"GqiFE0IN +kCY5]BtO(XFҦV>g'JNjn*pF Db@@T@?uM@n;LA\/3Kf͈,L{0nBg)`! \O Dot-product, 2P)\Fvq3/=L =L ) 3 @~*9t) 3 @~*9InputYInputY : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/=L =L @A/oϜT@A/oϜsResult`sResult : RtFloat - Scalar floating point value F 1+5?N>/IL >L 4W}@O{%%%u5E b-1OSM n"(XFҦVLE2Data, 1"%%u5E b>g'JNjn*pFCC`@P@?) 3 @~*9UFNH-BE^^4W}@O{(XFҦV>g'JNjn*pF@Cb@@P@?@A/oϜP)\Fvq3wk0.DX?_:H'.C:\-1OSM n 럆L<_ї0L{0nBg)`! O Modulate, 3P)\Fvq3FL 2x2֣K!dE5t2x2֣K!dE5InputXInputX : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/GL GL TXGy5֣ tTXGy5֣ InputYInputY : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/GL GL  dE9@T dE9@ResultResult : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/M HL 4W}@O{$(XFҦV"(XFҦV>g'JNjn*pF@Db@@P@?P)\Fvq3wk0.DX?_M0(rHHTXGy5֣  dE9@2x2֣K!dE5L{0nBg)`! O ArccosineP)\Fvq3IL W\uI O\mtW\uI O\m InputInput : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/JL JL ƽE B}:$]FTƽE B}:$]FResultResult : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/M rL 4W}@O{$(XFҦV"(XFҦV>g'JNjn*pF~Cb@H@?P)\Fvq3wk0.DX?_C,8 OȺtƽE B}:$]FW\uI O\mL{0nBg)`! $O  ClampP)\Fvq3M D4qG+ tD4qG+  InputInput : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/M M k+ h9@*vtk+ h9@*vMinMin : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/M M ޳EK#ut޳EK#uMaxMax : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/M M m OťjP,L M 4W}@O{$(XFҦV"޳EK#uk+ h9@*vD4qG+ (XFҦV>g'JNjn*pFCCb@@T@?P)\Fvq3wk0.DX?_Ͼ̽;= Jy?dҕm OťjL{0nBg)`! O PowP)\Fvq3M Yb1ۃCeޅBCtYb1ۃCeޅBCInputXInputX : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/M M z'{EgQل^tz'{EgQل^InputYInputY : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/M M NaC_AG/&~TNaC_AG/&~ResultResult : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/M M 4W}@O{$(XFҦV"Yb1ۃCeޅBC(XFҦV>g'JNjn*pFCb@@P@?P)\Fvq3wk0.DX?_7MGpm7z'{EgQل^NaC_AG/&~܂dKu=TO Haze Component M .;]kI 忞@"L M M  M L L L M 4W}@O{$M UFNH-BE^^L M ) 3 @~*9L M 2x2֣K!dE52x2֣K!dE5InputXInputX : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/InputX, 1M M ޳EK#uL L m OťjL (XFҦV"L EyAS`H5yTL L +kCY5]BtO M -1OSM n" ޳EK#uUFNH-BE^^) 3 @~*9+kCY5]BtOL?(XFҦV>g'JNjn*pF@Bb@ `@DB?EyAS`H5y m Oťj2x2֣K!dE5-1OSM n 럆L<_ї0L{0nBg)`! O Dot-product, 1P)\Fvq3L UFNH-BE^^pL L ) 3 @~*9pL L @A/oϜT@A/oϜsResult`sResult : RtFloat - Scalar floating point value F 1+5?N>/PL L 4W}@O{%%%u5E b-1OSM n"(XFҦVLE2Data, 1"UFNH-BE^^) 3 @~*9%%u5E b>g'JNjn*pFCC`@P@?4W}@O{(XFҦV>g'JNjn*pF4b@@P@?P)\Fvq3wk0.DX?_:H'.C:\@A/oϜ-1OSM n 럆L<_ї0L{0nBg)`! O Pow, 1P)\Fvq3PL Yb1ۃCeޅBCtYb1ۃCeޅBCInputXInputX : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/M M z'{EgQل^tz'{EgQل^InputYInputY : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/M M NaC_AG/&~TNaC_AG/&~ResultResult : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/L M 4W}@O{%%%u5E b-1OSM n"(XFҦVLE2Data, 1"Yb1ۃCeޅBC%%u5E b>g'JNjn*pFCB`@P@?4W}@O{(XFҦV>g'JNjn*pF\B b@@P@?P)\Fvq3wk0.DX?_7MGpm7z'{EgQل^NaC_AG/&~-1OSM n 럆L<_ї0L{0nBg)`! D P Modulate, 1P)\Fvq3M 2x2֣K!dE5t2x2֣K!dE5InputXInputX : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/M M TXGy5֣ tTXGy5֣ InputYInputY : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/M M  dE9@T dE9@ResultResult : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/L M 4W}@O{$(XFҦV"(XFҦV>g'JNjn*pF4CBb@@P@?P)\Fvq3wk0.DX?_M0(rHH dE9@TXGy5֣ 2x2֣K!dE5L{0nBg)`! LO  ClampP)\Fvq3L D4qG+ pL L k+ h9@*vpL L ޳EK#upL L m OťjPL  M 4W}@O{$(XFҦV"޳EK#uk+ h9@*vD4qG+ (XFҦV>g'JNjn*pFCb@@T@?P)\Fvq3wk0.DX?_Ͼ̽;= Jy?dҕm Oťjz€ L& O InputFloat, 4 M +kCY5]BtOpL  M  M uM@n;LAPM L \/3Kf͈,pL GqiFE0IN p M L 4W}@O{$(XFҦV"GqiFE0IN  Haze+kCY5]BtOL?(XFҦV>g'JNjn*pFN@Bb@@X@?uM@n;LA\/3Kf͈,L?ͤ*EgbĬO $jScript object, 12AEHM'ceZU@䑧r%L 4W}@O{$(XFҦV#.;]kI 忞@"-1OSM n#L EyAS`H5ypDL L ա@bg'JNjn*pFBC`@0@?ceZU@䑧r[җJs@ NewObject\// OnComputeOutputs // Called to compute values of all output connectors function OnComputeOutputs(params) { var Toggle = params.ConValue('Toggle'); // TODO: put your computation here if (Toggle) { params.ConValue('Value') = 0.0; } else { params.ConValue('Value') = 1.0; } } NScript Object Package/jScript languageFbooleanToggleToggle input EyAS`H5ynumber Value(0.0 = off, 1.0 = onա@bg'JNjn*pFDCb@H@?EyAS`H5y -1OSM n 럆L<_ї0.;]kI 忞@z€ L& |O InputFloat, 5L +kCY5]BtOp M L L uM@n;LAPM M \/3Kf͈,p M GqiFE0IN pL L 4W}@O{$(XFҦV"GqiFE0IN +kCY5]BtO(XFҦV>g'JNjn*pF0Cb@@T@?uM@n;LA\/3Kf͈,܂dKu=O $Feather Component L .;]kI 忞@" L L L L L L L L L L L  M 4W}@O{$ M UFNH-BE^^M M ) 3 @~*9L M 2x2֣K!dE52x2֣K!dE5InputXInputX : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/InputX, 1L M ޳EK#u(XFҦV"L  dE9@ dE9@ResultResult : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/L L EyAS`H5yTL L +kCY5]BtOL -1OSM n" ޳EK#u) 3 @~*9UFNH-BE^^+kCY5]BtOL>(XFҦV>g'JNjn*pFCb@ `@8DB?EyAS`H5y  dE9@2x2֣K!dE5-1OSM n 럆L<_ї0L{0nBg)`! O Dot-product, 3P)\Fvq3M UFNH-BE^^pL L ) 3 @~*9pL L @A/oϜPL L L 4W}@O{%%%u5E b-1OSM n"(XFҦVLE2Data, 1"%%u5E b>g'JNjn*pFCC`@P@?) 3 @~*9UFNH-BE^^4W}@O{(XFҦV>g'JNjn*pFb@@P@?@A/oϜP)\Fvq3wk0.DX?_:H'.C:\-1OSM n 럆L<_ї0L{0nBg)`! DO Modulate, 6P)\Fvq3L 2x2֣K!dE5t2x2֣K!dE5InputXInputX : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/L L TXGy5֣ tTXGy5֣ InputYInputY : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/L L  dE9@T dE9@ResultResult : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/L L 4W}@O{$(XFҦV"(XFҦV>g'JNjn*pFBb@@P@?P)\Fvq3wk0.DX?_M0(rHHTXGy5֣  dE9@2x2֣K!dE5z€ L& O InputFloat, 6L +kCY5]BtOpL L L uM@n;LAPL L L \/3Kf͈,pL GqiFE0IN pL L 4W}@O{$(XFҦV"GqiFE0IN Feather+kCY5]BtOL>(XFҦV>g'JNjn*pF@Lb@@X@?uM@n;LA\/3Kf͈,L>ͤ*EgbĬtO $jScript object, 32AEHM'ceZU@䑧r%L 4W}@O{$(XFҦV#.;]kI 忞@"-1OSM n#L EyAS`H5ypDL L ա@bg'JNjn*pFBC`@0@?ա@bg'JNjn*pF@"Cb@H@?EyAS`H5y .;]kI 忞@-1OSM n 럆L<_ї0z€ L&  O InputFloat, 7L +kCY5]BtOpL L L uM@n;LAPL L \/3Kf͈,pL GqiFE0IN pL L 4W}@O{$(XFҦV"GqiFE0IN +kCY5]BtO(XFҦV>g'JNjn*pFBb@@T@?uM@n;LA\/3Kf͈,L{0nBg)`! O Modulate, 7P)\Fvq3L 2x2֣K!dE5t2x2֣K!dE5InputXInputX : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/L L TXGy5֣ tTXGy5֣ InputYInputY : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/L L  dE9@T dE9@ResultResult : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/L L 4W}@O{$(XFҦV"(XFҦV>g'JNjn*pFCAb@@P@?P)\Fvq3wk0.DX?_M0(rHH dE9@TXGy5֣ 2x2֣K!dE5z€ L& g'JNjn*pFsC=Cb@@T@?uM@n;LA\/3Kf͈,8L{0nBg)`! O PowP)\Fvq3L Yb1ۃCeޅBCpL L z'{EgQل^pL L NaC_AG/&~pL 4W}@O{$(XFҦV"Yb1ۃCeޅBC(XFҦV>g'JNjn*pF b@@P@?P)\Fvq3wk0.DX?_7MGpm7z'{EgQل^NaC_AG/&~z€ L& lO InputFloat, 2L +kCY5]BtOpL L L uM@n;LAPL L \/3Kf͈,pL GqiFE0IN pL L 4W}@O{$(XFҦV"GqiFE0IN Feather+kCY5]BtO?(XFҦV>g'JNjn*pF-C$b@@T@?uM@n;LA\/3Kf͈,?L{0nBg)`! P  ClampP)\Fvq3L D4qG+ pL L k+ h9@*vpL L ޳EK#upL L m OťjPL L 4W}@O{$(XFҦV"޳EK#uk+ h9@*vD4qG+ (XFҦV>g'JNjn*pFCBb@@T@?P)\Fvq3wk0.DX?_Ͼ̽;= Jy?dҕm OťjL{0nBg)`! O Arctangent2P)\Fvq3L p0fK,ޟ2)tp0fK,ޟ2)InputXInputX : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/L L üQIW#tüQIW#InputYInputY : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/L L $ JxgiK|T$ JxgiK|ResultResult : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/L L 4W}@O{$(XFҦV"p0fK,ޟ2)üQIW#(XFҦV>g'JNjn*pF@b@@P@?P)\Fvq3wk0.DX?_MR ?$ JxgiK|L{0nBg)`! 4P Modulate, 1P)\Fvq3L 2x2֣K!dE5t2x2֣K!dE5InputXInputX : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/L L TXGy5֣ tTXGy5֣ InputYInputY : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/L L  dE9@T dE9@ResultResult : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/CL L 4W}@O{$(XFҦV"-1OSM n"(XFҦV>g'JNjn*pFCBb@@P@?P)\Fvq3wk0.DX?_M0(rHHTXGy5֣  dE9@2x2֣K!dE5-1OSM n 럆L<_ї0L{0nBg)`! P Modulate, 2P)\Fvq3L 2x2֣K!dE5t2x2֣K!dE5InputXInputX : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/L L TXGy5֣ tTXGy5֣ InputYInputY : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/L L  dE9@T dE9@ResultResult : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/L L 4W}@O{$(XFҦV"-1OSM n"(XFҦV>g'JNjn*pFC0Ab@@P@?P)\Fvq3wk0.DX?_M0(rHH dE9@TXGy5֣ 2x2֣K!dE5-1OSM n 럆L<_ї0܂dKu=dP $TintTextureShader L .;]kI 忞@"L L L L L L L 4W}@O{$L L QNIM5G&Color MapL (XFҦVLE2Data, 1#-1OSM n#L 5OD.GWf5K L "uI̎4)]Color TintL ՞'fA5-_՞'fA5-_D3DEYED3DEYE =xNT{%%u5E b L QNIM5G&"uI̎4)]%%u5E b>g'JNjn*pFCpBb@\@?5OD.GWf54W}@O{(XFҦV>g'JNjn*pFCAb@ `@?՞'fA5-_.;]kI 忞@-1OSM n 럆L<_ї9/|V FK|P ShaderInput?ڵfA'7(%dLrQn0piDM7^@A툷L p1M@o=L }E[2CV)`MOWIB"ѥHtO{/( qQ@RjҥY@e&B_;OKFJ*rHRSEpFC~__um1CR¬5ٻzEuSSaI7֏bL 4W}@O{$(XFҦVLE2Data, 1#-1OSM n#y"WMB])5FYPx*yI#h"mO('B_;OKFJ*rڳVܯ]FՃ尲+%tsxi_GetInputLightDistRtFloat qQ@RjڳVܯ]FՃ尲'!tsxi_GetInputAlphaRtFloatp1M@o=ڳVܯ]FՃ尲,&tsxi_GetInputTexCoordsRtFloat3^@A툷ڳVܯ]FՃ尲+%tsxi_GetInputPositionRtFloat4)5FYPHRSEpFCڳVܯ]FՃ尲-'tsxi_GetInputLightColorRtFloat4ٻzEuSڳVܯ]FՃ尲2,tsxi_GetInputWorldToObject RtFloat4x44W}@O{SaI7֏bڳVܯ]FՃ尲2,tsxi_GetInputObjectToWorld RtFloat4x4~__um1CR¬5ڳVܯ]FՃ尲3-tsxi_GetInputTangentToWorld RtFloat3x3x*yI(XFҦV>g'JNjn*pFCCX@1@?#h"mO('ҥY@e&ڳVܯ]FՃ尲+%tsxi_GetInputLightDirRtFloat3`MOWIB"ѥڳVܯ]FՃ尲)#tsxi_GetInputNormalRtFloat3?ڵfA'7(ڳVܯ]FՃ尲)#tsxi_GetInputEyePosRtFloat4%dLrQn0ڳVܯ]FՃ尲)#tsxi_GetInputEyeDirRtFloat3y"WMB]}E[2CV)ڳVܯ]FՃ尲("tsxi_GetInputColorRtFloat4-1OSM n 럆L<_ї0HtO{/(ڳVܯ]FՃ尲*$tsxi_GetInputTangentRtFloat3piDM7ڳVܯ]FՃ尲)#tsxi_GetInputEyeDistRtFloat"YMڿ$ZߦP ShaderColorL 5OD.GWf5PL L C/-~CxrEpL L 4W}@O{$(XFҦVLE2Data, 1#-1OSM n#5OD.GWf54W}@O{(XFҦV>g'JNjn*pFDBb@@T@?C/-~CxrE-1OSM n 럆L<_ї0L{0nBg)`! ,P "Color texture, 1P)\Fvq3L  1frHsOP5t 1frHsOP5ColorSamplerrColorSampler : RtSampler2D - The two dimensional sampler (TpFޚ@'L L PR3HBPtPR3HBP&TextureCoordinatesvTextureCoordinates : RtFloat3 - The three component vector F 1+5?N>/L L z(J.ĎTz(J.Ď ColorlColor : RtFloat4 - The four component vector or color F 1+5?N>/L L 4W}@O{%(XFҦVLE2Data, 1#-1OSM n#z(J.Ď4W}@O{(XFҦV>g'JNjn*pFCBb@@P@?P)\Fvq3wk0.DX?_К~k,J6 PR3HBP 1frHsOP5-1OSM n 럆L<_ї0nE P InputBitmapL L QNIM5G&pL L L 5%Kլy|PL L Q])JNЈpL GqiFE0IN pL L A ?gŘrpL L 5 B%OKpL L Muf2BޠQTpL L  T?cCx%KpL L QnfM9M$ pL L 9QbJF}~b{pL L TKAIzc(pL L  b/IG pL L ЎeJf6KpL L hdzCqIjApL L oC~Oܝ3 pL L 4W}@O{$(XFҦVLE2Data, 1#-1OSM n#9QbJF}~b{-n,Njlpg????GqiFE0IN DIFFUSEMAP5%Kլy|L QNIM5G&QnfM9M$  WrapQ])JNЈhdzCqIjA  b/IG 4W}@O{ЎeJf6K(XFҦV>g'JNjn*pFB`Bb@t@?oC~Oܝ3 Muf2BޠQTAnisotropic5 B%OKAnisotropicA ?gŘrAnisotropicTKAIzc(-1OSM n 럆L<_ї0 T?cCx%K Wrap]IDjdc\P InputColorL "uI̎4)]` TintL L L \PtIL;I1T\PtIL;I1ColorBrickColor brick F 1+5?N>/L L q\W D ɭtq\W D ɭoColorOutput color -n,NjlpgL GqiFE0IN pL L 4W}@O{$(XFҦVLE2Data, 1"-1OSM n"GqiFE0IN \PtIL;I1"uI̎4)]4W}@O{(XFҦV>g'JNjn*pFCJCb@@T@?q\W D ɭ-1OSM n 럆L<_ї0L{0nBg)`! P ModulateP)\Fvq3L 2x2֣K!dE5t2x2֣K!dE5InputXInputX : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/L L TXGy5֣ tTXGy5֣ InputYInputY : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/L L  dE9@T dE9@ResultResult : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/L L 4W}@O{%(XFҦVLE2Data, 1"-1OSM n"4W}@O{(XFҦV>g'JNjn*pF DUCb@@P@?P)\Fvq3wk0.DX?_M0(rHH dE9@TXGy5֣ 2x2֣K!dE5-1OSM n 럆L<_ї0܂dKu=P (TintConstantTexture L .;]kI 忞@"uK LL ZL ]L uL ? w? ? L 4W}@O{$L L QNIM5G&Ambient MapOL %%u5E b-1OSM n#(XFҦVLE2Data, 1#L t@*Nt@*N Constant_shader Constant shader QVO Pk@L L +kCY5]BtOBrightnessN L "uI̎4)]Ambient Tint?  L QNIM5G&"uI̎4)]%%u5E b>g'JNjn*pF8CC`@H@?4W}@O{+kCY5]BtO #<(XFҦV>g'JNjn*pFC4Cb@ b@?t@*N.;]kI 忞@-1OSM n 럆L<_ї0/|V FK|$P ShaderInput?ڵfA'7(%dLrQn0piDM7^@A툷L p1M@o=KL }E[2CV)`MOWIB"ѥHtO{/( qQ@RjҥY@e&B_;OKFJ*rHRSEpFC~__um1CR¬5ٻzEuSSaI7֏buK 4W}@O{$%%u5E b-1OSM n#(XFҦVLE2Data, 1#y"WMB])5FYPx*yI#h"mO('B_;OKFJ*rڳVܯ]FՃ尲+%tsxi_GetInputLightDistRtFloat qQ@RjڳVܯ]FՃ尲'!tsxi_GetInputAlphaRtFloatp1M@o=ڳVܯ]FՃ尲,&tsxi_GetInputTexCoordsRtFloat3^@A툷ڳVܯ]FՃ尲+%tsxi_GetInputPositionRtFloat4)5FYP%%u5E b>g'JNjn*pFCC`@0@?HRSEpFCڳVܯ]FՃ尲-'tsxi_GetInputLightColorRtFloat4ٻzEuSڳVܯ]FՃ尲2,tsxi_GetInputWorldToObject RtFloat4x44W}@O{SaI7֏bڳVܯ]FՃ尲2,tsxi_GetInputObjectToWorld RtFloat4x4~__um1CR¬5ڳVܯ]FՃ尲3-tsxi_GetInputTangentToWorld RtFloat3x3x*yI(XFҦV>g'JNjn*pFCCX@1@?#h"mO('ҥY@e&ڳVܯ]FՃ尲+%tsxi_GetInputLightDirRtFloat3`MOWIB"ѥڳVܯ]FՃ尲)#tsxi_GetInputNormalRtFloat3?ڵfA'7(ڳVܯ]FՃ尲)#tsxi_GetInputEyePosRtFloat4%dLrQn0ڳVܯ]FՃ尲)#tsxi_GetInputEyeDirRtFloat3y"WMB]}E[2CV)ڳVܯ]FՃ尲("tsxi_GetInputColorRtFloat4-1OSM n 럆L<_ї0HtO{/(ڳVܯ]FՃ尲*$tsxi_GetInputTangentRtFloat3piDM7ڳVܯ]FՃ尲)#tsxi_GetInputEyeDistRtFloatL{0nBg)`! P "Color texture, 1P)\Fvq3KL  1frHsOP5t 1frHsOP5ColorSamplerrColorSampler : RtSampler2D - The two dimensional sampler (TpFޚ@'LL KL PR3HBPtPR3HBP&TextureCoordinatesvTextureCoordinates : RtFloat3 - The three component vector F 1+5?N>/LL LL z(J.ĎTz(J.Ď ColorlColor : RtFloat4 - The four component vector or color F 1+5?N>/? LL 4W}@O{%%%u5E b-1OSM n#(XFҦVLE2Data, 1#%%u5E b>g'JNjn*pFCB`@T@?z(J.Ď4W}@O{(XFҦV>g'JNjn*pFCCb@@P@?P)\Fvq3wk0.DX?_К~k,J6 PR3HBP 1frHsOP5-1OSM n 럆L<_ї0nETP InputBitmapOL L QNIM5G&pPL OL OL 5%Kլy|PKL PL Q])JNЈpSL GqiFE0IN pOL SL A ?gŘrpOL TL 5 B%OKpOL TL Muf2BޠQTpOL UL  T?cCx%KpOL VL QnfM9M$ pOL VL 9QbJF}~b{pOL WL TKAIzc(pOL WL  b/IG pOL XL ЎeJf6KpOL YL hdzCqIjApOL YL oC~Oܝ3 pOL ZL 4W}@O{$%%u5E b-1OSM n#(XFҦVLE2Data, 1#9QbJF}~b{-n,Njlpg????GqiFE0IN DIFFUSEMAP5%Kլy|L QNIM5G&%%u5E b>g'JNjn*pFB`Bb@u@?QnfM9M$  WrapQ])JNЈhdzCqIjA  b/IG 4W}@O{ЎeJf6K(XFҦV>g'JNjn*pFB`Bb@t@?oC~Oܝ3 Muf2BޠQTAnisotropic5 B%OKAnisotropicA ?gŘrAnisotropicTKAIzc(-1OSM n 럆L<_ї0 T?cCx%K WrapNH}=e!yRP ShaderConstant\L t@*NPL ]L -wA 2t-wA 2 Color$Input color brick F 1+5?N>/\L ]L 4W}@O{$(XFҦV"(XFҦV>g'JNjn*pF!DBb@@T@?-wA 2t@*Nz€ L& P  BrightnessInputN +kCY5]BtOp3N N N uM@n;LAP> 3N \/3Kf͈,puL GqiFE0IN pN uL 4W}@O{$(XFҦV"-1OSM n"GqiFE0IN Brightness+kCY5]BtO #<(XFҦV>g'JNjn*pFBCb@@T@?uM@n;LA\/3Kf͈,-1OSM n 럆L<_ї9L{0nBg)`!  P ModulateP)\Fvq3? 2x2֣K!dE5t2x2֣K!dE5InputXInputX : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/? ? TXGy5֣ tTXGy5֣ InputYInputY : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/? ?  dE9@T dE9@ResultResult : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/h? ? 4W}@O{$(XFҦV"(XFҦV>g'JNjn*pFCCb@@P@?P)\Fvq3wk0.DX?_M0(rHH dE9@TXGy5֣ 2x2֣K!dE5]IDjdcL P InputColor? "uI̎4)]p? ? ? \PtIL;I1P? ? q\W D ɭpz? GqiFE0IN p? w? 4W}@O{$(XFҦV"GqiFE0IN \PtIL;I1"uI̎4)](XFҦV>g'JNjn*pFCCb@@T@?q\W D ɭL{0nBg)`!  P Modulate, 1P)\Fvq3h? 2x2֣K!dE5t2x2֣K!dE5InputXInputX : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/? > TXGy5֣ tTXGy5֣ InputYInputY : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/? ?  dE9@T dE9@ResultResult : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/]L ? 4W}@O{$(XFҦV"(XFҦV>g'JNjn*pFDCb@@T@?P)\Fvq3wk0.DX?_M0(rHH dE9@TXGy5֣ 2x2֣K!dE5܂dKu=| P  NormalMapShader? .;]kI 忞@"? ? ? ? ? 4W}@O{$? L QNIM5G&Normal Map? %%u5E b%%u5E bLE2Data$LE2 Data for node >g'JNjn*p-1OSM n"? ,S@vTVK (XFҦVLE2Data, 1",S@vTVL QNIM5G&%%u5E b>g'JNjn*pF:CCb@X@?4W}@O{(XFҦV>g'JNjn*pFCCb@@\@?.;]kI 忞@-1OSM n 럆L<_ї0`# JS5̿= P ShaderNormal? ,S@vTVP? ?  T"\E t T"\E Normal&Input Normal brick F 1+5?N>/? ? =0G-|00rt=0G-|00rTangent(Input Tangent brick F 1+5?N>/? ? 4W}@O{$%%u5E b-1OSM n"(XFҦVLE2Data, 1=0G-|00r,S@vTV%%u5E b>g'JNjn*pF@DC`@T@?4W}@O{ T"\E (XFҦV>g'JNjn*pF@DC`@T@?-1OSM n 럆L<_ї0/|V FK| P ShaderInput?ڵfA'7(%dLrQn0piDM7^@A툷? p1M@o=? }E[2CV)`MOWIB"ѥHtO{/( qQ@RjҥY@e&B_;OKFJ*rHRSEpFC? ~__um1CR¬5? ٻzEuSSaI7֏b? 4W}@O{$%%u5E b-1OSM n"(XFҦVLE2Data, 1y"WMB])5FYPx*yI#h"mO('B_;OKFJ*rڳVܯ]FՃ尲+%tsxi_GetInputLightDistRtFloat qQ@RjڳVܯ]FՃ尲'!tsxi_GetInputAlphaRtFloatp1M@o=ڳVܯ]FՃ尲,&tsxi_GetInputTexCoordsRtFloat3^@A툷ڳVܯ]FՃ尲+%tsxi_GetInputPositionRtFloat4)5FYP%%u5E b>g'JNjn*pFBC`@0@?HRSEpFCڳVܯ]FՃ尲-'tsxi_GetInputLightColorRtFloat4ٻzEuSڳVܯ]FՃ尲2,tsxi_GetInputWorldToObject RtFloat4x44W}@O{SaI7֏bڳVܯ]FՃ尲2,tsxi_GetInputObjectToWorld RtFloat4x4~__um1CR¬5ڳVܯ]FՃ尲3-tsxi_GetInputTangentToWorld RtFloat3x3x*yI(XFҦV>g'JNjn*pFBC`@0@?#h"mO('ҥY@e&ڳVܯ]FՃ尲+%tsxi_GetInputLightDirRtFloat3`MOWIB"ѥڳVܯ]FՃ尲)#tsxi_GetInputNormalRtFloat3?ڵfA'7(ڳVܯ]FՃ尲)#tsxi_GetInputEyePosRtFloat4%dLrQn0ڳVܯ]FՃ尲)#tsxi_GetInputEyeDirRtFloat3y"WMB]}E[2CV)ڳVܯ]FՃ尲("tsxi_GetInputColorRtFloat4-1OSM n 럆L<_ї0HtO{/(ڳVܯ]FՃ尲*$tsxi_GetInputTangentRtFloat3piDM7ڳVܯ]FՃ尲)#tsxi_GetInputEyeDistRtFloatL{0nBg)`! P Normal-Map, 1 P)\Fvq3? {O:rt{O:rNormalMaplNormalMap : RtSampler2D - The two dimensional sampler (TpFޚ@'? ? f F?tf F?TextureCoordslTextureCoords : RtFloat3 - The three component vector F 1+5?N>/? ? jn.Fd7atjn.Fd7aTangentToWorldZTangentToWorld : RtFloat3x3 - The 3x3 matrix F 1+5?N>/? ? 5p˚FudTQ9T5p˚FudTQ9NormalVectorjNormalVector : RtFloat3 - The three component vector F 1+5?N>/? ? 4W}@O{%%%u5E b-1OSM n"(XFҦVLE2Data, 1 %%u5E b>g'JNjn*pFCB`@T@?jn.Fd7a4W}@O{(XFҦV>g'JNjn*pFCB`@T@?P)\Fvq3wk0.DX?_^CCU {O:r-1OSM n 럆L<_ї05p˚FudTQ9f F?nE P InputBitmap? L QNIM5G&p? ? ? 5%Kլy|P? ? Q])JNЈtQ])JNЈoBitmapoBitmap eSBgc? GqiFE0IN p? ? A ?gŘrp? ? 5 B%OKp? ? Muf2BޠQTp? ?  T?cCx%Kp? ? QnfM9M$ p? ? 9QbJF}~b{p? ? TKAIzc(p? ?  b/IG p? ? ЎeJf6Kp? ? hdzCqIjAp? ? oC~Oܝ3 p? ? 4W}@O{$%%u5E b-1OSM n"(XFҦVLE2Data, 19QbJF}~b{-n,Njlpg????GqiFE0IN NORMALMAP5%Kլy|L QNIM5G&%%u5E b>g'JNjn*pFBHBb@u@?QnfM9M$  WrapQ])JNЈhdzCqIjA  b/IG 4W}@O{ЎeJf6K(XFҦV>g'JNjn*pFBHBb@u@?oC~Oܝ3 Muf2BޠQTAnisotropic5 B%OKAnisotropicA ?gŘrAnisotropicTKAIzc(-1OSM n 럆L<_ї0 T?cCx%K Wrap܂dKu=tP ,DefaultTexCoordShader? (gD9f<e? R:>a[EH*M\R:>a[EH*M\LE2Data$LE2 Data for node >g'JNjn*pLE2Data, 27wCH7wCHLE2Data$LE2 Data for node >g'JNjn*p? wkd@Xyd? ? 4W}@O{$? y݀J}NTCMoveX> ? ĦBZM? )rޙG LE2Data, 4(XFҦVLE2Data, 3"%%u5E b%%u5E bLE2Data$LE2 Data for node >g'JNjn*pLE2Data, 6QA@y:l1QA@y:l1LE2Data, 5$LE2 Data for node >g'JNjn*p$Q/G|]8$Q/G|]8LE2Data$LE2 Data for node >g'JNjn*pLE2Data, 1-1OSM n#? .;]kI 忞@" ~? z? u? o? j? > > ? L? O? ? зVJilK R:>a[EH*M\>g'JNjn*pFBC`@d@?(gD9f<wkd@Xy?7wCH>g'JNjn*pFCC`@0@?%%u5E b>g'JNjn*pF`CCb@\@KAC?4W}@O{зVJilĦBZ?y݀J}N(XFҦV>g'JNjn*pFCCb@ `@KAC?)rޙG >g'JNjn*pFBC`@d@?$Q/G|]8>g'JNjn*pFCCC`@d@?QA@y:l1>g'JNjn*pF:i P ShaderTexcoord? зVJilP? ? )#,OrRt)#,OrRTexcoord*Input texcoord brick F 1+5?N>/? ~? 4W}@O{$%%u5E b-1OSM n"(XFҦVLE2Data, 1"|? r!"I = 8tr!"I = 8Texcoord2,Input texcoord2 brick F 1+5?N>/? %%u5E b>g'JNjn*pFEDA`@P@?4W}@O{зVJil(XFҦV>g'JNjn*pFEDAb@@X@?)#,OrRr!"I = 8-1OSM n 럆L<_ї0L{0nBg)`! <P AddP)\Fvq3{? :JF>*Ut:JF>*UInputXInputX : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/? {? #2 |L?¢Fht#2 |L?¢FhInputYInputY : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/? ? ,8A fKھT,8A fKھResultResult : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/? z? 4W}@O{%%%u5E b-1OSM n"(XFҦVLE2Data, 1",8A fKھ:JF>*U%%u5E b>g'JNjn*pFD`B`@P@?4W}@O{(XFҦV>g'JNjn*pFD`Bb@@P@?#2 |L?¢FhP)\Fvq3wk0.DX?_Gp.HOV-1OSM n 럆L<_ї0L{0nBg)`! P ModulateP)\Fvq3y? 2x2֣K!dE5t2x2֣K!dE5InputXInputX : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/v? v? TXGy5֣ tTXGy5֣ InputYInputY : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/v? v?  dE9@T dE9@ResultResult : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/{? u? 4W}@O{%%%u5E b-1OSM n"(XFҦVLE2Data, 1"%%u5E b>g'JNjn*pFC`@P@?4W}@O{(XFҦV>g'JNjn*pFCb@@P@?P)\Fvq3wk0.DX?_M0(rHH dE9@TXGy5֣ 2x2֣K!dE5-1OSM n 럆L<_ї0L{0nBg)`! 4P *VectorFromComponents P)\Fvq3r? Gx:G<l5tGx:G<l5XTX : RtFloat - Scalar floating point value F 1+5?N>/p? u?  LDs(et LDs(eYTY : RtFloat - Scalar floating point value F 1+5?N>/p? q? ?8[GVTIt?8[GVTIZTZ : RtFloat - Scalar floating point value F 1+5?N>/p? q? "PZKLьt"PZKLьWTW : RtFloat - Scalar floating point value F 1+5?N>/p? p? JN۪BP TJN۪BP ResultnResult : RtFloat4 - The four component vector or color F 1+5?N>/y? o? 4W}@O{%%%u5E b(XFҦVLE2Data, 1"-1OSM n" "PZKLь%%u5E b>g'JNjn*pFC`@\@??8[GVTI LDs(e4W}@O{(XFҦV>g'JNjn*pFCb@@X@?Gx:G<l5JN۪BP P)\Fvq3wk0.DX?_JEG0-1OSM n 럆L<_ї0L{0nBg)`! ,)P 0VectorFromComponents, 1 P)\Fvq3m? Gx:G<l5pj? l?  LDs(epj? l? ?8[GVTIpj? k? "PZKLьpj? j? JN۪BP P{? j? 4W}@O{%%%u5E b(XFҦVLE2Data, 1"-1OSM n" "PZKLь%%u5E b>g'JNjn*pFCB`@\@??8[GVTI LDs(e4W}@O{(XFҦV>g'JNjn*pFCBb@[@?Gx:G<l5JN۪BP P)\Fvq3wk0.DX?_JEG0-1OSM n 럆L<_ї0/|V FK|*P ShaderInput?ڵfA'7(%dLrQn0piDM7^@A툷? p1M@o=v? }E[2CV)`MOWIB"ѥHtO{/( qQ@RjҥY@e&B_;OKFJ*rHRSEpFC~__um1CR¬5ٻzEuSSaI7֏b> 4W}@O{$%%u5E b-1OSM n"(XFҦVLE2Data, 1"y"WMB])5FYPx*yI#h"mO('B_;OKFJ*rڳVܯ]FՃ尲+%tsxi_GetInputLightDistRtFloat qQ@RjڳVܯ]FՃ尲'!tsxi_GetInputAlphaRtFloatp1M@o=ڳVܯ]FՃ尲,&tsxi_GetInputTexCoordsRtFloat3^@A툷ڳVܯ]FՃ尲+%tsxi_GetInputPositionRtFloat4)5FYP%%u5E b>g'JNjn*pF CA`@0@?HRSEpFCڳVܯ]FՃ尲-'tsxi_GetInputLightColorRtFloat4ٻzEuSڳVܯ]FՃ尲2,tsxi_GetInputWorldToObject RtFloat4x44W}@O{SaI7֏bڳVܯ]FՃ尲2,tsxi_GetInputObjectToWorld RtFloat4x4~__um1CR¬5ڳVܯ]FՃ尲3-tsxi_GetInputTangentToWorld RtFloat3x3x*yI(XFҦV>g'JNjn*pF CAX@1@?#h"mO('ҥY@e&ڳVܯ]FՃ尲+%tsxi_GetInputLightDirRtFloat3`MOWIB"ѥڳVܯ]FՃ尲)#tsxi_GetInputNormalRtFloat3?ڵfA'7(ڳVܯ]FՃ尲)#tsxi_GetInputEyePosRtFloat4%dLrQn0ڳVܯ]FՃ尲)#tsxi_GetInputEyeDirRtFloat3y"WMB]}E[2CV)ڳVܯ]FՃ尲("tsxi_GetInputColorRtFloat4-1OSM n 럆L<_ї0HtO{/(ڳVܯ]FՃ尲*$tsxi_GetInputTangentRtFloat3piDM7ڳVܯ]FՃ尲)#tsxi_GetInputEyeDistRtFloatz€ L& P InputFloat> +kCY5]BtOp? > > uM@n;LAPm? ? \/3Kf͈,t\/3Kf͈,oFloatoFloat> GqiFE0IN p> > 4W}@O{$%%u5E b(XFҦVLE2Data, 1"-1OSM n"GqiFE0IN C_TCMOVEX%%u5E b>g'JNjn*pFtBb@X@?4W}@O{+kCY5]BtO(XFҦV>g'JNjn*pFtBb@@T@?uM@n;LA\/3Kf͈,?-1OSM n 럆L<_ї0z€ L& lO InputFloat, 1e? +kCY5]BtOp? ? ? uM@n;LAPl? ? \/3Kf͈,p ? GqiFE0IN p? ? 4W}@O{$%%u5E b(XFҦVLE2Data, 1"-1OSM n"GqiFE0IN C_TCMOVEY%%u5E b>g'JNjn*pF8Cb@X@?4W}@O{+kCY5]BtO(XFҦV>g'JNjn*pF8Cb@@T@?uM@n;LA\/3Kf͈,?-1OSM n 럆L<_ї0z€ L& /P InputFloat, 2d? +kCY5]BtOp? ? ? uM@n;LAPr? ? \/3Kf͈,p? GqiFE0IN p? L? 4W}@O{$%%u5E b(XFҦVLE2Data, 1"-1OSM n"GqiFE0IN C_TCSCALEX%%u5E b>g'JNjn*pF'b@X@?4W}@O{+kCY5]BtO?(XFҦV>g'JNjn*pF'b@@T@?uM@n;LA\/3Kf͈,?-1OSM n 럆L<_ї0z€ L& +P InputFloat, 3M? +kCY5]BtOpU? L? L? uM@n;LAPu? U? \/3Kf͈,pT? GqiFE0IN pL? O? 4W}@O{$%%u5E b(XFҦVLE2Data, 1"-1OSM n"GqiFE0IN C_TCSCALEY%%u5E b>g'JNjn*pFXb@X@?4W}@O{+kCY5]BtO?(XFҦV>g'JNjn*pFXb@@T@?uM@n;LA\/3Kf͈,?-1OSM n 럆L<_ї0b=h0CRf$,P 0Material Flavor Managerb? gYأC۲+?PK \? !EJGWMpb? Z? 6~qK;2t&pb? Y? 4W}@O{$c? *P"_F̚3Ut*P"_F̚3UMat Item 0BDynamic material input connectorb? !EJGWM6~qK;2t&NOI/)[&2/ChˢjCgYأC۲+?*P"_F̚3U܂dKu=,P 0axesIndicator Truespace啯]`O둒BLE2Data, 14K4#KbnxCa? .;]kI 忞@"N? J? >? ;? >  G?ŋU.XC V#_? 4W}@O{$vs'eChw+@̌*A TYjLE2Data, 4iX%C+%cLE2Data, 11]? 偢jD%~`8[D_霥ND!Yͯvo4DIM>[LE2Data, 5[? <ĠF姁J]\P? uB!#~}LE2Data, 13J@#QLJ@#QLLE2Data, 1$LE2 Data for node >g'JNjn*pLE2Data, 16gXHTˑɄ4D-%p6%%u5E bLE2Data, 15ȂT"D*ݫW? WAGO? V? ׊;Jf|ڢZ> vK L5KN*tkL5KN*tkLE2Data, 11$LE2 Data for node >g'JNjn*pS? -V?XM% S? tveDCE`"IWJR>  vK R? S $hKnPSVm>  R? L[> IkF:ǭJR(XFҦV"-1OSM n"-V?XM%S $hKnPSVm%%u5E b>g'JNjn*pFCBb@H@?4W}@O{偢jD%~`8vs'eChw+>g'JNjn*pFB|C`@0@?U.XC VŠZ1JSU4\L[> IkF:ǭJo4DIM>[>g'JNjn*pFCC`@r@?D_霥ND!Yͯv>g'JNjn*pF8CC`@0@?(XFҦV>g'JNjn*pFmDCX@>@4BB?gXHTˑ>g'JNjn*pFCC`@v@?啯]`O둒B>g'JNjn*pFCAb@@@LBd?׊;Jf|ڢȂT"D*ݫ>g'JNjn*pFCBc@n@?L5KN*tk>g'JNjn*pFB(Cb@H@?WAG`^02eE{|@B????K4#KbnxC>g'JNjn*pFB|C`@0@?J@#QL>g'JNjn*pF CCb@H@? G?ŋ~0iV@KU>x%g'JNjn*pFxBpCb@r@?iX%C+%c>g'JNjn*pFC8Cb@H@?<ĠF姁J]`^02eE{|@Bȳ3(p4??ͣ34Σ2?뜳S2!vF,C5?.;]kI 忞@Ʉ4D-%p6>g'JNjn*pFA Bb@v@?tveDCE`"IWJ-1OSM n 럆L<_ї0uB!#~}>g'JNjn*pFC b@@@?g'JNjn*pFB CX@1@?׊;Jf|ڢWAG<ĠF姁J]qU F3f-P 2Object Render Attributes5? S $hKnPSVmPR? 4? 8Ns2]p5? =? ^mګA~Ksi[p5? ? "PbEGDߗrp5? =? F?N dp5? K? ]*qBCxp5? J? \J:I%7up5? D? iA޲1rIK>Xp5? B? ,ot"AaYp5? A? ^RI8ÿRp5? K? çwH5#Vp5? J? 4W}@O{%J@#QL-1OSM n#(XFҦV"W0@zd%G? ȅ8vDCxZp5? F? F+2MGp5? F? I2GWM:).$p5? E? mBޖw pp5? E? o[nfFp5? H? zgGFohN)p5? D? vhD zʔp5? C? fB #^p5? C? |$}mK;)p 5? B? rg@*oHp 5? A? !eLZE^Np 5? zgGFohN)I2GWM:).$ vhD zʔ]*qBCxS $hKnPSVmçwH5#V rg@*oH4W}@O{fB #^:KrbSxv No Hidden FacesNo SortTriangle SortNo Sort\J:I%7u-n,Njlpg???\Eh{5-n,Njlpg????(XFҦV>g'JNjn*pFCk@@\@?F?N d ȅ8vDCxZ 8Ns2]?F+2MG "PbEGDߗr J@#QL>g'JNjn*pFCBb@ h@?(lrsGr?^mګA~Ksi[o[nfFW0@zdmBޖw p-1OSM n 럆L<_ї˓ DefaultAdvanced GFʠN=1 }}^RI8ÿRZ`Ez]UOͽ>fdN*5Ւh, }}^RI8ÿRϱZ`Ez]UO GFʠN= 1 }},ot"AaYZ`Ez]UOͽ>fdN*5Ւh , }},ot"AaYZ`Ez]UO GFʠN= 01 }}ȅ8vDCxZZ`Ez]UOͽ>fdN*5Ւh 0, }}ȅ8vDCxZZ`Ez]UO GFʠN=0@1 }}F+2MGZ`Ez]UOͽ>fdN*5Ւh0@, }}F+2MGZ`Ez]UO GFʠN=@P1 }}I2GWM:).$Z`Ez]UOͽ>fdN*5Ւh@P, }}I2GWM:).$Z`Ez]UO GFʠN=P`1 }}mBޖw pZ`Ez]UO1釥GP>aP`0 }}mBޖw pZ`Ez]UO GFʠN=0(@6 }}Color\J:I%7uZ`Ez]UO B>I(0h@%}}\J:I%7uZ`Ez]UO GFʠN=@(P8 }}Opacity]*qBCxZ`Ez]UON\q+nN-K^(@hPA\VV?]*qBCxZ`Ez]UOY@ GFʠN=h@P@ }}Enable Obj ModeçwH5#VZ`Ez]UOͽ>fdN*5Ւh@P, }}çwH5#VZ`Ez]UO GFʠN=h 6 }}Color\Eh{5Z`Ez]UO B>I %}}\Eh{5Z`Ez]UO GFʠN=h 08 }}Opacity^mګA~Ksi[Z`Ez]UON\q+nN-K^ 0A\VV?^mګA~Ksi[Z`Ez]UOY@ GFʠN=h0@5 }}Size(lrsGrZ`Ez]UON\q+nN-K^0@A\VV?$@(lrsGrZ`Ez]UOY@ GFʠN=( 8 }}Opacity8Ns2]Z`Ez]UON\q+nN-K^(h A\VV?8Ns2]Z`Ez]UOY@ GFʠN=h(}}SurfaceZ`Ez]UO GFʠN= h0&}}EdgesZ`Ez]UO GFʠN=h'}}PointsZ`Ez]UO GFʠN=Ph`1 }}fB #^Z`Ez]UOnevG4'hP`̆fB #^VNo hidden faces No solving Triangle sortZ`Ez]UO,ot"AaY ^RI8ÿR |$}mK;)!eLZE^NiA޲1rIK>X "L2OƲ@5N0P  Pivot@? L[> IkF:ǭJPBR? @? <ĠF姁J]pD@? ?? ?? WAGp@? ?? ?? ׊;Jf|ڢpB>? 4W}@O{$(XFҦV"L[> IkF:ǭJ(XFҦV>g'JNjn*pFBECX@1@?׊;Jf|ڢWAG<ĠF姁J]`^02eE{|@B3?-ѣ2 3x3??JT34 ( *o(?܂dKu=|1P "Material List, 1;? .;]kI 忞@"8? 5? ? > ;? 4W}@O{$:? -V?XM%S? (XFҦV"-V?XM%(XFҦV>g'JNjn*pFlCBX@1@?) 6G% 5P ,Material List Manager9? -V?XM%P:? 9? &zB}J?p9? 8? 4W}@O{$7?  *GAAyp9? 8?  Jbt!p9? 6? LE\G Q v.p9? -V?XM% Jbt!&zB}J? *GAAyLE\G Q v.܂dKu=6P $Material Chunk, 16? .;]kI 忞@"? 1? /? 5? 4W}@O{$? gYأC۲+?7? gYأC۲+?b=h0CRfO 0Material Flavor Manager? gYأC۲+?P? %? !EJGWMp? $? 6~qK;2t&p? ? 4W}@O{$&? SbW MίAp? %? ɱtA{-><p? !EJGWMSbW MίAɱtA{-><6~qK;2t&NOI/)[&|z@*GVgYأC۲+?~wC쇀DO  Solid 3? .F_P#T.F_P#Material Output material __W8E#(&? 2? n%⟀A}aJp3? ,? >]zJ4 p3? *? J.HE /*gp3? )? 8VnZN:W pp3? 3? ll-#Ez k^p3? 2? K#uiL$p3? 1? ,L?D}p3? 1? 4W}@O{$J.HE /*gA>]zJ4 n%⟀A}aJ-n,Njlpg?==~?.F_P#,L?D}ll-#Ez k^=K#uiL$:KrbSxbDisabledEnabledAs OpaqueDisabled8VnZN:W pfff?܂dKu=dO LW Material, 10? .;]kI 忞@",? *? '? ? ? /? 4W}@O{$/? RGψ"F%? RGψ"F }R?DVmO LWMaterial.? RGψ"FP/? .? qN9{ۡ-~p.? -?  7-+Ahhvp.? -? ,< -THJ`p.? 0? ~:T@hHp.? ,? 4W}@O{$qN9{ۡ-~RGψ"F,< -THJ` 7-+Ahhv~:T@hHJtP8N.O  Color+? {[f(@-L*;P-? +? '޽lL]>Lp+? *? 4W}@O{$)? 3"vqHyhkp+? {[f(@-L*;'޽lL]>L plain3"vqHyhk-n,Njlpg?==?tJx_JDyiL&P  Model (? r鷅wOq=0P-? (? '޽lL]>Lp(? '? 4W}@O{$'? 'x%Fp(? &? 3 Eg򼉝p(? $? PžD&pp(? #? T<[BL6Fc! jEp(? #? umOb:Jmp(? "? Ng_Cπ&Rwp(? "? rbН AKKp(? !? oIE? Sp(?  umOb:Jm-n,Njlpg????T<[BL6Fc! jEArbН AKK3 Eg򼉝fff?'޽lL]>Lcaligari phongNg_Cπ&RwoIE? S?'x%FPžD&p=r鷅wOq=0 7G5fd'P Displacement!? I˕XMӍJS9P0? ? '޽lL]>Lp!? ? 4W}@O{$'޽lL]>L noneI˕XMӍJS9 EvmE|Kc\tP Transparency ? fO*EI,SP.? ? '޽lL]>Lp ? ? 4W}@O{$fO*EI,S'޽lL]>L none܂dKu=lP $Material Chunk, 2? .;]kI 忞@"? ? ? ? 4W}@O{$? gYأC۲+?8? gYأC۲+?b=h0CRft4P 0Material Flavor Manager? gYأC۲+?P? ? !EJGWMp? ? 6~qK;2t&p? ? 4W}@O{$? lmYo\@k*p? ? Z+YEǻrp? lmYo\@k*!EJGWMZ+YEǻr6~qK;2t&NOI/)[&|z@*GVgYأC۲+?~wC쇀D5P  Solid ? .F_P#T.F_P#Material Output material __W8E#(? ? n%⟀A}aJp? ? >]zJ4 p? ? J.HE /*gp? ? 8VnZN:W pp? ? ll-#Ez k^p? ? K#uiL$p? ? ,L?D}p? ? 4W}@O{$J.HE /*gA>]zJ4 n%⟀A}aJ-n,Njlpg=?=~?.F_P#,L?D}ll-#Ez k^=K#uiL$:KrbSxbDisabledEnabledAs OpaqueDisabled8VnZN:W pfff?܂dKu='P LW Material, 1? .;]kI 忞@" ?  ? ? > > ? 4W}@O{$? RGψ"F? RGψ"F }R?DVml7P LWMaterial? RGψ"FP? ? qN9{ۡ-~p?  ?  7-+Ahhvp? ? ,< -THJ`p? ? ~:T@hHp? ? 4W}@O{$qN9{ۡ-~RGψ"F,< -THJ` 7-+Ahhv~:T@hHJtP8N.LP  Color ? {[f(@-L*;P ? ? '޽lL]>Lp ?  ? 4W}@O{$ ? ʖyG=:Mp ? ʖyG=:M-n,Njlpg=?=?{[f(@-L*;'޽lL]>L plaintJx_JDyiLdO  Model  ? r鷅wOq=0P ? ? '޽lL]>Lp ? ? 4W}@O{$? R뮯\Kԡ; ?p ? ? COt̶OBzAp ?  EHOZl-@M_?>OBzA?O"@DADZyK&ֵT-n,Njlpg????'޽lL]>Lcaligari phongCZB/=!fI%͘DR뮯\Kԡ; ?r鷅wOq=0COt̶Lp? > 4W}@O{$'޽lL]>L noneI˕XMӍJS9 EvmE|Kc\DP Transparency> fO*EI,SP ? > '޽lL]>Lp> > 4W}@O{$fO*EI,S'޽lL]>L none܂dKu=P $Material Chunk, 3> .;]kI 忞@"> > > > 4W}@O{$> gYأC۲+?6? gYأC۲+?b=h0CRf2P 0Material Flavor Managerh> gYأC۲+?P> > !EJGWMph> > 6~qK;2t&ph> > 4W}@O{$> uL%g|rsph> > 6gt/^5O0"٢ph> !EJGWM6~qK;2t&NOI/)[&|z@*GVuL%g|rs6gt/^5O0"٢gYأC۲+?~wC쇀D%P  Solid > .F_P#T.F_P#Material Output material __W8E#(> > n%⟀A}aJp> > >]zJ4 p> > J.HE /*gp> > 8VnZN:W pp> > ll-#Ez k^p> > K#uiL$p> > ,L?D}p> > 4W}@O{$J.HE /*gA>]zJ4 n%⟀A}aJ-n,Njlpg==?~?.F_P#,L?D}ll-#Ez k^=K#uiL$:KrbSxbDisabledEnabledAs OpaqueDisabled8VnZN:W pfff?܂dKu=P LW Material, 1> .;]kI 忞@"> > > > > > 4W}@O{$> RGψ"F> RGψ"F }R?DVmP LWMaterial> RGψ"FP> > qN9{ۡ-~p> >  7-+Ahhvp> > ,< -THJ`p> > ~:T@hHp> > 4W}@O{$qN9{ۡ-~RGψ"F,< -THJ` 7-+Ahhv~:T@hHJtP8N.P  Color> {[f(@-L*;P> > '޽lL]>Lp> > 4W}@O{$> w$Nuip> w$Nui-n,Njlpg==??{[f(@-L*;'޽lL]>L plaintJx_JDyiLP  Model > r鷅wOq=0P> > '޽lL]>Lp> > 4W}@O{$>  PH$n ?p> > NrsJ+*ùp> > 7N=ILBJ_p> > ;+K`=Q p> > pZļ@f-C)p> > I"֧H%~.~p> > S3ACշ&p> > vK*OK)¿)Op>  vK*OK)¿)O?I"֧H%~.~'޽lL]>Lcaligari phong7N=ILBJ_=S3ACշ&pZļ@f-C)-n,Njlpg????NrsJ+*ùfff?r鷅wOq=0 PH$n ?;+K`=Q A 7G5fP Displacement> I˕XMӍJS9P> > '޽lL]>Lp> > 4W}@O{$'޽lL]>L noneI˕XMӍJS9 EvmE|Kc\TP Transparency> fO*EI,SP> > '޽lL]>Lp> > 4W}@O{$fO*EI,S'޽lL]>L nonen':hF% IP Editable shape> VIQGіF͡Tp> > tveDCE`"IWJPBS? > /nkUCEHLjp> > 4W}@O{$(XFҦV"/nkUCEHLj(XFҦV>g'JNjn*pFlCCX@1@?VIQGіF͡T>W5f@(䐈Ɍٸ*ćIC7 K@I mf(>3?/3C><3?޸G>^x@@nR?i>%]3? tUZ@ #a=<93? 392@I cV@ynʏQ?3?ݸs@><3?t>692[@pY>3|=<+]3?mMF>~V@>df(>!3?s>2>`@ʠھ@;e.@;\@朝Ԑ @V㤼Q;^@>Ԑ.B@>ƕ>`@}>{4;5@䤼>+B@#ƕ> 1>B>uƽ>=s%1&@W=>^v@ =\>}>{@Qz>=>>:>P>$@!5>ؙD>@QVƽ>R~a@@0;79咽>s[94@3]q̻O@>5@{1=bv>B@$>Q>@' =>@ nȟ@nhq٥@䏹E@Э>*ؾ@>a=jspD۸ z>,x3q@/߬3Vx>j9U踼@ИXt~;t>H=te@i >3 p>;r@>3$@t>]鸼@I>J>Lܸ*mn>\r@>ft> $@i >v>p p>=NF>e@ИPF>A;t>+t>o@͞/ v>vVx>X=_W Q6-@>lP߷@-=%Uv3@>@>٠~>ܷ@+G{ ~>@-=fU>p3@UG{TP@6E@ h* 6H?BJy'HNUfbłL:I5*LjUb)R8{EE%D7[ZpߘHXO jþ|l?5jþa|l?rjþ\|l?jþ|l?J;vl>%J;Jl>4J;Ml>J;zl><{l þJ$<{l&þ#<"{lþ<{lþ7<þrl:|lEj<^>|lj|l0j<1>|lJol?þJ\l?\þoJol?þfJXl?aþ!0{l?>!6{l?>#v{l?n>#{{l?W>:>ql?8>ql?8>ql?,:>ql??M2;?;?5;?B2b;?ƵH;?:H;?wos6;?E6;=.?-%5?4X;.5?/.?ݏ,C6??7*35?J>^.?ڏ>q,E4?>?X-?-?r>5?4?:h;c3?76??4?!?Ԩ,?ݏT.?N-?6->gN5ԻۀG7Ի5ԻI5ԻBe5$Ի4"ԻI5mԻXlԻ,?ۏ>.?G.?c-?꯶Ի eԻ_̶Իf45Ի]5 Իu6 Ի#6Ի8F6Իi:E>io:F>i:E>i:F>vg;n?vR;n?v;n?v3;n?E>;i?E>;i?E>P;i?E>;i?Do?N:u>Fo?:u>o?:v>o?C:v>i?-ցDоi?ԁDоi?IEоi?Eоw>Gn*w>nv>ov>aoDо=i[EоiXEоiDо{inhwoM1wn(wo(w6?@)X?(?%)>?J)=?rJ)=?bJ)Q?l/)?Xp)8c);*8L);-č89);K8^);J8^);%!8(-);_8 ();28);{<5?n4?A?i5?,>>$:.?F+?4?5? y/?-?Ѕ> >y4?f+?-?;Й옾^-?$,:24?U5A4?2W$Xi5??,+-?z>45?c<_=:.? /?Ì8"]);ٌ8^);s8c);86);^8{<);S8q/);Hw8XA);E{8F);f|/՞-?ʘ >^-?E/nlþq_lr$>OlIr$>PlQr$>_lr$tnl?þuƼrnl?þuƼ}nl?cþvƼ}nl?_þvƼnl?>qƼnl?>MqƼnl?#>PqƼnl?>pƼ>Ql?[$e>Cl?[$h>Al? [$>Ql?[$Cþ|l?r$<@þ~l?r$<þl?gq$<þl?Tq$vvvv<6<v?6<5v?<.A6w?<6w?z< \6w?x<u?-g+?N<4`5?q?1?y(2?@ޏ-)?E9?U\7I0?%2?_ۏ>1)??>԰1?-?/?<4? 5?-Hx>f8?U )ݏ.I2?!03պ79?T `8?-3/?nּ1wּwnּJPwּyxּqxּk׵xKּվ7wMּ"6x)ڏ>'M2?>>-?S+?89Ig"tveDCE`"IWJ48@J 4W}@O{$(XFҦVLE2Data, 1#J@#QLLE2Data, 3MT^RwL~YYTLE2Data, 2>  H0H H0HBjointPathB> > LhD_CoQ!'D2|=Bynjz@Ho 2|=Bynj2AEHM'>g'JNjn*pnBC`@0@2|=Bynj|?z@Hoۙ>?ceZU@䑧r[җJs@ FNewCommand// Execute // Called to execute the command function Execute(params) { var standard = params.ConValue('standard'); //selection is the joint to be modified directly sel = Node.FirstSelected(); scene = Space.CurrentScene(); owner = System.ThisOwner(); //get parent joint like so //joint's(Bone connector) - bone's(Bone connector) - bone's(Root connector) - parent joint(Joint connector) if(!(Node.ConExists(sel,"Joint") && Node.ConExists(sel,"Bone"))) return; mymat = Node.Value(sel, "WldMatrix"); //use standard 3d color convention or truespace axis colors if(standard==true) dummy = Node.Copy(owner + "/axesIndicator Standard",scene); else dummy = Node.Copy(owner + "/axesIndicator Truespace",scene); //make it visible Node.Value(dummy + "/Object Render Attributes", "Invisible") = 0; Node.Value(dummy,"Matrix") = mymat; sname = Node.ShortName(sel); theParent = Node.Rename(dummy, "PARENT" + sname); //check for parent bone numparents = Node.LinkedInputNodeCount(sel,"Bone"); if(numparents > 0) { //selection is a joint dummyBone = Node.LinkedInputNode(sel,"Bone",0); //is dummyBone a limb? if(!Node.ConExists(dummyBone,"Root")) { dummyBone = Node.LinkedInputNode(dummyBone,"Bone",0); } parent = Node.LinkedInputNode(dummyBone,"Root",0);//full joint path name //System.Alert("parent " + parent); mymat = Node.Value(parent, "WldMatrix"); dummy = Node.Copy(owner + "/dummy",scene); Node.Value(dummy,"Matrix") = mymat; sname = Node.ShortName(parent); Node.Rename(dummy, "GRANDPARENT" + sname); } //get children in reverse //joint's(Joint connector) - bone's(Root connector) - bone's(Bone connector) - children joint(Bone connector) //selection is a joint //check for children - test not working returns 1 when zero //num = Node.LinkedOutputNodeCount(sel,"Joint"); //System.Alert("children check " + num); //if(num==0) return; dummyBone = Node.LinkedOutputNode(sel,"Joint",0); System.Trace("child bone " + dummyBone); //check for bone output - indicates a child bone exists if(!Node.ConExists(dummyBone,"Bone")) { Node.Select(theParent); params.ConValue("jointPath") = sel; return; } num = Node.LinkedOutputNodeCount(dummyBone,"Bone"); if(num==0) { Node.Select(theParent); params.ConValue("jointPath") = sel; return; } //System.Alert(num); System.Trace(num); for(i=0;i<num;i++) { potChild = Node.LinkedOutputNode(dummyBone,"Bone",i);//joint or limb //check for limb //boneInOut = Node.LinkedInputNodeCount(dummyBone,"Bone") + Node.LinkedOutputNodeCount(dummyBone,"Bone"); boneInOut = Node.LinkedInputNodeCount(potChild,"Bone") + Node.LinkedOutputNodeCount(potChild,"Bone"); if(boneInOut==2) { //limb found dummyBone2 = Node.LinkedOutputNode(dummyBone,"Bone",i); child = Node.LinkedOutputNode(dummyBone2,"Bone",0);//full joint path name } else child = Node.LinkedOutputNode(dummyBone,"Bone",i);//full joint path name //System.Alert("child " + i + " " + child); mymat = Node.Value(child, "WldMatrix"); dummy = Node.Copy(owner + "/dummy",scene); Node.Value(dummy,"Matrix") = mymat; sname = Node.ShortName(child); Node.Rename(dummy, "CHILD" + sname); } Node.Select(theParent); params.ConValue("jointPath") = sel; } NScript Object Package/jScript language,S stringjointPath H0Hbooleanstandard LhD_CoQ!'4W}@O{(XFҦV>g'JNjn*pnACb@@T@2|=Bynj|?z@Hoۙ>?J@#QL>g'JNjn*pnBB`@T@2|=Bynj|?z@Hoۙ>?-1OSM n 럆L<_їjControlOˁ CRih[ a8Activity.Run('%THIS_NAME%') StartZ`Ez]UOOˁ CRih[ 0a:Activity.Stop('%THIS_NAME%') StopZ`Ez]UOMT^RwL~YYT>g'JNjn*pnCB`@0@2|=Bynj|?z@Hoۙ>? H0Hd/Project/Space 3D, 6/Skeleton, 1/limb, 2/limb/EndLhD_CoQ!' z@Ho48@J 2|=Bynj8, 2AEHM'ceZU@䑧r%> 4W}@O{$(XFҦVLE2Data, 1#z@HoMT^RwL~YYTLE2Data, 2J@#QLLE2Data, 3-1OSM n# 2|=Bynj2AEHM'>g'JNjn*pnBC`@0@2|=Bynj|?z@Hoۙ>?ceZU@䑧r[җJs@ NewCommandN // Execute // Called to execute the command function Execute(params) { grandParent = ""; parent = ""; gparentMat = System.CreateDO("Math Package/Matrix Float Data"); gparentMatInv = System.CreateDO("Math Package/Matrix Float Data"); parentMat = System.CreateDO("Math Package/Matrix Float Data"); parentMatInv = System.CreateDO("Math Package/Matrix Float Data"); childMat = System.CreateDO("Math Package/Matrix Float Data"); scene = Space.CurrentScene(); numSceneObj = Node.SubObjectCount(scene); //find parent for(i=0;i<numSceneObj;i++) { curNode = Node.SubObject(scene, i); //sname = Node.ShortName(curNode); sname = curNode; //PARENT prefix checkName = sname.substr(0,6); if(checkName == "PARENT") { parent = scene + "/" + sname; //System.Alert(checkName); parentMat = Node.Value(parent,"WldMatrix"); //remove any user scaling //parentMat.Scale(1.0,1.0,1.0); parentMat.SetScaleX(1.0); parentMat.SetScaleY(1.0); parentMat.SetScaleZ(1.0); Node.Value(parent,"Matrix") = parentMat; //parentMat.Mult(gparentMatInv); //Node.Value(parent,"Matrix") = parentMat; //parenting step //Node.ConnectTo(grandParent, "WldMatrix", parent, "OwnerMatrix"); parentMatInv = parentMat.Invert(); } } } NScript Object Package/jScript languaget5 4W}@O{(XFҦV>g'JNjn*pn.C`@@P@2|=Bynj|?z@Hoۙ>?J@#QL>g'JNjn*pnBB`@T@2|=Bynj|?z@Hoۙ>?-1OSM n 럆L<_їjControlOˁ CRih[ a8Activity.Run('%THIS_NAME%') StartZ`Ez]UOOˁ CRih[ 0a:Activity.Stop('%THIS_NAME%') StopZ`Ez]UOMT^RwL~YYT>g'JNjn*pnCB`@0@2|=Bynj|?z@Hoۙ>?z@Ho48@J 4W}@O{$(XFҦVLE2Data, 1#J@#QLLE2Data, 3MT^RwL~YYTLE2Data, 2> <%Ka9 _7<%Ka9 _7DjointpathD> 2|=Bynj> > z@Ho 2|=Bynj2AEHM'>g'JNjn*pnBC`@0@2|=Bynj|?z@Hoۙ>?ceZU@䑧r[җJs@ pNewCommand// Execute // Called to execute the command function Execute(params) { var jointpath = params.ConValue('jointpath'); // TODO: put your action code here scene = Space.CurrentScene(); numSceneObj = Node.SubObjectCount(scene); parentMat = System.CreateDO("Math Package/Matrix Float Data"); childMat = System.CreateDO("Math Package/Matrix Float Data"); // transfer values from PARENT to the joint //have joint need PARENT dummy for(i=0;i<numSceneObj;i++) { curNode = Node.SubObject(scene, i); sname = curNode; //PARENT prefix checkName = sname.substr(0,6); if(checkName == "PARENT") { parent = scene + "/" + sname; parentMat = Node.Value(parent,"Matrix"); Node.Value(jointpath,"Matrix") = parentMat; Node.Value(jointpath,"MovMaxX") = parentMat.GetTransX(); Node.Value(jointpath,"MovMaxY") = parentMat.GetTransY(); Node.Value(jointpath,"MovMaxZ") = parentMat.GetTransZ(); Node.Value(jointpath,"MovMinX") = parentMat.GetTransX(); Node.Value(jointpath,"MovMinY") = parentMat.GetTransY(); Node.Value(jointpath,"MovMinZ") = parentMat.GetTransZ(); } } // do transfer for each CHILD // look at joint children and then match to scene dummy joints //does child bone exist? num = Node.LinkedOutputNodeCount(jointpath,"Joint"); if(num==0) return;//this test may or may not work, bug in ts dummyBone = Node.LinkedOutputNode(jointpath,"Joint",0); //if not a bone return - catches ts bug if(!Node.ConExists(dummyBone ,"Bone")) return; num = Node.LinkedOutputNodeCount(dummyBone,"Bone"); for(i=0;i<num;i++) { potChild = Node.LinkedOutputNode(dummyBone,"Bone",i);//joint or limb //check for limb //boneInOut = Node.LinkedInputNodeCount(dummyBone,"Bone") + Node.LinkedOutputNodeCount(dummyBone,"Bone"); boneInOut = Node.LinkedInputNodeCount(potChild,"Bone") + Node.LinkedOutputNodeCount(potChild,"Bone"); if(boneInOut==2) { //limb found dummyBone2 = Node.LinkedOutputNode(dummyBone,"Bone",i); child = Node.LinkedOutputNode(dummyBone2,"Bone",0);//full joint path name } else child = Node.LinkedOutputNode(dummyBone,"Bone",i);//full joint path name //now search scene dummy joints shortChild = Node.ShortName(child); for(j=0;j<numSceneObj;j++) { curNode = Node.SubObject(scene, j); sname = curNode; checkName = sname.substr(0,5); if(checkName == "CHILD") { //now check for match by getting name after CHILD checkName = sname.substr(5,sname.length-5); if(checkName == shortChild) { //System.Alert(checkName); dummyChild = scene + "/" + sname; childMat = Node.Value(dummyChild,"Matrix"); Node.Value(child,"Matrix") = childMat; Node.Value(child,"MovMaxX") = childMat.GetTransX(); Node.Value(child,"MovMaxY") = childMat.GetTransY(); Node.Value(child,"MovMaxZ") = childMat.GetTransZ(); Node.Value(child,"MovMinX") = childMat.GetTransX(); Node.Value(child,"MovMinY") = childMat.GetTransY(); Node.Value(child,"MovMinZ") = childMat.GetTransZ(); } } } } } NScript Object Package/jScript language~൱D@ j#^cstringjointpath<%Ka9 _7<%Ka9 _7d/Project/Space 3D, 6/Skeleton, 1/limb, 2/limb/End4W}@O{(XFҦV>g'JNjn*pnC@Db@@P@2|=Bynj|?z@Hoۙ>?J@#QL>g'JNjn*pnBB`@T@2|=Bynj|?z@Hoۙ>?-1OSM n 럆L<_їjControlOˁ CRih[ a8Activity.Run('%THIS_NAME%') StartZ`Ez]UOOˁ CRih[ 0a:Activity.Stop('%THIS_NAME%') StopZ`Ez]UOMT^RwL~YYT>g'JNjn*pnCB`@0@2|=Bynj|?z@Hoۙ>?z@Ho48@J 4W}@O{$(XFҦVLE2Data, 1#> z@HoMT^RwL~YYTLE2Data, 2J@#QLLE2Data, 3-1OSM n# 2|=Bynj2AEHM'>g'JNjn*pnBC`@0@2|=Bynj|?z@Hoۙ>?ceZU@䑧r[җJs@ NewCommand // Execute // Called to execute the command function Execute(params) { // TODO: put your action code here scene = Space.CurrentScene(); numSceneObj = Node.SubObjectCount(scene); mylist = System.CreateDO("Common Data Package/String Array Data"); mylist.Clear(); myList = System.CreateDO("Common Data Package/String Enum Data"); myList.Clear(); //find grandparent for(i=0;i<numSceneObj;i++) { curNode = Node.SubObject(scene, i); sname = curNode; //GRANDPARENT prefix checkName = sname.substr(0,11); if(checkName == "GRANDPARENT") myList.SetStringAt(0, curNode); //mylist.InsertAt(1, curNode); //Node.Delete(scene + "/" + curNode); } //find parent for(i=0;i<numSceneObj;i++) { curNode = Node.SubObject(scene, i); sname = curNode; //PARENT prefix checkName = sname.substr(0,6); if(checkName == "PARENT") myList.SetStringAt(1, curNode); //mylist.InsertAt(2, curNode); //Node.Delete(scene + "/" + sname); } k=2; //find each child for(i=0;i<numSceneObj;i++) { curNode = Node.SubObject(scene, i); sname = curNode; //PARENT prefix checkName = sname.substr(0,5); if(checkName == "CHILD") { myList.SetStringAt(k, curNode); k++; } //mylist.InsertAt(k, curNode); //Node.Delete(scene + "/" + sname); } //use list to delete items for(i=0;i<k;i++) { //curNode = mylist.RemoveAt(1); curNode = myList.GetStringAt(i); Node.Delete(scene + "/" + curNode); //System.Trace(curNode); } } NScript Object Package/jScript languageQBTH4W}@O{(XFҦV>g'JNjn*pnC!Cb@H@2|=Bynj|?z@Hoۙ>?J@#QL>g'JNjn*pnBB`@T@2|=Bynj|?z@Hoۙ>?-1OSM n 럆L<_їjControlOˁ CRih[ a8Activity.Run('%THIS_NAME%') StartZ`Ez]UOOˁ CRih[ 0a:Activity.Stop('%THIS_NAME%') StopZ`Ez]UOMT^RwL~YYT>g'JNjn*pnCB`@0@2|=Bynj|?z@Hoۙ>?z@HoddKtN4 P ActvLoop > 2|=Bynj> > 4W}@O{$(XFҦV"> t|Iet|Ie Iteration count Iteration counth#nFO&h#nFO&LE2Data$LE2 Data for node >g'JNjn*p> ; `A$%}; `A$%}LoopBodyLoopBody> > ,hML,hML$Current iteration$Current iteration> -1OSM n#> z@HouB!#~}uB!#~}LE2Data, 2$LE2 Data for node >g'JNjn*p asvHhTG asvHhTG$NodeIconNodeIcon eSBgc$ 2|=Bynj4W}@O{(XFҦV>g'JNjn*pn8DHCb@@X@; `A$%}ߒ$)?? asvHhTGeSBgc$ I?'kLjW9x]y\q׼]B@Z]sIB7@d$F>bl8N!8PIS1!(qHlvm\B"m{Ǽ7켙7ZVu_w~FmFmFmFmv텵kÊ1|0aYs ÿ߰П`cmpW9L3< DQAt2e*Ys`˖ sQo杇j0l0D$P_&1lh|h=.F K,g{B6ܹAQT@nA,EAͼΓ>f s>RPOC2I0ck!kL8̞=f~߳RWU hZ03%sSdϥ;JP,(D@"{8q>^ÖL66mwqw}㦛S )C,,Sؼ$2 ׉FO%,XRطп; /_i$ͅh1^?~qܯ7])kw}^&(ŒB@v ?I>Ӡ ź^ЇrWs[$fѯNvׅ+Vȷ=z Tz2g'֐e3Y,bڂ^NuPܥ*~1G#y]φm YPK k˙-H$p㍷ OU\}&x~xO1{[b;/J}-ZH.xQT%,r.c:fͶ@;-}&=ojz.Vl:=uʠ{q 3F={*n:uOoz^jj,Wp ;Y dvl&{.ؽ-pW0{/|}39Z]3xq4ދ|8%6C<}?d3YzZm%/cj :::Q[ ˖t"2 ԓIM3[sWBdq(hr~%d0HTvN+/gG<Hdu+D/X<"0iW"żG˂,ޅ}7 UdŲ/2{cفZ޽A̕E@_Z}UqG00gS?#߱C{ptD9 02@{-bR=y~قq!E_Ws==!&D 烑>_{_'Uص9O= Xۍ>ݛ{ 8c$_{nnY$e|G4hg}G>hC9]^w)afcۙyAucǞ6'N²vx>F@O<,=ܷ`MEus,/#4m_ed_^i)_@ݶtɒp%\,Z30t}[pς$`tB/UG\:kbϗ.]Q]}Ff /Z+2TZ#x}Gچk1h̙| IgAS@悪]1:ԟ=˟lG>a.hl y@TO F% ڸBW#$ނhh;Xg5T[CuއCY6oMem dW6o!ڭ>9??ʄ~t]AoyWc} !KwQm 0;(yO1JN|qg1O7$x .~ԗ5=>oVRC|c˖#і/xڟZڈ׉ܧTM<= 5P˿˪E-_0öm;BǟUoj?[oꪫ]yc./`⢭OOcVa] \pqH df 9pc?|H 2ɀ}\x9>$/A]8V?şkr-w~_nwu-gV?"*~j +b`T}3ߔ͍3[rgsϩdo]mh'[]gZ迾Xӱ_ĽAO~^EcQs1b 9; F{<-?q_r= #'osV_fz-}-ÿ zo\Xjo sezs-~>}g5wAloΖ=7Lx~dSezO5gy'r.7nH'q?}ݯi.{yr}1~^W}D1s]?>O}7,\zkcqWZz_W{']>l)$~3cVcQEe^wF[{PH{s?ڼjNZfX/p;Coܵ^[zU "´r`ػ5c7ԫi).䧯rQ&/!W;xݶks/ۧ DN5pٟrϮMF=U`Yn=@D˾hiqa ֞J6c0X^{0Ǻbr:~xc=Y?q<3i~[K<_M{N^ϲ{ /$i[sl+ (S5\ ϠQQ>jwq}Um+//ul+b̼TTlީĉ#\'sǐY@\F0_!g@Rݏm4aݺ lΣ$WW3 좆e=Giln-S }и^ϽwU ޚAܧfQ,Q5gzqf~<~e=@P˟Ÿ`k$vT͉hL=bvz(oeefVkH~ ہW}ͮ$OzODksl d<~ެ]o=M1گK}N{ gp E\%?؜Fٹ,Zso`F]:_n.{ҳhcGVw[`q JR4[0uӓbI+\aS 5՗,ɂ3R]mur~'#$^bۻ{wӠYU(G{ 2O|mQ;5S5lOο9p%HZאa=1sIM{AWIYKs$[oW~o2i @|<˅w={ kko`FSQ= }P6Ϛo}w hO?n~# j@5wf=zn8 נWyWȗ~d+ bRmYdo9a vޭ%cѢMbߑ%쟰9ȿU(߀`ϜdWwܾ Z>_S6HN1?{cy`d63ۛKk]w?vLvßmY%=/^=΁z }+Kg5P>n1vqR Z8H|S.?l̿:?(xl 0TdǏ=^GRDǝ^'~majs.(?V5Ȕe '[Mdq0F]??ʣ H+4f1lnk^X:zr{E:STȀx@(ʫ{yF.gn8,Ni@$> K7[yDι7VǑÐ~2OA,00ߎuTUGX!|O9Q:Olx_.DKڳQsǓ|t&yě`_d ?-] ~0b="`*G9ӜDj ɓGB ,$oB=,{F'Eg}YޛwD*˻84Xǿ|ޘ7 Oym>O={Sj̿'gUἧjiF]ЙT[hNff?'EOZڻX/16{ &5|V}ol~ :b,ߖ{eSBuƌYcuW0Tԗjhi 9hIL}Z6t>^s ۨw=\w9`d_qah~%繦O}ɓ;صwAf12}'g~ WfΜݐw3xܸMqeՕ>$zۊ'.?/i5_=O:O+;X*SEwdOt+\oxJN]u`Oވrd9~rFPrV5g&͎S ʃQ\c,D;;S+eI"` 7uy+:g<^4, `B穑1b@M<xkXQP=>ojY<6/L@T;cBY'6O7H,^^,)aqR NlN,kQlpqilK5h{!f џCU,EFXk\B͝V_h^|P[DK?S?/}ejO>Gjg.+P{9mom豝hgɟEc-rsTja%KmlF5\.ݏr&{ p*Ǚ8䱎@ַ-P^Ǡ9>x}]o܆Wt`+ժ :37P jxcgu +06娇@%u7/6'}}KOC{as6kw7rFks+s{σ}k _)4Ļ^c|4jƤVߪ< y t~wmU+jBlZ1\`P4罙;g{EٗsgE`Ӧ-sP>z 6 l m5Jo堟)ٻ̾|M:Ur>@P-\w-ec-F{ F~_>T5_-b?f/M_dnUhePmye@5ںfe~Ơ Ƣ%+I]';Y:@5 B|^OªU}kpDzFl|k{ d 6 n(`ٲ|Pg>1ǧAO~ݏ[P+pӒBz}Y#qԌjol@6Gvg7>TO4~8Y {zھ`@vλexìyNN'*qYPn'{w\|BP\Gs4sc'as*3Lp 5Py>Q>Sf~2Xd@C*\˩ғnnjǝ魓zh'8`WnCiSAm</*堧h5cXHd&aZhyg|mי<Ϲű"|h _&WtfC֏t7 t^XjJ}Hv;\,׉A^RbhjD:jeAB_q$ &[3^mrrՠ^oߚ0u!Y{*ɨ/`Bh|=$2}:џ?KPREANbcAd:C(C3f~3ICvn{zC(@' OB[R1F: .f_g4t~ 3~ofDCa=g=CTsJܭ^ڣt}l>œTGgĶyz< ͩ%̚5ƌ&LfygY#FmFmFm ?Yڏt|Ieh#nFO&>g'JNjn*pFCC@f@X@?; `A$%}-1OSM n 럆L<_ї0,hMLuB!#~}>g'JNjn*pnC:Cb@T@; `A$%}ߒ$)??z@Ho48@J 4W}@O{$(XFҦVLE2Data, 1#J@#QLLE2Data, 3MT^RwL~YYTLE2Data, 2> k{ LAbŘ$k{ LAbŘ$Dscenenodes R1TKNXID> _%XMw*%y>_%XMw*%y>DitemindexD> 2|=Bynj> > z@Ho 2|=Bynj2AEHM'>g'JNjn*pnBC`@0@2|=Bynj|?z@Hoۙ>?ceZU@䑧r[җJs@ NewCommand// Execute // Called to execute the command function Execute(params) { var scenenodes = params.ConValue('scenenodes'); var itemindex = params.ConValue('itemindex'); // TODO: put your action code here curnode = scenenodes.GetAt(itemindex-1); System.Trace("select joint: " + curnode); Node.Select(curnode); //Node.Delete(curnode); if(Node.Exists("Status Line")) { if(Node.ConExists("Status Line","Model")) { Node.Value("Status Line","Model") = "processing joint: " + curnode; } } } NScript Object Package/jScript language} LCommon Data Package/String Array Datascenenodes R1TKNXIk{ LAbŘ$intitemindex_%XMw*%y>_%XMw*%y>k{ LAbŘ$4W}@O{(XFҦV>g'JNjn*pnmDVCb@@T@2|=Bynj|?z@Hoۙ>?J@#QL>g'JNjn*pnBB`@T@2|=Bynj|?z@Hoۙ>?-1OSM n 럆L<_ї0MT^RwL~YYT>g'JNjn*pnCB`@0@2|=Bynj|?z@Hoۙ>?z@Ho$ˋ%J)bkgP  Run Activity, 3 > 2|=Bynjd> ,EwN:'eW[,EwN:'eW[LE2Data, 2$LE2 Data for node >g'JNjn*p19&FYL(W,19&FYL(W,LE2Data$LE2 Data for node >g'JNjn*p> 4W}@O{$(XFҦV#iP(I:7ntiP(I:7ntLE2Data, 1$LE2 Data for node >g'JNjn*p-1OSM n#z@HouB!#~}uB!#~}LE2Data, 3$LE2 Data for node >g'JNjn*p啯]`O둒B asvHhTG$ 2|=Bynj,EwN:'eW[>g'JNjn*pFAC7C`@c@?19&FYL(W,>g'JNjn*pFCB`@c@?4W}@O{(XFҦV>g'JNjn*pFCCa@@T@? asvHhTGeSBgc I?'kLjW9!rxxǟZEY2!F$f-UCV[nm(J b$?sוwܛ<'7֙?IH"E)RH"E3ر̦8#h7]`j,M8F_i0 u2)00hj׮M6 dS9 Մ S(44tRV}+W-oooãL{СC8͛>/)a^ӦMj۶-۷oOԱcGԩW.]k׮\Խ{w^zw8p,᳃fΚHSL41c͚5fϞ洹c?NO<=3p-Z,YB˖-z7i͚5jի?O>_S۶,?ލSo?U?ܹ_:p>|rrrѣ\'O3gйsΟ?O.\/ҥK._LW\|*..[n>{25`[:{970=$s˚+澭c m m5_~esV1Yo#G,Ͱ~@LeXQ֭-qzGMm۶ i˖-_M_~%ק~|{|ꫯK/D˗/g}ア'Ϛ7oߧcY*C~>==&OL&M{dzu$҈#hС4h JJJ_U&F?++_ۑ#G?ӳV9!98777Y*?'y(~6Wa;k ?ڄ/,~̙ï-77qKw7?|:tPW3XsN>6LJ~w/))͐P?sL~m:M6dح>{US{mةSVeÆ >հ$|M0d-σ \2!?3b[ݺuHQ+QFY%37S]S rքf+7رc*|||קƠ'8.9!N*5J@Z1%0?cn}߿?ϡAN $k9_!r,Xz)۱tR /܏^{^uz飏>k|?琬_mӦMyf~Wںu+B"/e<Ώ]v?Cu׮]3\75 943<yt36ǚG_= O*a۬??ּ~:mG$G,zX@ȉ=q0k*|7nv^޽vo6?9DC,o }SV\ߠ6u|V 5*S/>IM> }`P#6n8A|~<%%%bccw޲c;wB0 5Gc{:5c3^NÇ/jƤ`d2?>L ilA4{V#\fM(vgxpe+c1= w_vm/^rBsWklh3x7?bȧ1x霎uKI{~5$#:gϞg=5n8zh.A:zSN-~ k_|yz9_ĩ׭[">-bȏw5Gp+メXc͏X;"ѡCq|:"z,gC T =.bwX>fųvCn5~5}RL)YVLYO>N/}]cfɆ}#";ћ˻GXcL`O1GLZcgϞb~/<އK􄄏D;CUCo pB~N"B _zM?'4fBܢo߾: ~Iwi "~-'qm>=<0sJ}"'s@:"]kьg&JF튾gg.)/{y?ŵiYc":}LZ]@`9&j}:b"m!E_fR' K=U%c~sŵRܯ}Ri͚1'r{ kcϱq?؆ ΜmMsV !:I](}/ (Q{8žڷoK +46*_1=/ bsg@4n  1`-$?{#v>Gig`wǺ43joS׶{hv:9?3}ߥKq7&rybY#M1y50wi4KCwK4&onFQ 2 .Iӧ?fH5S;Ci+Uv@?LwK_Cw (eyF_l׮ݜdpE3i&EB^k]#>۷o?yZc! gi{v MȧhPLW2[D_0sLj@ϴ>K~%j%/f(?yNٛ#BU<^>{}Ϗ3?22 :uDEj8+Z^C O>㿘׻I,`4rػ&^ZD,O3'?S+WJHU=bh_R7MRgqJy/Cϱqu3ͧP6yǘEL&r*{D'?KeodTiBB,# ?n1ocٜܝS8&X5}T`߬t?Zɾ9j㷙=Ao>nTc>13.sZЛJP&Lo"[y}_OPbGzOKh8G_Uk15Ȯ}R3Sg~ثcCwf[esaj^?MPGOSkyMػ4*)AkQf.4N3җ_Զ"Z &kH_իP ?jZj%͟oc/{06|&NSv揾ޢKGTT}ť~`GriL~EՊ}`ze9f}o}JL »R9{9Ij *Zt 0h5Osc=;;4OCLn7=׾z_ʿEý4:sq }C;5#jzo{>=)(z;KkUE#[ܨv?}S|羟yY8D];Ԗs:_Uƿ=㏱o96ORXfK|%}Q=?sl4Ÿ_Ǻކ{gf'c U?U~=J)Ik fo~2'?x׺z6loW0%Ʈ6 {|Ծ2o[}!z>/zF|n4Ri*'X}ƾ=z?Jxo)wE"{;NQaA z*cܗ{u/u/>V}|޳S帝f4~(SG0jo2Ѯl ?{IW=#e;lG ϻJ읏ΐS=4fR/?΁G,}` .s軉 &RVB 1,fDoO '''Pwft%vPsbO<߿Ȯ96Ё*}YQO?`^ˇ}m;ޱtcC*~qPuu*ݵ}loOWۀ v *!~쾕\3Ufu'ʥ! 97:a_2풡j'9|k*:Ϋ'),hQk=GlB>^:'ԩLywd Zc_=ɓ}pVJFn.%jGee;rjBQvFHV)m2T::EZkuQs!~/zRٗ?h7le /o7JI^*`?j>Tڵm[\QQ3zDQll4>1Է_<OJiPr?>O))Il2_Rh9;iޱ =Tv=Eυof;Iw~EQ|ݗ+V-}rB?3^cz3䋢-[JsMG^[nB>rR !Gn\/ynnni!w\Ĥ1a= }"F8w{|> 5wW}YguUvb=G5{Ǎ^#+7})]ڷۄw0]W)WWLP!>g/n7}8yVo(|úXN{^g~LD~+wxx'﷟?d{gp'ˢ {%ouL\{P8W9s^ M6= ΐ~pݺu~gp~rAZh?3VpRGjzc6l=M9o{7 3}sύ֬!#g#?y8Mo=[q6.vu"Һ34+T^9]ΌՌKȊSh6ֶ>Jv}^[vv*""_eMur,swlrͦY?<%&7= 9݋譾}hΜtw#Uu22y?z6RSر̢fǼhvފ)RH"E_V啯]`O둒B>g'JNjn*pFCCa@T@?iP(I:7nt>g'JNjn*pFBUC`@c@?-1OSM n 럆L<_їeActivity GFʠN=0@@< }} Control Inz@HoZ`Ez]UO GFʠN=@0@= }} Control Out2|=BynjZ`Ez]UOOˁ CRih[ o8Activity.Run('%THIS_NAME%')Run ActivityZ`Ez]UOOˁ CRih[ 0s:Activity.Stop('%THIS_NAME%')Stop ActivityZ`Ez]UOz@HouB!#~}>g'JNjn*pFCBa@P@?48@J 4W}@O{$(XFҦVLE2Data, 1#J@#QLLE2Data, 3MT^RwL~YYTLE2Data, 2>  H0HB> LhD_CoQ!'D> 2|=Bynj> > z@Ho 2|=Bynj2AEHM'>g'JNjn*pnBC`@0@2|=Bynj|?z@Hoۙ>?ceZU@䑧r[җJs@ RNewCommand// Execute // Called to execute the command function Execute(params) { var standard = params.ConValue('standard'); //selection is the joint to be modified directly sel = Node.FirstSelected(); scene = Space.CurrentScene(); owner = System.ThisOwner(); //get parent joint like so //joint's(Bone connector) - bone's(Bone connector) - bone's(Root connector) - parent joint(Joint connector) if(!(Node.ConExists(sel,"Joint") && Node.ConExists(sel,"Bone"))) return; mymat = Node.Value(sel, "WldMatrix"); //use standard 3d color convention or truespace axis colors if(standard==true) dummy = Node.Copy(owner + "/axesIndicator Standard",scene); else dummy = Node.Copy(owner + "/axesIndicator Truespace",scene); //make it visible Node.Value(dummy + "/Object Render Attributes", "Invisible") = 0; Node.Value(dummy,"Matrix") = mymat; sname = Node.ShortName(sel); theParent = Node.Rename(dummy, "PARENT" + sname); //check for parent bone numparents = Node.LinkedInputNodeCount(sel,"Bone"); if(numparents > 0) { //selection is a joint dummyBone = Node.LinkedInputNode(sel,"Bone",0); //is dummyBone a limb? if(!Node.ConExists(dummyBone,"Root")) { dummyBone = Node.LinkedInputNode(dummyBone,"Bone",0); } parent = Node.LinkedInputNode(dummyBone,"Root",0);//full joint path name //System.Alert("parent " + parent); mymat = Node.Value(parent, "WldMatrix"); dummy = Node.Copy(owner + "/dummy",scene); Node.Value(dummy,"Matrix") = mymat; sname = Node.ShortName(parent); Node.Rename(dummy, "GRANDPARENT" + sname); } //get children in reverse //joint's(Joint connector) - bone's(Root connector) - bone's(Bone connector) - children joint(Bone connector) //selection is a joint //check for children - test not working returns 1 when zero //num = Node.LinkedOutputNodeCount(sel,"Joint"); //System.Alert("children check " + num); //if(num==0) return; dummyBone = Node.LinkedOutputNode(sel,"Joint",0); //System.Trace("child bone " + dummyBone); //check for bone output - indicates a child bone exists if(!Node.ConExists(dummyBone,"Bone")) { Node.Select(theParent); params.ConValue("jointPath") = sel; return; } num = Node.LinkedOutputNodeCount(dummyBone,"Bone"); if(num==0) { Node.Select(theParent); params.ConValue("jointPath") = sel; return; } //System.Alert(num); //System.Trace(num); for(i=0;i<num;i++) { potChild = Node.LinkedOutputNode(dummyBone,"Bone",i);//joint or limb //check for limb //boneInOut = Node.LinkedInputNodeCount(dummyBone,"Bone") + Node.LinkedOutputNodeCount(dummyBone,"Bone"); boneInOut = Node.LinkedInputNodeCount(potChild,"Bone") + Node.LinkedOutputNodeCount(potChild,"Bone"); if(boneInOut==2) { //limb found dummyBone2 = Node.LinkedOutputNode(dummyBone,"Bone",i); child = Node.LinkedOutputNode(dummyBone2,"Bone",0);//full joint path name } else child = Node.LinkedOutputNode(dummyBone,"Bone",i);//full joint path name //System.Alert("child " + i + " " + child); mymat = Node.Value(child, "WldMatrix"); dummy = Node.Copy(owner + "/dummy",scene); Node.Value(dummy,"Matrix") = mymat; sname = Node.ShortName(child); Node.Rename(dummy, "CHILD" + sname); } Node.Select(theParent); params.ConValue("jointPath") = sel; } NScript Object Package/jScript languagestringjointPath H0Hbooleanstandard LhD_CoQ!'4W}@O{(XFҦV>g'JNjn*pnmDCb@@T@2|=Bynj|?z@Hoۙ>?J@#QL>g'JNjn*pnBB`@T@2|=Bynj|?z@Hoۙ>?-1OSM n 럆L<_їjControlOˁ CRih[ a8Activity.Run('%THIS_NAME%') StartZ`Ez]UOOˁ CRih[ 0a:Activity.Stop('%THIS_NAME%') StopZ`Ez]UOLhD_CoQ!'  H0HH/Project/Space 3D/Skeleton/Joint, 3MT^RwL~YYT>g'JNjn*pnCB`@0@2|=Bynj|?z@Hoۙ>?z@Ho48@J 2|=Bynj> 2AEHM'ceZU@䑧r%> 4W}@O{$(XFҦVLE2Data, 1#> z@HoMT^RwL~YYTLE2Data, 2J@#QLLE2Data, 3-1OSM n# 2|=Bynj2AEHM'>g'JNjn*pnBC`@0@2|=Bynj|?z@Hoۙ>?ceZU@䑧r[җJs@ NewCommand// Execute // Called to execute the command function Execute(params) { grandParent = ""; parent = ""; gparentMat = System.CreateDO("Math Package/Matrix Float Data"); gparentMatInv = System.CreateDO("Math Package/Matrix Float Data"); parentMat = System.CreateDO("Math Package/Matrix Float Data"); parentMatInv = System.CreateDO("Math Package/Matrix Float Data"); childMat = System.CreateDO("Math Package/Matrix Float Data"); scene = Space.CurrentScene(); numSceneObj = Node.SubObjectCount(scene); //find grandparent for(i=0;i<numSceneObj;i++) { curNode = Node.SubObject(scene, i); //sname = Node.ShortName(curNode); sname = curNode; //GRANDPARENT prefix checkName = sname.substr(0,11); if(checkName == "GRANDPARENT") { grandParent = scene + "/" + sname; //System.Alert(checkName); gparentMat = Node.Value(grandParent,"WldMatrix"); gparentMatInv = gparentMat.Invert(); } } //find parent - which is the joint that was changed //if(grandParent=="") return; for(i=0;i<numSceneObj;i++) { curNode = Node.SubObject(scene, i); //sname = Node.ShortName(curNode); sname = curNode; //PARENT prefix checkName = sname.substr(0,6); if(checkName == "PARENT") { parent = scene + "/" + sname; //System.Alert(checkName); parentMat = Node.Value(parent,"WldMatrix"); parentMatInv = parentMat.Invert(); } } //do parenting //find each child and do parenting if(parent=="") return; for(i=0;i<numSceneObj;i++) { curNode = Node.SubObject(scene, i); //sname = Node.ShortName(curNode); sname = curNode; //PARENT prefix checkName = sname.substr(0,5); if(checkName == "CHILD") { child = scene + "/" + sname; //System.Alert(checkName); childMat = Node.Value(child,"WldMatrix"); childMat.Mult(parentMatInv); Node.Value(child,"Matrix") = childMat; //parenting step Node.ConnectTo(parent, "WldMatrix", child, "OwnerMatrix"); } } if(grandParent!="") { parentMat.Mult(gparentMatInv); Node.Value(parent,"Matrix") = parentMat; //parenting step Node.ConnectTo(grandParent, "WldMatrix", parent, "OwnerMatrix"); } //manual test of next steps is good //copy matrix of the fake joints to the real joints //and set min/max xyz to match translation //do this for PARENT and all the CHILD joints, no change for the GRANDPARENT it is just a starting point //ideally - // 1. select the joint // 2. create the dummy joint objects and select the PARENT for transform manipulation // 3. after manipulation transfer data to the real joints PARENT and all the CHILD // 4. delete the dummy joints // need to save the real parent joint for step 3 } NScript Object Package/jScript languagex |S4W}@O{(XFҦV>g'JNjn*pn`DCb@O@2|=Bynj|?z@Hoۙ>?J@#QL>g'JNjn*pnBB`@T@2|=Bynj|?z@Hoۙ>?-1OSM n 럆L<_їjControlOˁ CRih[ a8Activity.Run('%THIS_NAME%') StartZ`Ez]UOOˁ CRih[ 0a:Activity.Stop('%THIS_NAME%') StopZ`Ez]UOMT^RwL~YYT>g'JNjn*pnCB`@0@2|=Bynj|?z@Hoۙ>?z@Ho48@J 4W}@O{$(XFҦVLE2Data, 1#J@#QLLE2Data, 3MT^RwL~YYTLE2Data, 2> <%Ka9 _7D> 2|=Bynj> > z@Ho 2|=Bynj2AEHM'>g'JNjn*pnBC`@0@2|=Bynj|?z@Hoۙ>?ceZU@䑧r[җJs@ pNewCommand// Execute // Called to execute the command function Execute(params) { var jointpath = params.ConValue('jointpath'); // TODO: put your action code here scene = Space.CurrentScene(); numSceneObj = Node.SubObjectCount(scene); parentMat = System.CreateDO("Math Package/Matrix Float Data"); childMat = System.CreateDO("Math Package/Matrix Float Data"); // transfer values from PARENT to the joint //have joint need PARENT dummy for(i=0;i<numSceneObj;i++) { curNode = Node.SubObject(scene, i); sname = curNode; //PARENT prefix checkName = sname.substr(0,6); if(checkName == "PARENT") { parent = scene + "/" + sname; parentMat = Node.Value(parent,"Matrix"); Node.Value(jointpath,"Matrix") = parentMat; Node.Value(jointpath,"MovMaxX") = parentMat.GetTransX(); Node.Value(jointpath,"MovMaxY") = parentMat.GetTransY(); Node.Value(jointpath,"MovMaxZ") = parentMat.GetTransZ(); Node.Value(jointpath,"MovMinX") = parentMat.GetTransX(); Node.Value(jointpath,"MovMinY") = parentMat.GetTransY(); Node.Value(jointpath,"MovMinZ") = parentMat.GetTransZ(); } } // do transfer for each CHILD // look at joint children and then match to scene dummy joints //does child bone exist? num = Node.LinkedOutputNodeCount(jointpath,"Joint"); if(num==0) return;//this test may or may not work, bug in ts dummyBone = Node.LinkedOutputNode(jointpath,"Joint",0); //if not a bone return - catches ts bug if(!Node.ConExists(dummyBone ,"Bone")) return; num = Node.LinkedOutputNodeCount(dummyBone,"Bone"); for(i=0;i<num;i++) { potChild = Node.LinkedOutputNode(dummyBone,"Bone",i);//joint or limb //check for limb //boneInOut = Node.LinkedInputNodeCount(dummyBone,"Bone") + Node.LinkedOutputNodeCount(dummyBone,"Bone"); boneInOut = Node.LinkedInputNodeCount(potChild,"Bone") + Node.LinkedOutputNodeCount(potChild,"Bone"); if(boneInOut==2) { //limb found dummyBone2 = Node.LinkedOutputNode(dummyBone,"Bone",i); child = Node.LinkedOutputNode(dummyBone2,"Bone",0);//full joint path name } else child = Node.LinkedOutputNode(dummyBone,"Bone",i);//full joint path name //now search scene dummy joints shortChild = Node.ShortName(child); for(j=0;j<numSceneObj;j++) { curNode = Node.SubObject(scene, j); sname = curNode; checkName = sname.substr(0,5); if(checkName == "CHILD") { //now check for match by getting name after CHILD checkName = sname.substr(5,sname.length-5); if(checkName == shortChild) { //System.Alert(checkName); dummyChild = scene + "/" + sname; childMat = Node.Value(dummyChild,"Matrix"); Node.Value(child,"Matrix") = childMat; Node.Value(child,"MovMaxX") = childMat.GetTransX(); Node.Value(child,"MovMaxY") = childMat.GetTransY(); Node.Value(child,"MovMaxZ") = childMat.GetTransZ(); Node.Value(child,"MovMinX") = childMat.GetTransX(); Node.Value(child,"MovMinY") = childMat.GetTransY(); Node.Value(child,"MovMinZ") = childMat.GetTransZ(); } } } } } NScript Object Package/jScript language~൱D@ j#^cstringjointpath<%Ka9 _7<%Ka9 _7H/Project/Space 3D/Skeleton/Joint, 34W}@O{(XFҦV>g'JNjn*pnDDb@@P@2|=Bynj|?z@Hoۙ>?J@#QL>g'JNjn*pnBB`@T@2|=Bynj|?z@Hoۙ>?-1OSM n 럆L<_їjControlOˁ CRih[ a8Activity.Run('%THIS_NAME%') StartZ`Ez]UOOˁ CRih[ 0a:Activity.Stop('%THIS_NAME%') StopZ`Ez]UOMT^RwL~YYT>g'JNjn*pnCB`@0@2|=Bynj|?z@Hoۙ>?z@Ho48@J 2|=Bynj> 2AEHM'ceZU@䑧r%> 4W}@O{$(XFҦVLE2Data, 1#> z@HoMT^RwL~YYTLE2Data, 2J@#QLLE2Data, 3-1OSM n# 2|=Bynj2AEHM'>g'JNjn*pnBC`@0@2|=Bynj|?z@Hoۙ>?ceZU@䑧r[җJs@ NewCommandH// Execute // Called to execute the command function Execute(params) { parent = ""; parentMat = System.CreateDO("Math Package/Matrix Float Data"); scene = Space.CurrentScene(); numSceneObj = Node.SubObjectCount(scene); //find parent for(i=0;i<numSceneObj;i++) { curNode = Node.SubObject(scene, i); //sname = Node.ShortName(curNode); sname = curNode; //PARENT prefix checkName = sname.substr(0,6); if(checkName == "PARENT") { parent = scene + "/" + sname; //System.Alert(checkName); parentMat = Node.Value(parent,"WldMatrix"); //remove any user scaling - not really needed since no user input parentMat.SetScaleX(1.0); parentMat.SetScaleY(1.0); parentMat.SetScaleZ(1.0); //rotations to zero parentMat.SetPitch(0.0); parentMat.SetRoll(0.0); parentMat.SetYaw(0.0); Node.Value(parent,"Matrix") = parentMat; break; } } } NScript Object Package/jScript language05?4W}@O{(XFҦV>g'JNjn*pn`DCb@O@2|=Bynj|?z@Hoۙ>?J@#QL>g'JNjn*pnBB`@T@2|=Bynj|?z@Hoۙ>?-1OSM n 럆L<_їjControlOˁ CRih[ a8Activity.Run('%THIS_NAME%') StartZ`Ez]UOOˁ CRih[ 0a:Activity.Stop('%THIS_NAME%') StopZ`Ez]UOMT^RwL~YYT>g'JNjn*pnCB`@0@2|=Bynj|?z@Hoۙ>?z@Ho48@J 2|=Bynj> 2AEHM'ceZU@䑧r%> 4W}@O{$(XFҦVLE2Data, 1#> z@HoMT^RwL~YYTLE2Data, 2J@#QLLE2Data, 3-1OSM n# 2|=Bynj2AEHM'>g'JNjn*pnBC`@0@2|=Bynj|?z@Hoۙ>?ceZU@䑧r[җJs@ NewCommand // Execute // Called to execute the command function Execute(params) { // TODO: put your action code here scene = Space.CurrentScene(); numSceneObj = Node.SubObjectCount(scene); mylist = System.CreateDO("Common Data Package/String Array Data"); mylist.Clear(); myList = System.CreateDO("Common Data Package/String Enum Data"); myList.Clear(); //find grandparent for(i=0;i<numSceneObj;i++) { curNode = Node.SubObject(scene, i); sname = curNode; //GRANDPARENT prefix checkName = sname.substr(0,11); if(checkName == "GRANDPARENT") myList.SetStringAt(0, curNode); //mylist.InsertAt(1, curNode); //Node.Delete(scene + "/" + curNode); } //find parent for(i=0;i<numSceneObj;i++) { curNode = Node.SubObject(scene, i); sname = curNode; //PARENT prefix checkName = sname.substr(0,6); if(checkName == "PARENT") myList.SetStringAt(1, curNode); //mylist.InsertAt(2, curNode); //Node.Delete(scene + "/" + sname); } k=2; //find each child for(i=0;i<numSceneObj;i++) { curNode = Node.SubObject(scene, i); sname = curNode; //PARENT prefix checkName = sname.substr(0,5); if(checkName == "CHILD") { myList.SetStringAt(k, curNode); k++; } //mylist.InsertAt(k, curNode); //Node.Delete(scene + "/" + sname); } //use list to delete items for(i=0;i<k;i++) { //curNode = mylist.RemoveAt(1); curNode = myList.GetStringAt(i); Node.Delete(scene + "/" + curNode); //System.Trace(curNode); } } NScript Object Package/jScript language~൱D;^#^c4W}@O{(XFҦV>g'JNjn*pnYDDb@H@2|=Bynj|?z@Hoۙ>?J@#QL>g'JNjn*pnBB`@T@2|=Bynj|?z@Hoۙ>?-1OSM n 럆L<_їjControlOˁ CRih[ a8Activity.Run('%THIS_NAME%') StartZ`Ez]UOOˁ CRih[ 0a:Activity.Stop('%THIS_NAME%') StopZ`Ez]UOMT^RwL~YYT>g'JNjn*pnCB`@0@2|=Bynj|?z@Hoۙ>?z@Ho48@J 4W}@O{$(XFҦVLE2Data, 1#J@#QLLE2Data, 3MT^RwL~YYTLE2Data, 2e> $®,.EY"ڭ$®,.EY"ڭBnodelist R1TKNXIB> f> ;K[gh};K[gh}BnumitemsB> 'Ls0'Ls0BarrangeLE Bg> t4*8Mm bt4*8Mm bBactorPathB> g> 2|=Bynj> d> z@Ho 2|=Bynj$®,.EY"ڭR1TKNXI4B/Project/Space 3D/Skeleton/JointH/Project/Space 3D/Skeleton/Joint, 1H/Project/Space 3D/Skeleton/Joint, 2H/Project/Space 3D/Skeleton/Joint, 32AEHM'>g'JNjn*pnBC`@0@2|=Bynj|?z@Hoۙ>?ceZU@䑧r[җJs@ NewCommandfunction ExploreNode(thePath) { //declare local variables for recusrsive calls var curIndex; var curnumObj; var childPath, MyObj; //if joint add to the list if((Node.ConExists(thePath,"Joint") && Node.ConExists(thePath,"Bone"))) { thelist[numjoints] = thePath; numjoints++; System.Trace(thePath); //set rotation limits 180degrees Node.Value(thePath,"AngSprX") = 179.0; Node.Value(thePath,"AngSprY") = 179.0; Node.Value(thePath,"AngSprZ") = 179.0; } //get first child curIndex = 0; curnumObj = Node.SubObjectCount(thePath); if(curnumObj > 0) { MyObj = Node.SubObject(thePath,0); childPath = thePath + "/" + MyObj; } //recursion runs here - get the next child while(curnumObj > 0) { ExploreNode(childPath); curIndex = curIndex + 1; if(curIndex < curnumObj) { MyObj = Node.SubObject(thePath, curIndex); childPath = thePath + "/" + MyObj; } else curnumObj = 0; } } // Execute // Called to execute the command function Execute(params) { // TODO: put your action code here if(Node.Exists("Status Line")) { if(Node.ConExists("Status Line","Model")) { Node.Value("Status Line","Model") = ""; } } //ledoit = System.Question("Alphabetize the LE view too?"); ledoit = true; scene = Node.FirstSelected(); params.ConValue("actorPath") = scene; //try //{ CharacterEditor.ResetPose(''); //} //catch(err) //{ // CharacterEditor.SetDefaultPose(''); // CharacterEditor.ResetPose(''); //} numjoints = 0; numsub = Node.SubObjectCount(scene); // //get list of nodes // if(Node.Exists("Status Line")) { if(Node.ConExists("Status Line","Model")) { Node.Value("Status Line","Model") = "Building joint list."; } } thelist = new Array(); ExploreNode(scene); // //copy to string array for output // strarray = System.CreateDO("Common Data Package/String Array Data"); strarray.Clear(); for(i=0;i<numjoints;i++) { //strarray.InsertAt(i,thelist[i]); //strarray.Add(scene + "/" + thelist[i]); strarray.Add(thelist[i]); } params.ConValue("nodelist") = strarray; params.ConValue("numitems") = numjoints; params.ConValue("arrangeLE") = ledoit; } NScript Object Package/jScript language$sLCommon Data Package/String Array Datanodelist R1TKNXI$®,.EY"ڭintnumitems;K[gh}booleanarrangeLE 'Ls0stringactorPatht4*8Mm b4W}@O{t4*8Mm b6/Project/Space 3D/Skeleton(XFҦV>g'JNjn*pnDCb@@\@2|=Bynj|?z@Hoۙ>?'Ls0 J@#QL>g'JNjn*pnBB`@T@2|=Bynj|?z@Hoۙ>?;K[gh}-1OSM n 럆L<_ї0MT^RwL~YYT>g'JNjn*pnCB`@0@2|=Bynj|?z@Hoۙ>?z@Ho48@J 4W}@O{$(XFҦVLE2Data, 1#J@#QLLE2Data, 3MT^RwL~YYTLE2Data, 2>  .G* .G*DactorPathD2|=Bynj> z@Ho 2|=Bynj2AEHM'>g'JNjn*pnBC`@0@2|=Bynj|?z@Hoۙ>?ceZU@䑧r[җJs@ NewCommand// Execute // Called to execute the command function Execute(params) { var actorPath = params.ConValue('actorPath'); // TODO: put your action code here CharacterEditor.SetDefaultPose(actorPath); if(Node.Exists("Status Line")) { if(Node.ConExists("Status Line","Model")) { Node.Value("Status Line","Model") = "Joint Orientation Complete"; } else System.Alert("Joint Orientation Complete"); } else System.Alert("Joint Orientation Complete"); } NScript Object Package/jScript languagestringactorPath .G* .G*6/Project/Space 3D/Skeleton4W}@O{(XFҦV>g'JNjn*pnDcCb@@P@2|=Bynj|?z@Hoۙ>?J@#QL>g'JNjn*pnBB`@T@2|=Bynj|?z@Hoۙ>?-1OSM n 럆L<_їjControlOˁ CRih[ a8Activity.Run('%THIS_NAME%') StartZ`Ez]UOOˁ CRih[ 0a:Activity.Stop('%THIS_NAME%') StopZ`Ez]UOMT^RwL~YYT>g'JNjn*pnCB`@0@2|=Bynj|?z@Hoۙ>?z@Ho8ʯȥJH|o7 gH]kDwPO`d8pM*#ͺOD/tfѭ8Lwb"q@B