Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

3 Neutral

About Nikkesa

  • Rank

Recent Profile Visitors

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

  1. definitely the board cancelling features because it will overall make them less money. We could have land the size of multiple sims for things like vehicle play, but we can't because they think they'll lose money. (scale of land in sl has zero performance impact on server...) just in general, the lack of features and did coming out for this game. they could do a lot to make it fun for new users, but for some reason they don't want to ):
  2. I really wish the sims were better at that then. I like to hangout and build at sandboxes, (mainly the SL Beta sandboxes like bluesteel and letigre), and we regularily get people spawning objects that duplicate thousands of scripts, and the sim performance is systematically destroyed. It would be nice if there was some kind of limit to how many scripts can be run by one person, or how much sim "performance" that they can hog all to themselves...
  3. Say I wanted an animal avatar, or an avatar body type that doesn't strictly adhere to the limited default avatar shapes, Am I able to upload a rigged mesh avatar now without having to worry about using some bug to do stuff the way creators are already doing for the most popular custom mesh avatars on the marketplace? It would be super useful to give my users more freedom of design with the avatar as well. Being able to start at a baseline 50% on all sliders seems like a fairly reasonable thing for a custom-shaped avatar. thanks
  4. I know that back in 2011, the devs were exploring the idea of a feature to let people "live-stream" animations to their avatars. This was the Puppeteer project. Now that we have things like Leapmotion, working VR rigs that let you walk around, and suits that let you puppet animations live into games like Xsens (check out their unreal engine demo), I think it would be a good idea to look at implementing this again. I also understand that they are currently focusing on letting users animate mesh objects as their next "big feature" (probably a heck of a lot more efficient than how people duplicate their mesh 100 times in different animation frames and cycle through them), but it would be good to see the puppeteer project come back in the near future.
  5. Ah, I was thinking more of the only allowing content to be provided from "approved professionals"...
  6. Oh god if they do nothing but try to clone IMVU and add some vehicle fun then I'm going to laugh and never even look at it. With instanced worlds though, I'd be surprised if they didn't let people create their own stuff. With more freedom on creating things, I wouldn't be surprised if a whole lot of hobby-developers would be motivated to create cool things (so long as there's lots of freedom... But yeah, seriously if what I'm reading here is true and they are just aiming to re-create IMVU with the oculus rift and some physics, then they are wasting so much potential it's not even funny. It's too bad the people paying for all of this see something like IMVU and decide that it's the best way to make money This game is going to get destroyed by businessmen.
  7. eh, that's basically all I've done on it since like almost two years ago... It's basically all you need too... I wont be working further with this though, sorry :c
  8. it's a mix of things: The bunny puzzle viss bunny avatar mesh ahir for said avatar ears and horns I've seen on the marketplace The clothes are on the marketplace for the bunny puzzle avatar The tail is on the marketplace as well. It's called a mod. People put a lot of work into these things, and no one is going to do it for you for free ^^
  9. I think that Second Life needs to be smoothed out. It currently feels rather clunky and there's not a lot to do once the novelty of being able to do whatever you want wears off. Sure there are like groups you can join - you can do roleplay, collect things, create fashion and stuff, but it could potentially be so much more if linden labs wanted to lose some money and make it easier to create in-game content. I'm not talking about upload-fees, but if they added an in-game 3D model editor (not just a thing where you can puzzle together prims to make cool shapes), in-game texturing ability (I'm thinking like zbrush here), and more dynamic sims (perhaps the ability to make sims MUCH larger? It would certainly make vehicles worth-while again. Sim crossing right now is still atrocious, and there's so many limits to what you can do with avatar animations, vehicle animations, and physics. Perhaps adding the ability for client-side scripts, animations and physics would fix this
  10. Alright, so basically I WOULD have to do it manually, the lindens never bothered to think that maybe we would want our ground vehicles banking or something Aw well, manually isn't much of a problem. I'm not using the vehicle library for this now, as it was the only thing holding my back \0/ Thanks
  11. ah, sorry; What I want to do is change it so that instead of aligning the vehicles z-axis with the worlds z-axis, I want to be able to align the vehicles z-axis with any vector that I chose. Wondering if this is possible, or if I have to skip the vehicle library all together and make my own version of this...
  12. Well, so far as I know, one can only make a vehicles vertical attraction timescale attractive towards the worlds z-axis... Does anyone know how this can be done on a different axis?
  13. So, this script is the base proof-of-concept for a linkset-based animation system. It precaches rotations and positions of a linkset, (the only limit being memory)... An idea is to have it print off the calculations for the user to save into a text-file, or to send to a server which generates a notecard or something for you to drag into a script... The object could have multiple scripts to load different sections of the animation, but it would be more work, and I'm more about the how than the do anyways... This script is mainly written for a tail, so if you already have a tail segment done, play around with it and you'll have something smooth and animated you can wear ^_^ You are free to do whatever you want with this script; sell it, mod it, use it anything. integer timer_on = 0; list newPositions; //the list of positions to apply to the segments list newRotations; //the list of rotations to apply to the segments float curve_location_x = 360; //the position we are on the curve... float distance_between_segments = 0.1; //the distance between each segment vector segment_size = <0.01,0.1,0.1>; //let's start setting this **bleep**... //Note: may want to incorporate support for different types of segments, such as if we had 3 different cones per segment... integer number_of_segments; list command_list; integer i; float counter = 0; //setup vector position_offset; //part 1 float myAngle1; //the new angle thingy... used later //part 3 rotation rotation_between; //the rotation between two segments... vector childPos1; vector childPos2; vector newValue; //////////////////////////// list position_cache; list rotation_cache; integer toggle_building_setting = 0; /////////////////////////// vector childPos(integer segment_id){ return llList2Vector( llGetLinkPrimitiveParams(segment_id, [PRIM_POSITION] ), 0 ); } rotation childRot(integer segment_id){ return llList2Rot(llGetLinkPrimitiveParams(segment_id, [PRIM_ROT_LOCAL]), 0); } vector childPosLocal(integer segment_id){ return llList2Vector(llGetLinkPrimitiveParams(segment_id,[PRIM_POSITION]), 0) - llGetPos(); } vector buildPositionOffset(rotation rotation_amount, vector current_position, vector axis_position, rotation base_rotation){ //builds the position offset relative to the rotation_amount relative to the base_rotation (which should be the root prims rotation) return ((axis_position - current_position) - ((axis_position - current_position) * rotation_amount)) * base_rotation; //this will return the amount we have to move :D } list fix_position_offsets(list myList, float limit_distance){ //in here we want to basically scale the distance between segments so that it's always the same... list newList = myList; integer j=1; vector segmentPos1; vector segmentPos2; vector vector_between; float distance_between; for (;j < llGetListLength(myList);j++){ segmentPos2 = llList2Vector(newList, j); segmentPos1 = llList2Vector(newList, j-1); vector_between = segmentPos2 - segmentPos1; distance_between = llVecMag(vector_between); //get the distance between the segments... if (distance_between != limit_distance) { //here we scale the distance between the segments vector_between = vector_between * (limit_distance / distance_between); //I suspect this is where the math error is coming from. //and apply it to the list. newList = llListReplaceList(newList, [segmentPos1 + vector_between], j, j); } } return newList; } //for a rotation: //[((childPos(segment_id) - llGetPos()) / llGetLocalRot()) + (buildPositionOffset(llEuler2Rot(llRot2Euler(rotation_amount)*segment_id/10), childPos(segment_id), llGetPos() ) * childRot(segment_id))]; //offset_rotaton = llAtan2(llSin(new_curve_mod), new_curve_mod) integer sign(float input){ if (input > 0) return 1; if (input < 0) return -1; return 0; } /* OKAY, NEW PLAN -------------- We are going to pre-cache all of the positions and rotations for the animation sequence, and apply them over the animation sequence! so yeah, whatever. */ default { state_entry() { integer i = 2; for (;i<=llGetNumberOfPrims();i++){ llSetLinkPrimitiveParamsFast(i,[PRIM_POS_LOCAL,<(float)(i-1) * distance_between_segments,0.0,0.0>,PRIM_ROT_LOCAL,ZERO_ROTATION, PRIM_SIZE, segment_size * i/(i+1)]); } number_of_segments = llGetNumberOfPrims() - 1; //we want to ignore any avatars,especially in case of attachment and such... if (number_of_segments > 1){ while (llGetAgentSize(llGetLinkKey(number_of_segments))){ --number_of_segments; } } } touch_start(integer total_number) { if (llDetectedKey(0) == llGetOwner()){ if (timer_on == 0){ timer_on = 1; llSetTimerEvent(0.04); } else { timer_on = 0; llSetTimerEvent(0.0); llResetScript(); } } // let us start the building of the cache. } timer(){ i = 0; counter++; if (toggle_building_setting == 0) { curve_location_x = curve_location_x - 12; if (curve_location_x <= -1) { curve_location_x = 360; llOwnerSay("Done Caching... " + (string)counter); counter = 0; toggle_building_setting = 1; } command_list = []; newPositions = []; newRotations = []; for (;i < number_of_segments;i++){ //part 1 - set up the new positions for each segment. //use i+2 myAngle1 = llSin(( (float)(i+2) * (PI/2 / number_of_segments) )+( curve_location_x*TWO_PI/360 )) * 0.5; newValue = (llGetPos() - childPos(i+2)); //llOwnerSay((string)myAngle1); //newPositions += [<(float)(i+2)/(1 / distance_between_segments*0.9),0.0,0.0> + <0.0,llVecMag(newValue) * llSin(myAngle1),0.0>]; newPositions += [<(float)(i+2)/(1 / distance_between_segments),0.0,0.0> + ((newValue) - (newValue * llEuler2Rot( <0.0,0.0,myAngle1> ))) + <0.0,0.0,(llCos((TWO_PI * 3/4) * ((float)1 / (float)26) * (float)i) - 1)/2>]; //newPositions += [<(float)(i+2)/(distance_between_segments),0.0,0.0> + buildPositionOffset(llEuler2Rot( <0.0,myAngle1,myAngle1> ),childPos(i+2), llGetPos(),llGetRot())]; //newPositions += [<(1/distance_between_segments)*(curve_location_x/360)*i,0.0,0.0>]; //part 3 - set the rotations of the tail segments /* */ //part 4 - build the command list for our setlinkprimparamsfast function // } newPositions = fix_position_offsets(newPositions, distance_between_segments); i = 0; for (;i<number_of_segments;i++){ command_list += [PRIM_POS_LOCAL,llList2Vector(newPositions,i),PRIM_LINK_TARGET, i + 3]; command_list += [PRIM_ROT_LOCAL,llList2Rot(newRotations,i),PRIM_LINK_TARGET, i + 3]; } position_cache += newPositions; //rotation_cache += newRotations; //apply the new positions llSetLinkPrimitiveParamsFast(2, command_list); i = 0; for (;i<number_of_segments;i++){ //newValue = (llGetPos() - childPos(i+2)); childPos2 = childPos(i+2); childPos1 = childPos(i+1); // get the rotation between the segments... rotation_between = llRotBetween(<llVecMag(childPos2 - childPos1),0.0,0.0>, childPos2 - childPos1); newRotations += [rotation_between]; } rotation_cache += newRotations; } else { if (counter == 30){ counter = 0; } i = 0; command_list = []; for (;i<number_of_segments;i++){ command_list += [PRIM_POS_LOCAL,llList2Vector(position_cache,(integer)counter * 26 + i), PRIM_ROT_LOCAL,llList2Rot(rotation_cache,(integer)counter * 26 + i),PRIM_LINK_TARGET, i + 3]; } llSetLinkPrimitiveParamsFast(2, command_list); } } }
  14. >if he is trying to animate the legs on an avatar, of course animations would be preferrable...
  15. This depends on the legs you want, and what kind of animal you're creating. If you want a little buddy dog thing, it's easy to do. Rotating attachments smoothly is extremely nowadays, now that you can basically move and rotate every single attachment all at once instantaneously. if you want to move a dogs leg, simple rotate the prim or whatever it is you want to do to move it. There are systems where you can set up keyframes and move smothly between those keyframes - I did that with a multi-segmented tail. If it's not an attachment, you could actually USE the keyframe motion library that second life has built-in...
  • Create New...