Jump to content

VirtualKitten

Resident
  • Posts

    916
  • Joined

  • Last visited

Everything posted by VirtualKitten

  1. so are you suggesting this below and clearing the seat wen the avatar get up to top or bottom wit llSetLinkPrimitiveParamsFast(top_seat,[ PRIM_SIT_TARGET, TRUE,<0.00,0.0,0.00>,<0.0, 0.0, 0.0, 1.0> ]) and removing item from list usage; ant like wise for bottom? list seats_pos_bottom = [<0.00,0.0,0.01>,"key",<0.00,0.0,0.02>,"key",<0.00,0.0,0.03>,"key"<0.00,0.0,0.04>,"key"<0.00,0.0,0.05>,"key"]; list seats_pos_top= [<0.00,0.0,0.01>,"key",<0.00,0.0,0.02>,"key",<0.00,0.0,0.03>,"key"<0.00,0.0,0.04>,"key"<0.00,0.0,0.05>,"key"]; if(llAvatarOnLinkSitTarget(bottom_seat)== agent) { seat="bottom"; //llOwnerSay("Bottom going Up"); llSetLinkPrimitiveParamsFast(bottom_seat,[ PRIM_SIT_TARGET , _getFreeSeat(seats_pos_bottom,agent), ZERO_ROTATION ]); } else { seat="top"; llSetLinkPrimitiveParamsFast(top_seat,[ PRIM_SIT_TARGET, , _getFreeSeat(seats_pos_top,agent), ZERO_ROTATION ]); return; } } Hugs D
  2. That ridiculous so as the seat is deleted how can avatar be hanging on to it ? So you are suggesting sit on bottom move to top after first sit detected create a second sit target at the top delete the first one leave the one after for next avatar ? How far minimum can seats be apart ? Hugs D
  3. I still cant find out why it does not disable the seat with avatar moved away from it . Do I have to create 5 separate seats on each end or create another seat a certain difference apart so 10 in total . Can i create these dynamically as on as next avatar moved off and remove on exit how do i keep track of these in yet another 2x list with five slots in it of possible seats and look for empty ones . This seems a ridiculous amount of extra processing, Hugs D
  4. Yes thanks Molly but it doesn't seem to work please see here Hugs Dx
  5. I can be just a brief no they cant to all of what you said but their are solutions to some . A couple walker will have exactly the same problem and you end up with a multiseat on a moveable prim with paired animation so technically yes you can but not with IKs as Secondlife doesn't use them. It however uses math and multiplication and addition of matrices you already explained to create translation on mesh points which we call an animation. why cant these same matrices work on attachment you said they needed to be an agent? Yes I can sit on a vehicle especially if its a jeep to get bounced around but as soon as that vehicle becomes a transformer then we have problems as your seat has become part of the transformer that moving You can move your avatar to d=sit on shoulder but if this transformer walks like a human then your avatar will not be sitting on the shoulder very long . Its the same with a horse or other animal the body of the animal is always moving . If the animal flies then it even moves even more extreme as its using more powerful muscles . This in secondlife translates to the avatar staying in current position of the original unanimated animal but the animation has moved the animal , car, plane so you are no longer connected and looks like its sitting independently in space. You seem to talk about cost of implementation in monetary units and in server time but blender does all this free too. I ask you to note from what you have kindly informed me : , 1) You can sit on a non and animated object or Animesh and animate the avatar realistically as long as long the part of the animated object you are sitting on is not moved by animation of the object you are attached to or are sitting on . 2) You cannot add bones or IK in blender to an item that is an attachment and this attachment when imported into secondlife and attached to a Animesh is influenced by matrix interpretation of those bones that move in the Animesh. Simply put there is no connection other than the link point not to the translation matrices or the point of attachment. Therefore the object sits at this point animating at this link position not influenced by objects animation or movement matrices. 3) The Second Life physics model importer cannot build physics for multiple items in blender they all have to be imported with their own physics separately to keep low li 4) There is no future development planned to improve this attachment issues or improve importer ? Hugs D
  6. @arton Rotaru . The first avatar has not stood up they have been moved off by my multi-seat script and are no longer in that same seated position position to different coordinates. Wiki explains that they will stay on that seat until they are moved off from it. Currently my two seats work for a single avatar . My multi-sit is capable as of many that the Linden Script will handle without crashing . However these actual seat are a real problem as I need to know which one is sat on top or bottom . e.g. Lianne sits on bottom and is moved off . I sit next on seat 1 , prim 1, but the seat is in use by Lianne. As Liane has been moved by my seat script . When I sit at bottom at seat 1 my avatar jumps direct to seat 2 as seat one is occupied even though its been removed deleted and then reinstated . The section of code should do this but it doesn't . Something else s happening . The removal of the llSitTarget(<0.0, 0.0, 0.0>, ZERO_ROTATION); did not seem to work. So I introduced llSleep(5) and llSleep(10) to give it time for the interpreter to process. However this is not required as the seat is removed and reinstated according to my second script but my avatar cant sit on new seat for some unknown reason. I hope that explains. Hugs D
  7. I have the following code in change section of my multsit script basically its supposed to reset the seat so that a new seat is created nd give it a seat location top or bottom. Can anyone nswer why this removal of set is not functioning snipit is below: if(llAvatarOnLinkSitTarget(bottom_seat)== agent) { seat="bottom"; //llOwnerSay("Bottom going Up"); llSetLinkPrimitiveParamsFast(bottom_seat,[ PRIM_SIT_TARGET, FALSE, ZERO_VECTOR,ZERO_ROTATION ]); llSleep(10); llSetLinkPrimitiveParamsFast(bottom_seat,[ PRIM_SIT_TARGET, TRUE,<0.0,0.0,0.01>,<0.0, 0.0, 0.0, 1.0> ]); ; } else { seat="top"; llSetLinkPrimitiveParamsFast(top_seat,[ PRIM_SIT_TARGET, FALSE, ZERO_VECTOR,ZERO_ROTATION ]); llSleep(10); llSetLinkPrimitiveParamsFast(top_seat,[ PRIM_SIT_TARGET, TRUE,<0.00,0.0,0.01>,<0.0, 0.0, 0.0, 1.0> ]); // Check give way if people coming up. //llOwnerSay("Top going down"); list climb = find_anyone_up_or_down( agent); if(llGetListLength(climb)!=0) { llSetLinkPrimitiveParamsFast(link,[PRIM_POS_LOCAL,( End_Pos+ l_pos+<1.0,0.0,0.0>),PRIM_ROT_LOCAL,End_Rot]); llUnSit(agent); llSay(0, "There are other forest folk comming up the rope please wait for them before descending the rope , then please try again."); return; } } Set the sit location for the prim. The sit location is relative to the prim's position and rotation. • vector offset – Additional position for the sit target in local prim coordinates. • rotation rot – Additional rotation for the sit target relative to the prim rotation. If offset == <0.0, 0.0, 0.0> then the sit target is removed. src:https://wiki.secondlife.com/wiki/LlSitTarget I even tried llSitTarget(<0.0, 0.0, 0.0>, ZERO_ROTATION); llSetLinkPrimitiveParamsFast(top_seat,[ PRIM_SIT_TARGET, TRUE,<0.00,0.0,0.01>,<0.0, 0.0, 0.0, 1.0> ]); llSleep(5); it does remove seat but does not make it free again. and bring in new seat . I tested it was removed with : list GetSitTargetLinks() { integer iLinkCount = llGetNumberOfPrims(); integer iIndex; list lRequest = []; for (iIndex = 1; iIndex <= iLinkCount ; iIndex++) { lRequest += [ PRIM_LINK_TARGET, iIndex, PRIM_SIT_TARGET ]; } list lData = llGetLinkPrimitiveParams(1, lRequest); llOwnerSay("LData:"+llDumpList2String(lData,"|")); list lSitTargetLinks = []; for (iIndex = 1; iIndex <= iLinkCount ; iIndex++) { integer bSitTarget = llList2Integer(lData, (iIndex - 1) * 3); if (bSitTarget) { lSitTargetLinks += iIndex; } } return lSitTargetLinks; } default { touch_start(integer total_number) { llOwnerSay("Hello, !"+ llDumpList2String(GetSitTargetLinks(),"|")); } } Hugs D
  8. Hmm .02 was to small for the thickness of the Physics for me. It gave me errors ' your mesh is to dense' error and would not import it until I made thickness .006 . Hope this helps.
  9. Oh yes that is not the place. The place it took me too looked like that but residential with ban floor lines it was similar but had cashier and other hapless things that did nothing . I thought the thing in middle was a Transporter. To conclude with the physics issues . It seems the importer cannot create the physics As we have to cheat the bounding boxes to make them the same by adding little triangles to fool second life it into believing that they are really the same BB. I also had lots of translations of rotation; scale ; position not the same in links which rotated the physics. I also had the physics uploader problem of dense mesh physics . If it sees little triangle in your mesh it seems to error and suggest your mesh is to dense even when its not . Finally Most of these physics problems where because my physics walls were not thick enough and needed to be bigger than 0.02 and possibly as large as .06m to pass through the uploader. I want to thank Aquila for giving up time.
  10. but i really wanted to know what seat my avatar had and which prim . So far I ca n only get seat information
  11. Am a silly kitten sometimes no +llGetPos just +Seat_Pos lol
  12. Hmm well I don't have access to it in this firestorm as It doesn't have the ability to get onto other servers. However you can download a version.. The problem is you are taken to an area which is like an entrance place . Everything around it is owned and you cant rez there . Would it be not better to put a teleport unit in there with clear signage as currently its quite confusing and I gave up with it as could navigate no where else, even if I typed sandbox in search nothing came back:) Hugs D
  13. Quarell My account was activated for mesh upload. this is not the problem. I had a long meeting yesterday in the Firestorm sandbox which was very productive. It seems this none of this is the viewer issue or blender output but the way the 'linden uploader' works . I was taught how to make my physics work on my Model by completely reassembling my item in Secondlife model breaking the links apart and reassembling the Model with the main physics floor as the root link '1'. When it was relinked I was instructed to set this root link to 'prim' type from 'convex hull' on the features object tab which is only it seems available on the root and then we set all the other linked items where set to 'none' instead of what they arrived with in world as 'Convex Hull'. I do not think people realize you have to do this. I for one had no reason to feel the uploader was not doing this either. In fact one part of my model was 51li by separating this from the model and uploading with lower LOD it became less complicated and 27li . However the physics now works in that model. Yay It seems this physics is more than just creating additional shapes in blender for example we had a simplest of four steps made from blocks duplicating this dae model created and object of 6li . Using the Analyze Model gave 25li for mine and for Aquila's 7li . However Aquila made some simple plane shape triangle and two planes as steps not boxes and got this to 1li and used that as physics to get it to 0.8li. This is a massive different in something which fights lag. Hugs 😧
  14. I think this is all becoming more clear Secondlife why doesn't see its self as roleplay?. It may not have this as a current concern but it wrote new scripted bots to deal with automatic messaging group invite and shop attendance for commerce. it wrote new light model for everyone . So when it brought in Animesh why was this heralded the greatest thing in Secondlife and then it was cut down short what actually happened . You alluded to griefers and the possibility of misuse, Surly the pupose of Animesh which was released Wednesday, November 14th,2017 Alexa Linden Lab announced the official release of Animesh, with the promotion of the Animesh viewer as the de facto release viewer.: "Welcome to Animesh! Animesh is a new Second Life feature to allow independent objects to use rigged mesh and animations, just as you can today with mesh avatars. This means that you can now have wild animals, pets, vehicles, scenery features and other objects that play animations" https://wiki.secondlife.com/wiki/Animesh_User_Guide#:~:text=Welcome to Animesh!,other objects that play animations. Optimo, How is this statement and opportunities been met if the connection of the animation timings cannot be linked to Avatar attachments movements without agent characteristics giving any realism to them . Surely this cant be right ? Furthermore it can be read. Animesh has been in development for about a year, and like Bento, has been a collaborative effort between Linden Lab and Second Life content creators. Essentially, it allows the avatar skeleton to be applied to any suitable rigged mesh object, and then used to animate the object, much as we see today with mesh avatars. This opens up a whole range of opportunities for content creators and animators to provide things like independently moveable pets / creatures, and animated scenery features. Press release https://modemworld.me/2018/11/14/animesh-officially-released-for-second-life/ Hugs D
  15. I have _PHYS in the main file and exported this and other as file_one.dae and file_one_phs.dae so it auto finds the physics as directed by Aquila which works As for why the mesh uploader doesn't upload i don't know never had this before hugs D.
  16. Yes I did that but only have options for none physics and the normal Convex Hull . I just downloaded new Secondlife Viewer and it has no option to upload mesh oddly just images, sounds and bulk
  17. I even went back to an old file that Aquila managed to import, but I get exactly the same results as above and don't understand how someone else can import the same thing and it works . I have used two different PC devices and they all have same failure in uploading physics for Second life . How can the importer vary from what on screen imported. I am going to see if i have SL viewer anywhere and try that as am getting frustrated with this . Hugs D x
  18. Have now just tried this in a previous release of Firestorm 6.4.6.4.1.1303251 it does the same thing with the import messing up the physics . Does anyone know why it is doing this please?
  19. It seems to work perfectly in firestorm importer in firestorm importer Then everything goes wrong when it comes into world I have wasted at least 250L with this not working in any way in multiple imports including calling the objects for physics in blender appended with _PHYS so they auto import. This is what comes into secondlife in Firestorm : Hugs and thanks for looking D
  20. I resolved this part i was finding it was my script causing it . I was casting a string vector in List2Vector and it was corrupting it . The line was output=[l_pos, l_rot, lanim]; it worked when I changed it to output=[(vector)l_pos, (vector)l_rot, lanim]; An this was all it was causing no rotation. Now I have a slightly odd vector issue with my linked prims position my test is not working because of local position and global coordinates if(llVecDist(End_Pos+, l_pos) < .02) { l_pos is actually not global I think even though it positions on PRIM _POSITION which suggests its local L = llGetLinkPrimitiveParams(top_seat,[PRIM_POS_LOCAL,PRIM_ROT_LOCAL]); End_Pos = llList2Vector(L,0); is also local so why are my figures out. I have llOwnerSay("End:"+(string)End_Pos+ " current: "+(string)l_pos); but figures dont look anything like each other ie [09:21] temp End:<-0.00295, -0.00496, 12.55396> current: <-0.45000, 0.05000, 36.00000>. What am i missing as my l_pos are much higher [09:30] temp: End:<-0.00295, -0.00496, 12.55396> current: <-0.45000, 0.05000, 30.20000> is should be where its in same place is according to the tests i ran . I am sure I don't need llGetPos() as both should be local what is causing this please ?
  21. The script works fine on my piano seat as multi seat it has no setting to change height I am giving output for you from debug it only has these PRIM_SIT_TARGET in the state entry section . It has two seats only in JSON strings. How is it getting on z -30.00m which is huge however if i turn script of it sits in correct seat so it must be something my script is doing: //Sit on item [11:08] temp: next agent:c14f48db-464c-4ccb-af11-8b58e78d6aa0 [11:08] temp: avatars seated 1 [11:08] temp: Current Avatars: c14f48db-464c-4ccb-af11-8b58e78d6aa0 [11:08] temp: Data:{"seat0":{"key":"empty","pos":"<0.05,0.25,0.05>","twist":6.283185,"anim":"climb rope 1"},"seat1":{"anim":"","key":"c14f48db-464c-4ccb-af11-8b58e78d6aa0","pos":"","twist":6.283185}} [11:08] temp: Data:{"seat0":{"key":"empty","pos":"<0.05,0.25,0.05>","twist":6.283185,"anim":"climb rope 1"},"seat1":{"anim":"","key":"c14f48db-464c-4ccb-af11-8b58e78d6aa0","pos":"","twist":6.283185}} [11:08] temp: Checking Key against sitting avis (empty shows none): [11:08] temp: Avatars found sitting on seat find (empty shows none): c14f48db-464c-4ccb-af11-8b58e78d6aa0 Avatar Check list (empty shows none): c14f48db-464c-4ccb-af11-8b58e78d6aa0 [11:08] temp: Result from Find search: 0 ,The new calculation is : 0 [11:08] temp: Found Avatars sitting on seat : c14f48db-464c-4ccb-af11-8b58e78d6aa0avatarCheck: c14f48db-464c-4ccb-af11-8b58e78d6aa0 [11:08] temp: line 417 -The new avatar at 0 is: c14f48db-464c-4ccb-af11-8b58e78d6aa0 [11:08] temp: New avatar is: c14f48db-464c-4ccb-af11-8b58e78d6aa0 [11:08] temp: Seat Number originally given: 0 [11:08] temp: {"seat0":{"anim":"climb rope 1","key":"c14f48db-464c-4ccb-af11-8b58e78d6aa0","pos":"<0.05,0.25,0.05>","twist":6.283185},"seat1":{"anim":"","key":"c14f48db-464c-4ccb-af11-8b58e78d6aa0","pos":"","twist":6.283185}} Avatar Check : <0.05,0.25,0.05>|6.283185|climb rope 1 [11:08] temp: DEBUG: line 572 CHANGED<0.05,0.25,0.05>|6.283185|climb rope 1 [11:08] temp: DEBUG: line 578 CHANGED<-0.36,-0.20,0.0>|<0.0,0.0,0.0>|key|climb rope 1 [11:08] temp: do_seat_animation:i =1 [11:08] temp: DEBUG: line 229 anim:climb rope 1 [11:08] temp: c14f48db-464c-4ccb-af11-8b58e78d6aa0 [11:08] temp: DEBUG line 244: do_seat_animation dump output:<0.05,0.25,0.05>|6.283185|climb rope 1 [11:08] temp: In run_time_perms: <0.05,0.25,0.05>, 6.283185, climb rope 1 // Stand [11:08] temp: next agent:58eb033e-3eea-6350-597f-9d14653d50f8 [11:08] temp: avatars seated 0 [11:08] temp: Current Avatars: [11:08] temp: Alert found empty seat [11:08] temp: Data:{"seat0":{"anim":"climb rope 1","key":"c14f48db-464c-4ccb-af11-8b58e78d6aa0","pos":"<0.05,0.25,0.05>","twist":6.283185},"seat1":{"anim":"","key":"empty","pos":"","twist":6.283185}} [11:08] temp: Alert found empty seat [11:08] temp: Data:{"seat0":{"anim":"","key":"empty","pos":"<-0.36,-0.20,0.0>|<0.0,0.0,0>|key|climb rope 1","twist":6.283185},"seat1":{"anim":"","key":"empty","pos":"","twist":6.283185}} [11:08] temp: New avatar is: c14f48db-464c-4ccb-af11-8b58e78d6aa0 [11:08] temp: Seat Number originally given: 1 [11:08] temp: {"seat0":{"anim":"","key":"empty","pos":"<-0.36,-0.20,0.0>|<0.0,0.0,0>|key|climb rope 1","twist":6.283185},"seat1":{"anim":"","key":"c14f48db-464c-4ccb-af11-8b58e78d6aa0","pos":"","twist":6.283185}} Avatar Check : |6.283185| [11:08] temp: DEBUG: line 572 CHANGED|6.283185| [11:08] temp: DEBUG: line 578 CHANGED<-0.36,-0.20,0.0>|<0.0,0.0,0.0>|key|climb rope 1 [11:08] temp: do_seat_animation:i =-1 Thanks D x
  22. Thankyou you said "However, your sit target is set correctly." this is what it produces why does it not sit me at either end bottom 2 top 3 middle 1 [ link 3] [ link 1 ] [ link 2 ] bottom end and vertical link 3 on top [10:26] temp: line:1, 34|2|41 [10:26] temp: line:2, 34|3|41 [10:26] temp: line:3, 34|4|41 [10:26] temp: Got Seat @2 [10:26] temp: Got Seat @3 [10:26] temp: Hello, !2|3 It also seems to only show the seats on the object not the seated avatar on the link Also with llSetLinkPrimitiveParamsFast(1,[ PRIM_SIT_TARGET, FALSE, ZERO_VECTOR,ZERO_ROTATION ]); llSetLinkPrimitiveParamsFast(2,[ PRIM_SIT_TARGET, TRUE,<.05,0.11,0.01>,<0.0, 0.0, 0.0, 1.0> ]); llSetLinkPrimitiveParamsFast(3,[ PRIM_SIT_TARGET, FALSE, ZERO_VECTOR,ZERO_ROTATION ]); Why does it place me in middle of 1 and not middle of 3 result from above [10:35] temp: line:0, 34|1|41 [10:35] temp: line:1, 34|2|41 [10:35] temp: line:2, 34|3|41 [10:35] temp: line:3, 34|4|41 [10:35] temp: Got Seat @2 [10:35] temp: Hello, !2 Clearly this is just detecting seats not avatar on them Can you help? Thankyou D x
  23. Hi everyone thanks for looking .I have a strange mesh and prim seating problem with a 38m high mesh . This behaves oddly placing my seat at link one at around 19m up in the air ,not at link two as requested . by llSetClickAction(CLICK_ACTION_SIT); llSetLinkPrimitiveParamsFast(1,[ PRIM_SIT_TARGET, FALSE, ZERO_VECTOR,ZERO_ROTATION ]); llSetLinkPrimitiveParamsFast(2,[ PRIM_SIT_TARGET, TRUE,<.05,0.11,0.01>,<0.0, 0.0, 0.0, 1.0> ]); I had some grateful help from Crystal to work out what is linked where but LSL does not return any linked data! Can anyone help? I click this script in my seat when seated on a seat with four links it produces from the code below this result: [23:45] test: line:0, 34|1|41 [23:45] test: line:1, 34|2|41 [23:45] test: line:2, 34|3|41 [23:45] test: line:3, 34|4|41 [23:45] test: No Object Data found As you can see 'llGetLinkPrimitiveParams(' does not return the data from data set what am I missing please? list GetSitTargetLinks() { integer iLinkCount = llGetNumberOfPrims(); integer iIndex; list lRequest = []; for (iIndex = 1; iIndex <= iLinkCount-1 ; iIndex++) { lRequest += [ PRIM_LINK_TARGET, iIndex, PRIM_SIT_TARGET ]; llOwnerSay("line:" +(string)(iIndex-1)+", "+(string) PRIM_LINK_TARGET+"|"+ (string)(iIndex)+"|"+ (string)PRIM_SIT_TARGET ); } list lData = llGetLinkPrimitiveParams(1, lRequest); if(llGetListLength(lData) == 0) llOwnerSay("No Object Data found"); list lSitTargetLinks = []; for (iIndex = 1; iIndex <= iLinkCount-1 ; iIndex++) { integer bSitTarget = llList2Integer(lData, (iIndex - 1) * 3); if (bSitTarget) { llOwnerSay("Got Seat @"+(string)iIndex); lSitTargetLinks += iIndex; } } return lSitTargetLinks; } default { touch_start(integer total_number) { llOwnerSay("Hello, !"+ llDumpList2String(GetSitTargetLinks(),"|")); } }
×
×
  • Create New...