Jump to content

Gypsy Paz

Resident
  • Posts

    26
  • Joined

  • Last visited

Everything posted by Gypsy Paz

  1. I dunno, the question was clear enough to me. It's just writing the script and working out realistic animal motion is days or even weeks of RL time sitting at the computer and writing code. I think these five pages of everyone talking about curves and how they handled them are great! Forums should be about everyone helping each other learn, not writing free scripts.
  2. That's a good script Quistess. It's well commented and that should be enough docs for most scripters. And I totally what you mean by it being allot of work without any pay. I had in mind to put together a complete sample, but it took me two days just to find my old Bezier scripts. I may yet take it further into an animal script, but I'm not sure if I will give it away free after spending a week or two figuring out and coding the perfect motions. I do have a couple tips for anyone else figuring this out.... 1) I always make handles as the first step so I can visualize the paths and read the vectors. That data is important when you setup min and max values for how far the handles can be set. 2) You will want to loop though the KFM's the curve functions generate. Each curve generates a path that is a small part of the whole path. It's a double nested loop, with the inside looping though the time of 0-1 and the outside loop putting several of those together as it goes along.
  3. I thought I'd share a couple places on the web I used the javascript version of this Bezier function. http://mathahoy.com I used it for the cannon ball trajetory. http://jigfu.com I used it to draw the curves to cut the tiles on. They are old and very dated, but feel free to view source and read though the code if you want.
  4. In the Bezier script I made available. All the data is in the moveNode() function. That is where it loops though the Bezier function though the time. The returned point is packed in the llRegionSay(sysChan+i, "move%"+(string)bezier3(p1, p2, p3, (float)i/10)); That builds a string for the nodes to parse into a list in the move%targetVector format. So bezier3(p1, p2, p3, (float)i/10) is the vector of which each 'node' point is located. To make it work for KFM, I would build a list in the moveNodes loops instead of chatting to the region and use that data to drive the keyframes. For complex paths you will probably want to nest it inside another loop with that p1, p2 and p3 points updated in-between iterations. moveNodes(){ vector p1 = llGetPos(); list anchorInfo = llGetObjectDetails(anchorKey, [OBJECT_POS]); list handleInfo = llGetObjectDetails(handleKey, [OBJECT_POS]); vector p2 = llList2Vector(handleInfo,0); vector p3 = llList2Vector(anchorInfo,0); integer i; for ( i=0; i<llGetListLength(nodes); i++ ){ llRegionSay(sysChan+i, "move%"+(string)bezier3(p1, p2, p3, (float)i/10)); } anchorPos = p3 - llGetPos() / llGetRot(); handlePos = p2 - llGetPos() / llGetRot(); }
  5. I only posted the function here. The whole working prims are on the MP. But yeah, I need to write a notecard to explain it better. My code is probably on the hard to read side too. I will try to write that stuff.
  6. Virtual Kitten pointed me to this thread. It took me a couple days to find my old Bezier script, it was hiding in an unfinished climber script. The function I use is: vector bezier3(vector p1, vector p2, vector p3, float mu){ float mum1; float mum12; float mu2; vector p; mu2 = mu * mu; mum1 = 1 - mu; mum12 = mum1 * mum1; // p= (1-mu)^2 p1 + 2*mu*(1-mu)*p2 + mu^2 * p3 p.x = p1.x * mum12 + 2. * p2.x * mum1 * mu + p3.x * mu2; p.y = p1.y * mum12 + 2. * p2.y * mum1 * mu + p3.y * mu2; p.z = p1.z * mum12 + 2. * p2.z * mum1 * mu + p3.z * mu2; return(p); } p1, p2 and p3 are vector positions for control points. mu is the time from 0.0 to 1.0. you loop the function through a full time scale and it returns the vector position of that point in time. I posted a working sample on the Marketplace as a full perm freebie https://marketplace.secondlife.com/p/Bezier-script/23187253
  7. good idea Dolphin https://jira.secondlife.com/browse/BUG-6767
  8. Hey guys, I just did a little experment using llTeleportAgent() to position my avatar to operate a lever. It worked really well, expect for the teleportation sound and the toast. Yes, I could use sit targets as has always been done, but the problem with that is there is no range control. And people are able to cam over from half a sim away, sit on the object and be instantly there. I believe if the the teleport sound effects were suppressed if the distance is less than 10 or 20 meters, it could be very helpful in many situtations. Relaxing the throttle on these short range teleports might also be worth dicussion. An idea that just popped into my head as I was writing this could be excellent solution to this. Add a new function called llWalkAgent() Also a llRotateAvatar() function has been sorely needed for years. Once upon a time we were able to, but it got blocked due to abuse. (people were spinning avatars so the viewer had to keep rendering content behind them too fast)
  9. 0: XP_ERROR_NONE 1: XP_ERROR_THROTTLED 2: XP_ERROR_EXPERIENCES_DISABLED 3: XP_ERROR_INVALID_PARAMETERS 4: XP_ERROR_NOT_PERMITTED 5: XP_ERROR_NO_EXPERIENCE 6: XP_ERROR_NOT_FOUND 7: XP_ERROR_INVALID_EXPERIENCE 8: XP_ERROR_EXPERIENCE_DISABLED 9: XP_ERROR_EXPERIENCE_SUSPENDED 11: XP_ERROR_QUOTA_EXCEEDED 12: XP_ERROR_STORE_DISABLED 13: XP_ERROR_STORAGE_EXCEPTION 14: XP_ERROR_KEY_NOT_FOUND 15: XP_ERROR_RETRY_UPDATE 10: XP_ERROR_UNKNOWN_ERROR 16: XP_ERROR_MATURITY_EXCEEDED Here are the correct error codes. They appear to be listed wrong on the two wiki pages.
  10. I also got a little stuck on 'Operation not permitted' the first time I tried out the exp. You need to allow your Exp key on the parcel or estate. In the beta project viewer, open up the About Land window. and then scroll the tabs over to the right to find the experiences panel. (that tab is hidden off to the right of the About Land floater)
  11. well, I tried out firestorm, Rezzed a cube Took the cube Cube is nowhere to be found in my invenotory Attaching the cube on hte ground from the pie menu put it in my objects folder as normal and I was able to detach and have it.
  12. Mixed feelings, I'm looking forward to checking it out, sounds like it's gonna be really fun, but, umm, why is LL competing with their own user base!?
  13. Huge Welcome! So awesome to see you having fun in the platform! Thanks for the peek
  14. A Browser based viewer for SL is gonna be awesomeness! And a really great new development for Second Life. However.... Phillip saying in his speech that LL is not going to pursue it and then a few months later getting a email and blog announcing it, followed by not being able to access it because "based on a number of variables, including bandwidth, system setup details, and other factors" is enough to get a person telling Linden Jokes! How many lindens does it take to change a light bulb? "Our teams are working on it, in the meantime, here is Torely with ten super fun things to do in the dark"
  15. Of course it doesn't help that Phillip is jumping ship to go work on a new buisness. Way to rally confidience
×
×
  • Create New...