Jump to content

kari1sl

Resident
  • Posts

    43
  • Joined

  • Last visited

Reputation

0 Neutral

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Thanks for the suggestion, Medhu, but rigging the shoes to mAnkle produced the similar twisted and distorted feet. I think the ability of the armature to apply automatic weights disappears outside a certain distance; the “envelope”. I messed around with expanding the envelop and applying envelop weights but only got confused. (Easy for me to get confused... I'm new to mesh.) I made some progress making the mToe or mFoot bones longer but my feet are wide as well as long. I extruded extra toes, to fan across the y axis, but got hung up naming/assigning, and merging them. I gave up and I found this “work around”. Starting with “clownfeet.blend” I used vertex groups to chopped off my long toes (! - gee that sounds awful. no wonder some people are afraid of clowns) along with a smalll amount (a few triangles proximal) of the foot tip on both, then exported it as static mesh (“toes.dae” unrigged), imported it into (opensim) world, unlinked it and reassembled them into a pair of left and right toes (objects “ToesL” and “ToesR”) of 11 prims each (5 toes,, 5 nails and the base of the toes which is prim#1). I returned to blender and, starting with new clown shoes (“clownfeet.blend”) used vertex groups to create “Toeless.dae” - which is the feet without toes but includes the foot tip, which it shares with “toes.dae”. Rigged “Toeless.dae” to my standard avatar (normal mToe and mFeet) using automatic weights and exported (using the Opensim presets for “Rigged mesh”). I imported the rigged mesh into world, attached it to the default position (Left Hand) on my avatar (wearing a mask to hide the default feet/skin and on a pose stand) and they popped into place were they belong. Then I attached “ToesL” to my avatar's Left Foot and “ToesR”to my avatar's Right Foot. A few minutes of positioning and “ToesL” lined up with its rigged partner on the left. Copied the position of “ToesL” to “ToesR”, reversed the Y-axis sign and .. I've got clown feet! I hopped off the pose stand and was happy to see the toes keeping up seamlessly with the rigged mesh. Two challenges remain. I want to find an animation to flex the ankle to see if the whole thing moves naturally. I'm guessing it should work. So far I've used only simple textures across the seam, but I'm going to test my patience and push my luck to get shoes covered in stars and dots to span the foot-to-toes seam. Regardless, I'm walking on clown feet!!! Kari1sl
  2. I'm making rigged mesh clown feet - long and wide (x and y) but when I rig it to a standard armature, it imports with the toes truncated and distorted. I should mention that only the toes (mToe) are big. The actual foot (mFoot) is normal. I've made mToe longer, and that helps a little, but it doesn't seem to get me there. Am I going about this wrong? Suggestions? Where might I learn how to do this? Thanks, Kari1SL
  3. You were right. My avatar is fine. The pose stand was the problem. Thanks
  4. the subject line says it. I've got big (clown) feet and I've rigged it just right (ankle join hardly shows) when standing on a pose box but as soon as I stand off it, the feet shift forward 1 or more centimeters but pop right bck in place when I get back on the stand. WHY?
  5. I am making a pair of rigged feet but the nails go missing when I attach the feet or foot. All looks fine in Blender (V2.71). I attach it to my avatar skeleton (using avatar.blend or Skeleton.Female.blend – it doesn't matter) using “Set to Parent with automatic Weights”. And export it as a dae with presets; Selection only : 'it's tidy but I've also exported it all - it doesn't matter, Include children : I've used nails nested into each foot (5prims in 1) or all as independent (6 prims) – it doesn't matter. Armature Option Export for Opensim (for testing). I import using FireStorm or Cool Viewer – it doesn't matter. Leaving the LoD at “High” (7072 triangles and 3950 vertices) Set the Physics LoD “Lowest”, Analyze (Results : Triangles N/A, Vertices 395, Hulls 74) For Upload Options I leave the scale alone (1=1 Dimesions 0.186 X0.065X0.170) and, of course “Include skin weight” It pops into my Inventory. I attach it to the default position (left hand) or a foot – it doesn't matter – some of the prims (nails) are not visible! I can't edit the attached, but I can see that it has the right number of prims and, using “Edit Linked” I can step through each prim and see that it is there (Object size & position looks right) . Checking textures, I see none are transparent (just to be sure, Ctk&Alt&T doesn't reveal them either). When I rez the mesh on the ground, I can see all the prims and can change their color. Then when attached, the visible nails retain the color but the hidden nails remains hidden. To fill these “nail gaps” I've put two or three identical prims in the same position - I've loaded up the toes three-fold (15 nails per foot) but still the nails are hidden! And, I've placed copies of the nails that work into the position(s) of the hidden prims – either in Blender before export or rezzed in the ground after import. But, when attached, these “proven prims” are hidden. It's as if the position (not the prim) was “toxic”. I've run out of ideas. Any suggestions? BTW - I'm new to Blender. Thanks
  6. Thanks, Uriah - you found the problem! It had nothing to do with my original problem. With that now out of the way, I used Madelaine 's suggestion and it worked! Thanks to both of you
  7. Thanks, Madelaine . Your suggestion makes sensse but didn't work. The new (second) box did not come up. I then tried it on Opensim and, again, the box did not appear but Opensim poped up this error (below) which I do not understand. Any thoughts Thanks System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> OpenSim.Region.ScriptEngine.Shared.ScriptException: LSL Runtime Error: First parameter to llDialog needs to be a key Server stack trace: at OpenSim.Region.ScriptEngine.Shared.Api.LSL_Api.LSLError(String msg) in C:\cygwin\home\caseyj\ljc\opensim-0.7.6.1-source\OpenSim\Region\ScriptEngine\Shared\Api\Implementation\LSL_Api.cs:line 11233 at OpenSim.Region.ScriptEngine.Shared.Api.LSL_Api.llDialog(String avatar, String message, list buttons, Int32 chat_channel) in C:\cygwin\home\caseyj\ljc\opensim-0.7.6.1-source\OpenSim\Region\ScriptEngine\Shared\Api\Implementation\LSL_Api.cs:line 6787 at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs) at System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(RuntimeMethodHandle md, Obje
  8. Hi. I'm using an HUD to pop up a llDialog box to alter properties of each prim in an object attached to my avatar - and it works. I can make the prims do what I want. But the dialog box disappears when a choice is made so I have to relaunch (touch) the HUD to complete the changes. touch_start(integer total_number) { llListenControl(listenHandle, TRUE); llDialog(llDetectedKey(0), "Pick the parameters", MENU_1, listenChannel); // present dialog on click } listen(integer listenChannel, string name, key id, string message) I'd like the box to stay up until I hit “Ignore” (but still chat to the attachment with each button touched.) But I can't. Is there a way for the dialog box to stay open? Or a way to relaunch the same box when any button is pushed? thanks
  9. A simple short-term data storage? Hi - I think a list (maybe strided) might be a good way to go - but any advice/alternative considered. The user, through a chatted llParseString2List, enters 4 to 6 values, all floats, and my script uses them (to position the camera). If she likes the outcome, s/he adds a couple more values (that turn, pan, etc. the camera). Short-term, I need a way to save both set of floats (just in the same session). Are lists a good way to do this? (llListReplaceList or fncReplaceElement)? Thanks.
  10. A simple short-term data storage? Hi - I think a list (maybe strided) might be a good way to go - but any advice/alternative considered. The user, through a chatted llParseString2List, enters 4 to 6 values, all floats, and my script uses them (to position the camera). If she likes the outcome, s/he adds a couple more values (that turn, pan, etc. the camera). Short-term, I need a way to save both set of floats (just in the same session). Are lists a good way to do this? (llListReplaceList or fncReplaceElement)? Thanks.
  11. I'd like to be able to line up a “target”, say the avatar's face, and then activate (through chat) a camera motion, but my camera won't move until/unless I click on the avatar (which causes the camera to shift, so the target is lost). Here is my function SpiralOut(vector MyPos) { llOwnerSay("SpiralOut"); llSay(0, "My Position is " + (string)MyPos); llClearCameraParams(); vector here = MyPos; float i= 0; gdistance = gmin; while(i < grevs*TWO_PI) { {vector xyz = <(gdistance)*llCos(i),(gdistance)*llSin(i), 0.9>; //Change the z to the height vector there = (MyPos + xyz); llSetCameraParams([CAMERA_ACTIVE, 1, CAMERA_FOCUS, here, CAMERA_POSITION, there, CAMERA_POSITION_LOCKED, TRUE]); }i = i+ginc; gdistance=gdistance+ginc/2; } } And here's what happens (chatting some steps, copied below)... I lined up where I want to start [02:50 PM] k 1: aligned target [02:50 PM] k 1: and clicked HUD for permission [02:50 PM] Quick Cam Chat : Quick Cam Chat has PERMISSION_CONTROL_CAMERA perms for f0624028-b8cd-4297-9b00-d302e0717b78 [02:50 PM] Quick Cam Chat : take_camera_control OK, so I have permission and ready but just to be sure it is working, I chat “nothing” (“/6 “). My Listen starts with the GetPos and chats it in reply [02:51 PM] Quick Cam Chat : <224.828186,118.835915,21.118135> OK, it listens and gets the position, so I now chat a message that will run it (“/6 SpiralOut”) [02:51 PM] Quick Cam Chat : SpiralOut My camera does not move but, as you see above, my script started to run and, as you see below, it has the vector and passed it to the function [02:51 PM] Quick Cam Chat : My Position is <224.828186,118.835915,21.118135> My camera will only move if I touch the avatar (before the loop is done) picking up the spiral at some point along its increments. Any thoughts? Thanks
  12. I'd like to be able to line up a “target”, say the avatar's face, and then activate (through chat) a camera motion, but my camera won't move until/unless I click on the avatar (which causes the camera to shift, so the target is lost). Here is my function SpiralOut(vector MyPos) { llOwnerSay("SpiralOut"); llSay(0, "My Position is " + (string)MyPos); llClearCameraParams(); vector here = MyPos; float i= 0; gdistance = gmin; while(i < grevs*TWO_PI) { {vector xyz = <(gdistance)*llCos(i),(gdistance)*llSin(i), 0.9>; //Change the z to the height vector there = (MyPos + xyz); llSetCameraParams([CAMERA_ACTIVE, 1, CAMERA_FOCUS, here, CAMERA_POSITION, there, CAMERA_POSITION_LOCKED, TRUE]); }i = i+ginc; gdistance=gdistance+ginc/2; } } And here's what happens (chatting some steps, copied below)... I lined up where I want to start [02:50 PM] k 1: aligned target [02:50 PM] k 1: and clicked HUD for permission [02:50 PM] Quick Cam Chat : Quick Cam Chat has PERMISSION_CONTROL_CAMERA perms for f0624028-b8cd-4297-9b00-d302e0717b78 [02:50 PM] Quick Cam Chat : take_camera_control OK, so I have permission and ready but just to be sure it is working, I chat “nothing” (“/6 “). My Listen starts with the GetPos and chats it in reply [02:51 PM] Quick Cam Chat : <224.828186,118.835915,21.118135> OK, it listens and gets the position, so I now chat a message that will run it (“/6 SpiralOut”) [02:51 PM] Quick Cam Chat : SpiralOut My camera does not move but, as you see above, my script started to run and, as you see below, it has the vector and passed it to the function [02:51 PM] Quick Cam Chat : My Position is <224.828186,118.835915,21.118135> My camera will only move if I touch the avatar (before the loop is done) picking up the spiral at some point along its increments. Any thoughts? Thanks
  13. Thanks, Azwaldo, for the suggestion but it doesn't help. The problem is close to the face - the best part for camera work. I'm thinking that my geometry is wrong. Type into public chat the command "c" followed by RADIUS, then camera HEIGHT and camera FOCUS (otherwise they will be zero) with respect to the avatar's center (standing). You have to touch the avatar to get it going. (Don't know why) I've worked through a series of 1 meter orbits - first pointing to the avatar's center (third value is zero). Starting at ground, c 1 - 1 0, is good the waist at c 1 0 0 is also good another meter up at c 1 1 0 things look OK, but of course the focus is on the belly (at 0, the center), so naturally I want to look squarely in the face at ~1 meter above center. Try c 1 1 1. It's way over head, a couple meters. So, I decide to try 1 0 1 and thise wobbles around.Not along the avatar's Z-axis at all. Strange integer Pchannel(string salt){ string setint = (string)((integer)("0x"+llGetSubString((string)llGetOwner(),-8,-1)) * llStringLength(salt) * llCeil(llLog(llStringLength(salt)))); return (integer)llGetSubString(setint, 0, 7);}//KAMERA v10//removed max, min, high, low and simplifiedinteger on = FALSE;integer Handle;integer trap = 0;integer CHANNEL; // dialog channelfloat inc = 0.01 ;//increments from zerofloat revs = 2.0; //revolutionsfloat distance = 0; //declarefloat height =0; //declarefloat delta = 0;//declare float DELTA = 0;//declare float deltabit = 0;//declare float DIS = 0;//declare take_camera_control(key agent){ llOwnerSay("take_camera_control"); // say function name for debugging llOwnerSay( (string)agent); llRequestPermissions(agent, PERMISSION_CONTROL_CAMERA); llSetCameraParams([CAMERA_ACTIVE, 1]); // 1 is active, 0 is inactive on = TRUE;}release_camera_control(key agent){ llOwnerSay("release_camera_control"); // say function name for debugging llSetCameraParams([CAMERA_ACTIVE, 0]); // 1 is active, 0 is inactive llReleaseCamera(agent); on = FALSE;}setup_listen(){llListenRemove(1);CHANNEL =0;integer x = llListen(CHANNEL, "", "", ""); // listen for dialog answers} default{state_entry(){setup_listen();llSetTimerEvent(2);} run_time_permissions(integer perm){ integer perm = llGetPermissions(); if (perm & PERMISSION_TRACK_CAMERA) { llOwnerSay(llGetScriptName() + " has PERMISSION_TRACK_CAMERA perms for "+(string)llGetPermissionsKey()); }if (perm & PERMISSION_CONTROL_CAMERA){ llOwnerSay(llGetScriptName() + " has PERMISSION_CONTROL_CAMERA perms for "+(string)llGetPermissionsKey()); }if (perm == 0){ llOwnerSay(llGetScriptName() + " has NO perms for "+(string)llGetPermissionsKey()); }}listen(integer channel, string name, key id, string message){list input = llParseString2List(message, [" "], []);string action = llList2String(input, 0); float dis = llList2Float(input, 1);float zthere= llList2Float(input, 2);float zhere= llList2Float(input, 3);float zthere2= llList2Float(input, 4);if (action == "off"){ llListenControl(Handle, FALSE); llSetScriptState(llGetScriptName(),FALSE); } else if (action == "help"){llSay(0, "Type into public chat the command \n (\"CIRCLE\" or \"circle\" or \"c\") or (\"HELIXUP\" or \"helixup\" or \"hup\") or (\"HELIXDOWN\" or \"helixdown\" or \"hdown\") \n followed by RADIUS, \n then camera HEIGHT and \n camera FOCUS \n otherwise they will be zero. ");llSay(0, "CIRCLE: try these values (face = \"c 1 1.3 1\", ass&crotch = \"c -0.7 0 0\") ");} else if (action == "reset"){ llSay (0, "Resetting script."); llResetScript();}else if (action == "CIRCLE" || action == "circle" || action == "c") //plus dis, zthere &zhere{llOwnerSay("Circle");llClearCameraParams();vector here = llGetPos() + <0.0, 0.0, zhere >;vector there = llGetPos() + <0.0, 0.0, zthere >;float i; for (i = 0; i < revs*TWO_PI; i+=inc){vector xyz = <dis*llCos(i),dis* llSin(i), 0.0>;vector there =here + xyz+ <0.0, 0.0, zthere >;llSetCameraParams([CAMERA_ACTIVE, 1, CAMERA_FOCUS, here, CAMERA_POSITION, there, CAMERA_POSITION_LOCKED, TRUE]);}llSleep(0.002);}}changed(integer change){if (change & CHANGED_LINK){key agent = llAvatarOnSitTarget();if (agent){setup_listen();llRequestPermissions(agent, PERMISSION_CONTROL_CAMERA);}}} attach(key agent){if (agent != NULL_KEY){setup_listen();llRequestPermissions(agent, PERMISSION_CONTROL_CAMERA);}} timer(){if (trap == 1){//center();} }}
  14. Thanks, Qie Niangao, for taking the time to read my poorly formatted script and, not only suggesting a fix but simplifying it ... and explain where I've gone wrong. Clearly, I need to understand the basic structure of LSL before I try another "transplant" (from individual touch buttons to an all encompassing chat). It's now working and I understand why! And also, thanks to "outtaspace". If I had followed the indentation editor, I may have noticed the "event inside event error". I'm learning a lot.
  15. Hi Folks. I built a HUD that is growing crowded and unmanageable with a button for each animation sequence, so I have been trying to transplant it to a chatable method but placing the timer() seems to give a Syntax Error everwhere I've tried. Below is the CHAT code... //CHATFACE FOR 2 v8 list ah =["express_open_mouth", "express_toothsmile", "express_open_mouth", "express_open_mouth", "express_open_mouth", "express_toothsmile", "express_open_mouth", "express_surprise_emote", "express_open_mouth"]; list oh =["express_kiss", "express_open_mouth", "express_kiss", "express_open_mouth", "express_kiss", "express_open_mouth", "express_kiss", "express_open_mouth", "express_kiss"]; integer Handle; integer gCount;integer gON; list anilist; default { on_rez(integer start_param) { llResetScript(); } state_entry() //timer()//ERROR : Syntax error { llRequestPermissions(llGetOwner(), PERMISSION_TRIGGER_ANIMATION); } // timer()//ERROR : Syntax error run_time_permissions(integer perm) //timer()//ERROR : Syntax error { if(PERMISSION_TRIGGER_ANIMATION & perm) { llOwnerSay(llGetScriptName() + " has PERMISSION_TRIGGER_ANIMATION perms for "+(string)llGetPermissionsKey());llSetTimerEvent(2); } //timer()//ERROR : Syntax error if (perm == 0) // timer()//ERROR : Syntax error { llOwnerSay(llGetScriptName() + " has NO perms for "+ (string)llGetPermissionsKey()); } llListen( 0, "", llGetOwner(), "" ); } // timer()//ERROR : Syntax error listen(integer channel, string name, key id, string message) //timer()//ERROR : Syntax error { llSay(0, message);list input = llParseString2List(message, [" "], []);string gate = llList2String(input, 0); string action = llList2String(input, 1);llSay(0, (string)gate); if (gate == "off") { llListenControl(Handle, FALSE); } else if (gate == "express"|| gate == "xpress" || gate == "x") { list input = llParseString2List(message, [" "], []); action = llList2String(input, 1); llSay(0, (string)action); if (action == "ah") { anilist = llList2List(ah,0,55); } else if (action == "oh") { anilist = llList2List(oh,0,55); } else { llSay (0, "Not a recognized face command. Give permission (again) and try again using one of these ..."); llResetScript(); } //timer()//ERROR : Syntax error { integer length = llGetListLength(anilist); llSay(0,(string)action + " is " + (string)length + " units long and its sequence is " + (string)anilist); { gON = !gON;gCount = 0; llStartAnimation(llList2String(anilist, 0)); llSetTimerEvent(0.1* gON); } { gON = TRUE; gCount = 0; llSetTimerEvent(2.0); } timer()//ERROR : This is the "right place but SYNTAX ERRORS! { integer i = ++gCount; { llStopAnimation(llList2String(anilist, i-1)); } if (i < length) { llSay(0, (string)i + (string)llList2String(anilist, i)); // say the ani # & name llStartAnimation(llList2String(anilist, i+1)); } } } } else { llSay (0, "Not a face command. Give permission (again) and chat an \"x\", or \"xpress\" ot \"express\" to start, and then the command"); llResetScript(); //timer()//ERROR : Syntax error } } } 1) tweaked from a touch command to listening, 2) adapted to chose from a library of lists instead of using the single list in its sole button 3) with extra "llSays" added to help me to understand what is going on. 4) I have double lined (//) commented each place I have tried and failed to position the timer() and the position that (I think) most corresponds to the position in the button (where is works) is left withouot "//" in from and with "timer()//ERROR : This is the "right place but SYNTAX ERRORS!!" ... and in the process, really messed up the indentation system (soory). BTW - without the timer, the i++ loop doesn't loop! I can post the "touch buttom" (that works) if folks think it might be useful. Thanks,,,
×
×
  • Create New...