Jump to content

VirtualKitten

Resident
  • Posts

    916
  • Joined

  • Last visited

Everything posted by VirtualKitten

  1. Thank Optimo but why didn't rigify do this when it created the slick armature . The public is going to try this as it much easier to use rig using this than anything else that has come before and is available for blender as a bolt on that works with their product . You all seem to be suggesting Avastar has monopoly how can this occur? The Rigify mesh looks just like the second life one with a bone hierarchy. I like many other users do not know about this detail of bones when blender is providing this slick new rigging route why has it not somewhat 100 versions on from 2.78 come to grips with this export to Second life dae.
  2. Uh not again this is becoming ridiculous , why is blender or Second life not getting a handle on this ? I have now learned to rig on two separate systems and was lead to believe again on nice slick youtube video that blender had now added the software with its utilities and to be fair it was not that hard to rig using it . The first being bentobuddy harder to use but worked the same. Why does Avastar have control on this import to SL as it appears you are informing me Avastar is the only route and has monopoly? This is very frustrating Its my first successful mesh I can pose and now you seem to be saying I cant use it as the Rigify names don't suit blender and Second life if Rigify is so incompatible with SL why did they create and easy system with the wrong bone names? It looks just like the the Linde one you describe as Optimo . Is there not a Rigify translation matrix as Avastar is very very expensive and places itself out of my use with no option to use . I am only having this problem as a seller on MP has retracted their sale of contract with me as their product was unfit for purposed and described on MP as something it was not and basically Second life governance think that is is acceptable. Just closing the ticket! which is very worrying and against its TOS. Further more avastar is not compatible with 2.91.2 and we all now know you cant save blender files back to 2.78!
  3. Hi I am starting my first project in the world of animation and armatures i used the Rigify new armatures for a wolf and after placing bones in right place imported direct into SL at cost as beta site still has no entry ending up in a building in Adita. This imported successful but I notice none of the animations I have bought previously work this skeleton to move .Is this a non compatibility bone name convention issue and has this not been resolved in 2.91.2 . I can move the item properly in Blender but this does not seem to transpose to Second life .Am I missing something as others in a group says it doesn't work with Second Life at all they cant be right as this Rigify has just been introduced in Blender 2.51.2 . What do I need to get this to work in Second life Please ? Thanks for looking. Denise
  4. fixed it thanks Google I had to F3 to get Clear pose and cleared all and it went back yay for google for a change https://www.google.com/search?q=blender+2.51.2+clearing+pose+positions&oq=blender+2.51.2+clearing+pose+positions
  5. Hi everyone I hope you are all well different group for a change. I switched to blender 2.92.1 to use rigify and it was fabulous but i managed to get myself stuck. I found that editing in the Pose creation tool was good but not as precise with hard angle manipulation as edit mode . I created my skeleton from rigify and got it looking quite good i created the weighting and my wings did not move so went back to previous mesh and edited bones positions in edit mode. Now I have read everywhere you can save bones poses by Ctr+A but this appears to do nothing perhaps i am using it wrong giggles. Now i have had to remove my default poses from the pose library and the pose and object tabs and screens show the mesh in the wrong position how do i set my bones in edit mode to be the default pose Please as I am stuck Thank s for looking Denise
  6. @Q Linden *********UPDATE *******SOLVED ***************** This why my large code would not work there is a bug in the LSL TargetRemove( that does for some unfathomable reason does *not* clear its contents of the key it is clearing secondly I can see further problems in this routine as it only seems to issue a 0 or 1 no key value you cant send these keys through procedures giving it a real headache why doesn't LSL look at these thing when it adds code like TargetRemove( to be honest its not a good workable solution and LSL needs to fix it can you suggest this to them please? MR Linden Why cant you do this : integer __llTargetRemove(integer _id){ llTargetRemove(_id); return 0; }
  7. This is what it does really slowely https://gyazo.com/817c0d8023c35918775b125b6154d535 Its going round but flame does not point the same direction i am
  8. Molly Idk at all, I could get yesterday was it either rotating with me an not moving and then following me but not rotating i am really puzzled by this as i thought I understood this and cant quite see what is going wrong.
  9. vector offset = < 0.2, 0.2, 0.2>; //1 meter behind and 1 meter above owner's center. key l_myowner = "c14f48db-464c-4ccb-af11-8b58e78d6aa0"; default { state_entry() { llSetStatus(STATUS_PHYSICS, FALSE); // Little pause to allow server to make potentially large linked object physical. llSleep(0.1); llSetTimerEvent(1.0); } timer() { list det = llGetObjectDetails(l_myowner,[OBJECT_POS,OBJECT_ROT]); vector pos = llList2Vector(det,0); rotation rot = llList2Rot(det,1); vector avOffset = offset *rot;//*llEuler2Rot(<0,0,-90>)*DEG_TO_RAD; pos += avOffset; // use the one you want, world or relative to AV. // llMoveToTarget(pos,0.1); llSetPrimitiveParams([PRIM_POSITION, pos/*, PRIM_ROTATION,rot*/]); } } Got it moving but how do i get it to face to the same direction as me it was moving with particle shooting out the front now it doesn't do that
  10. @Mollymews I changed it to off and still doesn't work am using llSetLinkPrimitiveParams(1,[PRIM_POSITION, pos, PRIM_ROTATION,rot]); not lLSetPos x D
  11. Hi Prof, nope 1.5m, llList2String had not noticed but it didn't make any difference with llList2Rot, thanks for looking. the rot is extracted from Avatar
  12. @Ruthven RavenhurstHi and thanks for that link its very kind I have seen it but I was writing something smaller that isn't quite working strangely it does the same as mine using the Sample Script - Key Framed Follower it rotates but does not come close I haven't figured out what is going on : //Follower script originally from wiki modified to run faster. vector offset = < 0, .25, 0>; //1 meter behind and 1 meter above owner's center. key l_myowner = "c14f48db-464c-4ccb-af11-8b58e78d6aa0"; default { state_entry() { llSetStatus(STATUS_PHYSICS, FALSE); // Little pause to allow server to make potentially large linked object physical. llSleep(0.1); llSetTimerEvent(1.0); } timer() { list det = llGetObjectDetails(l_myowner,[OBJECT_POS,OBJECT_ROT]); vector pos = llList2Vector(det,0); rotation rot = llList2Rot(det,1); vector worldOffset = offset; vector avOffset = offset * rot; pos += avOffset; // use the one you want, world or relative to AV. // llMoveToTarget(pos,0.1); llSetPrimitiveParams([PRIM_POSITION,pos,PRIM_ROTATION,rot]); } } It does rotate but cant seem to get it to move for some reason . But having a bad day so have given up with it for today as sometimes things get easier with a break Hugs D x
  13. @00b02c Particles can be very nice and add to the experience in Second life. The preference window now has a particle setting which allows you to set the max particles count you want to view . Its a great addition to Firestorm Browser to stop this kind of irritating thing happening :
  14. Hi everyone , I wonder if any of you can help I needed a faster version of the follow-me scripts available all using llMoveToTarget that require the item to be physical . I am there for trying to get something else to work and having a bad day My object will rotate the same as me but not to the offset position can anyone help? .I have read you should not use sensor something to do with Havock Thanks for looking I hope you are all well
  15. Hi everyone I wonder if you could help I came across this delighful page which i though might solve all of my problems http://wiki.secondlife.com/wiki/Wanderer only to implement a version of : vector nextCoordinates(integer TYPE) { float driftRange = llFrand(MOVEMENT_RANGE); float a = llFrand(TWO_PI); float b = llFrand(TWO_PI); float c = llFrand(PI); if(TYPE == 2) return <iPos.x + driftRange, iPos.y + llFrand(MOVEMENT_RANGE), iPos.z>; if(TYPE == 4) return <iPos.x + driftRange * llCos(a), iPos.y + driftRange * llSin(b), iPos.z>; if(TYPE == 8) return iPos + <driftRange * llCos(a) * llCos(b), driftRange * llCos(a) * llSin(b), driftRange * llSin(a)>; if(TYPE == 16) return iPos + <driftRange * llCos(a) * llCos(b), driftRange * llCos(a) * llSin(b), driftRange * llSin(c)>; if(TYPE == 32) return iPos + <driftRange * llCos(a) * llCos(b), driftRange * llCos(a) * llSin(b), -driftRange * llSin(c)>; if(TYPE == 64) return iPos + <driftRange * llCos(a) * llCos(b), llFrand(MOVEMENT_RANGE) * llCos(a) * llSin(b), driftRange * llSin(a)>; if(TYPE == 128) return iPos + <driftRange * llCos(a) * llCos(b), llFrand(MOVEMENT_RANGE) * llCos(a) * llSin(b), driftRange * llSin(c)>; if(TYPE == 256) return iPos + <driftRange * llCos(a) * llCos(b), llFrand(MOVEMENT_RANGE) * llCos(a) * llSin(b), -driftRange * llSin(c)>; return iPos; } by the wanderer Does anyone have a neater solution please like llWanderWithin( uses? Thanks for looking Denise
  16. Just to le you know the bvh rom the big library available on internet all fail to load in QAnimator with it crashing out completely with no error this must be either an OS or Qanimator problem. Hope my findings help x
  17. @Mazidox Linden Mazidox Linden I have been looking at error codes and it is reporting 3 PU_FAILURE_INVALID_GOAL When it is flying only on same spot at 3000m and not llNavigate to next place. path_update(integer type, list reserved) { if (~llListFindList([PU_FAILURE_INVALID_START,PU_FAILURE_INVALID_GOAL,PU_FAILURE_UNREACHABLE], [type])){ list l = llGetClosestNavPoint(llGetPos(), []); if( l!=[]){ llNavigateTo(llList2Vector(l, 0), [FORCE_DIRECT_PATH,TRUE]); } else{ //Houston, we have a problem... llOwnerSay("Houstan we have a problem: " +(string)type + ", " + path_err_msg(type)); } } which means Goal is not on the navmesh and cannot be reached. Goal is not on the navmesh and cannot be reached. What does this mean exactly as the whole mega-prim its on is navmesh? See above!
  18. Can parcel areas have different dynamic path finding than the rest of the SIM I built a little tester script to test if dynamic path-finding was enabled it is enabled so why is this not available at 3000m please in a different parcel I wrote this and it was enabled default { touch_start(integer total_number) { string version = llGetEnv("sim_version"); llOwnerSay("Region " + llGetRegionName() + " is running " + llGetEnv("sim_channel") + " version " + version ); list ver = llParseString2List(version, ["."], []); llOwnerSay("Build: "+llList2String(ver, 3)); llOwnerSay("Build Date: "+llList2String(ver, 2)+"-"+llList2String(ver, 1)+"-20"+llList2String(ver, 0)); llOwnerSay("Estate ID:"+llGetEnv("estate_id")); llOwnerSay("Estate Name:"+llGetEnv("estate_name")); llOwnerSay("Dynamic Path Finding (on/off):"+llGetEnv("dynamic_pathfinding")); if (llGetEnv("dynamic_pathfinding")== "enabled") llSetColor(<0.180, 0.800, 0.251>,ALL_SIDES); else llSetColor(<1.000, 0.255, 0.212>,ALL_SIDES); llOwnerSay("Region Start Time:"+llGetEnv("region_start_time")); llOwnerSay("Sim Channel:"+llGetEnv("sim_channel")); llOwnerSay("Sim Version:"+llGetEnv("sim_version")); list details = llGetParcelDetails(llGetPos(), [PARCEL_DETAILS_NAME, PARCEL_DETAILS_DESC, PARCEL_DETAILS_ID]); llOwnerSay( "Local Parcel Name:" + llList2String(details ,0)); llOwnerSay( "Local Parcel Desc:" + llList2String(details ,1)); llOwnerSay( "Local Parcel Desc:" + llList2String(details ,1)); } }
  19. @Mollymews thanks Molly we just need to find out why path finding doesn't work at 3000m can an estate be parceled up differently so the pathfinding works in one area but know another strangely I have been using build >> fathfinding > view/tests: which passes tests however there appears to be no random pathfinding which is curious
  20. @animats i did look at your code 24 pages its seems very complicated and hybrid code of LSL and perhaps 'C' I am not sure what environment it was written for . I have played with llCastRay( but I found it was not good with single ray too it was unable to detect items if they slightly overlapped with a single llCastRay has this now been made to work ? Currenly I am still not aware how much time before a collision _before event occurs before the collision. I could not find this written anywhere . I am unsure how he is turning from the collision after reporting hits maybe there is some inbuilt physics rebuttal from normal mesh objects ? The keys it returned was all different oddly I need to look to see what they are but haven found an easy route yet.
  21. The PHANTON model doesnt work at all when you use llSetStatus(STATUS_PHANTOM, TRUE); it reports an error in the console that character's cannot be set to phantom. Further more i tested a bit more with collision and a flapping wing the collision system did report about 10 hits using the collision script above and strangely rotated himself away . I am not sure how or why As I have no coding to do that . My coding was in a loops like this collision_start(integer num) { while(num--) { collission_velocity=llDetectedVel(num); collission_key = llDetectedKey(num); l_collission_object = llGetBoundingBox(collission_key); centre = llDetectedPos(0) + (llList2Vector(llGetBoundingBox(collission_key ),0) +llList2Vector(llGetBoundingBox(collission_key),1))*0.5; size = llList2Vector(llGetBoundingBox(collission_key ),1) -llList2Vector(llGetBoundingBox(collission_key),0); llOwnerSay("Collission: " + (string)collission_key); } } collision(integer num_detected) { if(llSubStringIndex((string)llDetectedName(0),"wood") || llSubStringIndex((string)llDetectedName(0),"tree")) { // Do something to avoid if we are able to avoid. //llSetStatus(STATUS_PHANTOM, TRUE); } else if(~llListFindList(avoid_access_list, (list)llDetectedName(0))) { //llSetStatus(STATUS_PHANTOM, TRUE); } } collision_end (integer num) { //llSetStatus(STATUS_PHANTOM, FALSE); } land_collision_start(vector pos) { llStartObjectAnimation( flyandperch ); llStopObjectAnimation( curr_animation ); curr_animation = flyandperch; } land_collision(vector pos) { llStartObjectAnimation( perched ); llStopObjectAnimation( curr_animation ); curr_animation = flyandperch; } As you can see I positioned him with is wing on the item outside: This gave the following hits: [01:01] Dragon (version three): Collission: 2033c133-1af8-91a4-fbcb-0fd5881ce389 [01:01] Dragon (version three): Collission: 059ea966-ebfc-07e7-6ab8-572ac51b227e [01:01] Dragon (version three): Collission: 16d080f3-8568-a3ff-0399-c6fea7bfc2ed [01:01] Dragon (version three): Collission: 2033c133-1af8-91a4-fbcb-0fd5881ce389 [01:01] Dragon (version three): Collission: 16d080f3-8568-a3ff-0399-c6fea7bfc2ed [01:01] Dragon (version three): Collission: 059ea966-ebfc-07e7-6ab8-572ac51b227e [01:01] Dragon (version three): Collission: 579fc543-454d-b7e1-aa16-4f80668e0362 And he turned away on his own
  22. Am not getting much further with this today I don't understand the need for llCastRay or 9 or more up down left or right things when we have collision before which should trigger before collision how much by I don't know perhaps someone does
  23. Well I did yet a 24 page @animatpath building thing on github but didn't understand how it related to LSL as it was a different language not Linden Script . I have made a start but got no further to try and get some useful variables out : collision_start(integer num) { collission_velocity=llDetectedVel(num); collission_key = llDetectedKey(num); l_collission_object = llGetBoundingBox(collission_key); centre = llDetectedPos(0) + (llList2Vector(llGetBoundingBox(collission_key ),0) +llList2Vector(llGetBoundingBox(collission_key),1))*0.5; size = llList2Vector(llGetBoundingBox(collission_key ),1) -llList2Vector(llGetBoundingBox(collission_key),0); } collision(integer num_detected) { if(llSubStringIndex((string)llDetectedName(0),"wood") || llSubStringIndex((string)llDetectedName(0),"tree")) { // Do something to avoid if we are able to avoid. //llSetStatus(STATUS_PHANTOM, TRUE); } else if(~llListFindList(avoid_access_list, (list)llDetectedName(0))) { //llSetStatus(STATUS_PHANTOM, TRUE); } } collision_end (integer num) { //llSetStatus(STATUS_PHANTOM, FALSE); }
×
×
  • Create New...