Jump to content

Extrude Ragu

  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by Extrude Ragu

  1. I made a JIRA outlining how bone rotation limits could be supported in the viewer in a backwards compatible way
  2. I wrote AnimHacker to try to get a better understanding of the internal SecondLife animation format and play around with it. So I'm messing with Blender, figuring out how a Blender plugin could be developed to extend Avastar to support SecondLife animation constraints Blender has it's own constraints system, but it is far more advanced than the constraints SecondLife has, but I think it could still be used to generate SecondLife constraint animations... So the IK constraint on the right here, it's taking the left wrist and targetting the left foot (I rotated the foot manually without constraints), to get this to work I had to select the Avatar armature for the target, which revealed a hidden 'Bone' control, where I could then select the foot.. Looking at the Blender Constraints system, I think that the parameters map onto the SecondLife format like this:- One thing I'm not sure about is how constraint_type affects the animation and could be replicated in Blender There's also target_offset and source_offset which the IK Constraint doesn't have in Blender. But perhaps this could be done by making a copy of the relevant bone in Blender and then taking the offset value? What I'm thinking is if I were to develop a Blender plugin and have some sort of dumbed down UI for setting up constraints, that lets you set them up in a SecondLife specific way, and perhaps a .anim exporter or a utility that exports the constraint data and lets you append it to an .anim file exported from Avastar.. Could prove useful?
  3. Yes that's a good idea, I'll add that in when I get some time
  4. I made a utility to edit .anim files! Wussis? Anim Hacker is an Open-Source program for Windows that can read and edit SecondLife/Opensim *.anim Animation files. Example uses Edit your animations and set per-joint priorities Add/remove/edit joint motions from your animation Add constraints to your animations Screenshots Disclaimers Anim hacker is in no way associated with Linden Lab, SecondLife or OpenSim. It is third party software. Anim hacker is not professional software. It is written by a hobbyist. It is provided "as-is" without support. It will crash. It will not perform any kind of validation or sanity checks and is thus capable of writing invalid .anim files. It is easy to break your animations using Anim hacker. You are advised to keep backups of any file you will edit with Anim hacker. Notes This page provides a good insight into what all the various parameters mean. Releases Anim hacker is hosted on GitLab. Download the latest release here: https://gitlab.com/big-bum-logistics/anim-hacker/-/releases Have fun!
  5. I had no idea about Speedlight, thank you@Glaznah Gassnerfor working on the app. App development is one of those thankless tasks, everyone wants a button on their screen for 0.99 but does not grasp the amount of work that goes into these things
  6. Sorry I missed your IM, it's nothing personal. Right now I'm just writing a very basic tool to hack .anim files which I will make available once I'm happy it's working OK. I think in the long term it would be better to get tools into Blender etc to use these. I've written Blender plugins before so I might have a go but not sure yet. In my ideal world it'd be in Avastar itself. I'm not sure if this is true, from my understanding of it after I wrote a parser for these files, each constraint has a specific defined time when they start and stop At least as I understand it, many constraints can be defined, and each constraint is eased in from easeInStart and starts at easeInStop, and eases out from easeOutStart to easeOutStop. So in the pole dance scenario, you would presumably simply ease out whenever you wanted to detach the hand from the pole. Since we can have many constraints, I wonder if it is possible then to ease out from one constraint directly into another Once I get my tool working I will try making some crude animations and post results
  7. I got by for many years in SL without putting money into it. There are many good free avatars plenty of creators on SL don't do it for money but for fun, and even still I found it possible to make money by doing things like texture commissions for people or other services. Capitalism-Ho!
  8. TLDR: SecondLife supports many of the advanced animation techniques of modern games - But we just don't take advantage of it. The Basics The majority of uploaded animations are in a format where each bone along a chain of bones has a fixed rotation value - This is commonly referred to as an FK animation. FK Animations are OK for single poses - But they have flaws with couple poses. For example when you want to hold hands with someone else, more often than not your hands will not line up with your partners, because the rotation of each bone needed for the hands to meet each other changes depending on each avatar's shape, but the FK animation has fixed rotations: IK Animations work different, instead of controlling the rotation of the bones individually, they control the target - The bones rotate dynamically to get the limb into the target position. In our hand holding case, if both hands target the same fixed point in space, the avatars would always* hold hands, no matter which size they are. *Unless the size difference is so big they cannot physically reach each other Constraints - How they work Most people are not aware, but SL's animation system does support IK animations in its own special way, it's just not well-documented, and we lack popular creators tools that can make them. Blender's Avastar lets you pose an avatar using IK controls but the exported animations are always FK. Lets say you want to put your hand on your head. The 'Source' is R_HAND and the 'Target' is HEAD. If this was all our hand would go inside our head, but we also have an 'Offset' that can move the hand to a set offset so it is offset from the head. The target is then relative to the head. Now no matter how long or short your arms are, your hand will pretty much always end up on the side of your head, and never clip through it. SecondLife's animation format supports many targets for constraints including PELVIS, BELLY, CHEST, NECK, HEAD, L_CLAVICLE, L_UPPER_ARM, L_HAND, R_CLAVICLE, R_UPPER_ARM, R_LOWER_ARM, R_HAND, R_UPPER_LEG, R_LOWER_LEG, R_FOOT, L_UPPER_LEG, L_LOWER_LEG, L_FOOT. You can target joints to move relative to all of those places. But there's one special one... The GROUND Constraint and why we should be asking for it You see, it turns out that those clumsy default animations we all rush to replace are some of the most advanced animations in all of SecondLife See how the feet respond to the incline of the ground? The original SecondLife developers added code into the viewer support for targeting GROUND - And they used it, in the first (albeit clumsy) animations ever. The viewer can detect where the ground is, and adjust animations that are relative to ground accordingly. What's this got to do with hand holding? Well, when you are able to target limbs to an offset relative to a fixed position such as the ground, you can do things kinda like this: Both Avatar's hands will always connect because the constraint target position is set in such a way that both avatar's targets end up in the same place. Why am I telling you all of this? Well, I started working on a tool to make use of the constraints feature of SecondLife. But I've run into some issues. Firstly, even though the SecondLife viewer supports the GROUND constraint, and the viewer uses animations that use the GROUND constraint by default - The animation uploader does not recognize animations that use this constraint - And that's a real bummer! I think that with this constraint we could honestly make the posing experience in SecondLife so much better for couples as you would rarely need to adjust a pose ever again. I want to be able to make AO's and animations where arms and limbs don't tend to clip through the body depending on shape. Constraints would help achieve this. Animations that *ahem* self-touch would be much accurate too. The trouble here is a lack of third party support for constraints as far as I can see. My hope by writing and illustrating all of this and sharing it is that it raises awareness, maybe in the future we could get tools that take advantage of this, and maybe someone at LL will update the uploader to allow GROUND to work!
  9. I don't think the partnership box in SL really has the gravity OP seems to think it has
  10. Here's an example of how you could get something close to an associative array in LSL. It uses a strided list for quick iteration of keys, but uses json to store the value to allow more complicated data structure:- list people; // Add a person to people // name: The person's name // details: JSON Encoded Object containing age, fav_food, shirt_color, description add_person(string name, string details) { people += [name, details]; } string get_person(string name) { integer i; integer num_people = llGetListLength(people); while (i < num_people) { if (name == llList2String(people, i)) { return llList2String(people, i + 1); } i += 2; } return ""; } default { state_entry() { // Adding people to our list of people string janet = llList2Json(JSON_OBJECT, [ "age", 20, "fav_food", "pizza", "shirt_color", <1,0,0>, "description", "Wears a red shirt" ]); string jack = llList2Json(JSON_OBJECT, [ "age", 35, "fav_food", "yakisoba", "shirt_color", <0,1,0>, "description", "Wears a green shirt" ]); add_person("Janet", janet); add_person("Jack", jack); // Retrieving people list people_to_retrieve = ["Janet", "Paul", "Jack", "Steve"]; integer i; integer num_people_to_retrieve = llGetListLength(people_to_retrieve); while (i < num_people_to_retrieve) { string name = llList2String(people_to_retrieve, i); string json = get_person(name); if (json != "") { integer age = (integer)llJsonGetValue(json, ["age"]); string fav_food = llJsonGetValue(json, ["fav_food"]); vector shirt_color = (vector)llJsonGetValue(json, ["shirt_color"]); string description = llJsonGetValue(json, ["description"]); llSetColor(shirt_color, ALL_SIDES); llSay(0, name + " is " + (string)age + " years old. " + description); llSay(0, "Favourite food: " + fav_food); } else { llSetColor(<0,0,0>, ALL_SIDES); llSay(0, "I don't know a " + name + "!"); } ++i; llSleep(3.0); } } }
  11. Depends on the type of sim you go to. I mean a lot of casual social sims people aren't looking to interact with your avatar they're looking to interact with you. Roleplay sims on the other hand will have people looking to interact with your avatar than you instead.
  12. ??? I do not think that your frame of mind surrounding how you talk to others will allow you to make progress towards helping your partner. Might I remind you that a human being is going to read what you wrote. It might help you to follow the principle of Hanlon's Razor, ie. "Assume ignorance before malice" - you might find people are more receptive of your concerns.
  13. To me it just sounds like negative reinforcement. Who would want to be a creator if you found yourself in a position where if you do something wrong you'd find yourself threatened with being put on some wall of shame, told how bad you are or worse harassed. There is enough performance anxiety at our real jobs. SecondLife is a place where we can try and fail repeatedly and feel like we are not risking our lives doing so. It gives us freedom to experiment. Why not do something positive that encourages positive behaviour? A creator rewards, reward people who do go above and beyond with recognition, give creators something to work towards, something they can be proud of.
  14. Is this actually true? I thought that if a prim cube occludes an object behind it, the object behind is excluded from being drawn. I know that Sinespace has this behaviour because if you clip your camera halfway into a wall objects disappear
  15. Sim Rent is by far the biggest expense at around 15k L$ a week... oof
  16. Has anyone else noticed that culture surrounding death seems to just suck. Like I mean, stopping 90 y/o Grandma seeing their kids in case Grandma dies. What do people think Grandma lives for, do they think she is planning to go skydiving? No the only company she gets is her family. What purpose does it serve to survive a virus if you're already on deaths door and just want to live and enjoy the last part of your life? And like the same with Hospitals where every death is treated as a preventable tragedy, where doctors would rather put people on deaths door through extreme pain/suffering, loss of dignity, where every living moment is a living hell just to keep them alive for another 30 seconds, instead of accepting death and letting them enjoy their last moments peacefully with the people they love? Not every death has to be tragic, as long as the person has led a full life and come to their natural time, why not just celebrate that they've lived a full life and that you're there with them to give them company in their last moments, than act like it's some horror show that shouldn't be happening? There comes a point where avoidance of death is actually you know harmful to someones quality of life and I feel like people don't seem to get that which frustrates me. I hope when I'm 90 and in a hospital bed I'm allowed to pass away peacefully rather than having a full on anxiety attack whilst doctors pump $$$ loads of every drug into my veins and everything is going crazy.
  17. There is an additional regression that OP doesn't mention Rezzed objects now have ~3 second delay before scripts start working. Was about 1/4 of a second before, it sounds like a small thing but it makes systems that rez objects such as pose systems etc very clunky, borks scripted weapons etc. There are multiple bug reports about it on the SL JIRA so it's not just me.
  18. I'd log in, but I'd never cross a sim crossing ever again
  19. More sex jk The newest firestorm put live stream video codecs back into the web player but that service (rabbit?) is dedded, would be nice to figure out how to watch movies together in SL again
  20. WSB as far as I know is both the left and right it is not political. Just people who hold a resentment against hedge funds as they were responsible for betting away the economy in the past. Looks to me like they are *****tin bricks now that they've been shown that ordinary people can manipulate the market too and make them lose all their money. Of course the media is going to try to paint it as a culture war, it gets clicks and they're sweating bullets that something actually united the left and the right against a common enemy.
  21. Let's just hope that if we are they don't switch it off for a while
  22. I miss sitting on those spinning roundabouts as a kid in the playground nyoom
  23. People who can't communicate concisely. My boss does not know how to write a short email. Every single one is like 8+ paragraphs long. I usually end up pulling out a piece of paper and writing a conclusion of each paragraph just so I can begin to understand what he is trying to say. I work with software which is a creative process, anything that interrupts my train of thought can mess me up for hours. It makes dealing with him very stressful. Headache inducing.
  24. The ability to create worlds and have your friends with you in your world as you do it. I'd never create a game because I wouldn't be able to share my world with others or let others live in it as I'm making it. Years and years of my life would be spent on my own. I create on SecondLife because I'm with my friends, and my friends can also create and put into my world. I can't overstate how much that 'made' SecondLife for me.
  • Create New...