Jump to content

Miguelito Shilova

Resident
  • Posts

    98
  • Joined

  • Last visited

Everything posted by Miguelito Shilova

  1. I've been working with mesh for a little less than a year, making boats for SL. I've taught myself Wings 3D, creating mesh and using that system's UV mapping tools, and was able to create a decent catamaran (mixed mesh/standard prim) with a fairly low prim to Land Impact of 26 prims to LI of 36. I see some fantastically detailed and complex boats out there - far more than my cat - that manage to get a LI of 32, and want to learn how this is accomplished. My technique has been to either use spheres or tori with 32 faces, work them into a shape, work the UV Maps, export them individually as Collada files, import them into SL with default 'visual' settings, set for 'moving object', and physical setting at 'lowest'. They come into SL as tiny models that I then expand to fit the part on the boat they're intended for. I'm guessing there's a better way to go about this. Have I reached the limit with what I can do with Wings, or am I missing a few steps that could really improve my land impact? Should I weld my models before importing? Which adjustments have the greatest affect on LI with the least tradeoffs? I would love to know what resources are out there that teach how to build vehicles for land impact 'economy.' Thanks for your help - Mig.
  2. Looks like I may have landed this thing - thanks to everyone's help. I corrected the UV map in Wings3D, and in so doing it also seems to have helped with the wrinkles, as well as allowed me to get the poly count down considerably (as Chosen suggested). Land impact on a single pontoon is now 9 as opposed to 60 - and it looks MUCH better. I also wrapped the texture grid to it and the zig-zags are gone as well - I'm definitely moving forward with this model! Thanks again everyone! Mig
  3. Thanks for the detailed response. I exported a collada file from Wings3D and played with the mesh importer and was able to get a nice (albeit still slightly wrinkled) model into SL, but with the size I need (10m long) the land impact of one single pontoon was 60. Based on what I've read I should still be able to create a working boat as long as I set the physics of these pontoons to none and keep the count of the linked physical prims under 32 (currently with sculpted hulls, the prim count is 26). I applied a simple texture grid to my mesh pontoon, and instantly realized I had another issue. Where before the grid laid neatly on the sculpty, now there's considerable distortion of the grid along the long axis - almost a zig zag pattern. Obviously this will take more time (and patience) to work out. At least I have a much better understanding from this exercise as to how the mesh importer works.
  4. I did. I have it on by default. As you can see in the import preview, it shows the wrinkles as well ...
  5. I've had some good success with sculpties created from Wings3D exports, but there is a 'wrinkle' with my sculpty creation - literally - that I'd like to put behind me. I'm using Wings3D 1.4.1 with the Pounceworks plugin. Starting with a 64 X 63 sphere, I've created this catamaran pontoon. As you can see from the shaded model within Wings3D it is silky smooth ... However when I bring the UV Map into SL and apply as a sculpty, it develops ripples and wrinkles, particularly on the on the bow ... I've seen plenty of examples of pontoons out there that look just as good in-world as my shaded model within Wings3D. If anyone knows how to solve this issue, please share. Thanks very much! Mig
  6. I'm working on a boat project where the mainsail needs to rotate to face the wind (SL Wind) when not sailing. In essence, it needs to behave like a weathervane. I'm working with the BWWind script and what I'd like to do is create a routine that gets called during the global boat timer section of the script. I've seen examples of weathervane scripts, but they weren't part of a routine. Would someone be able to assist with the syntax and structure of such a routine? Thanks! Mig
  7. Ah, thank you Rolig - that was the trick. Also I found the rudders turned backwards so I compensated by changing the rotation from 45 to 135. I also had to put calls in to reset to 180 for each rudder once the keypress was released ... Now, onto trying to figure out the rudder bar positions for left, right and center using the PRIM_POS_LOCAL call. control(key id, integer held, integer change) { //turning controls - LEFT AND RIGHT KEYS if ( (change & held & CONTROL_LEFT) || (held & CONTROL_LEFT) || (change & held & CONTROL_ROT_LEFT) || (held & CONTROL_ROT_LEFT) ) { if (sailing) llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION,<rotSpeed/2.0,0.0,rotSpeed>); else llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION,<-rotSpeed,0.0,rotSpeed/1.5>); llSetLinkPrimitiveParamsFast(RudderSB, [PRIM_ROT_LOCAL, llEuler2Rot(<0.0,0.0,-135.0>*DEG_TO_RAD)]); llSetLinkPrimitiveParamsFast(RudderPort, [PRIM_ROT_LOCAL, llEuler2Rot(<0.0,0.0,-135.0>*DEG_TO_RAD)]); // left key hold - end } else if ( (change & held & CONTROL_RIGHT) || (held & CONTROL_RIGHT) || (change & held & CONTROL_ROT_RIGHT) || (held & CONTROL_ROT_RIGHT) ) { if (sailing) llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION,<-rotSpeed/2.0,0.0,-rotSpeed>); else llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION,<rotSpeed,0.0,-rotSpeed/1.5>); llSetLinkPrimitiveParamsFast(RudderSB, [PRIM_ROT_LOCAL, llEuler2Rot(<0.0,0.0,135.0>*DEG_TO_RAD)]); llSetLinkPrimitiveParamsFast(RudderPort, [PRIM_ROT_LOCAL, llEuler2Rot(<0.0,0.0,135.0>*DEG_TO_RAD)]);// right key hold - end } else if ( (change & ~held & CONTROL_LEFT) || (change & ~held & CONTROL_ROT_LEFT) ) { llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION,<0.0,0.0,0.0>); llSetLinkPrimitiveParamsFast(RudderSB, [PRIM_ROT_LOCAL, llEuler2Rot(<0.0,0.0,180.0>*DEG_TO_RAD)]); llSetLinkPrimitiveParamsFast(RudderPort, [PRIM_ROT_LOCAL, llEuler2Rot(<0.0,0.0,180.0>*DEG_TO_RAD)]); // left key touched - end } else if ( (change & ~held & CONTROL_RIGHT) || (change & ~held & CONTROL_ROT_RIGHT) ) { llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION,<0.0,0.0,0.0>); llSetLinkPrimitiveParamsFast(RudderSB, [PRIM_ROT_LOCAL, llEuler2Rot(<0.0,0.0,180.0>*DEG_TO_RAD)]); llSetLinkPrimitiveParamsFast(RudderPort, [PRIM_ROT_LOCAL, llEuler2Rot(<0.0,0.0,180.0>*DEG_TO_RAD)]); // right key touched - end
  8. OK - I've made a first pass at the script modifications. I used your script suggestion to find the linknumber for the two rudders and the bar (then removed the scripts), and declared these globally: //rudder variables - added by Miguelito Shilova 051212integer RudderSB = 5;integer RudderPort = 4;integer RudderBar = 18; I then found the section related to left and right control, and added llSetLinkPrimitiveParamsFast calls for just the rudders. SL compiled and saved without an error message: control(key id, integer held, integer change) { //turning controls - LEFT AND RIGHT KEYS if ( (change & held & CONTROL_LEFT) || (held & CONTROL_LEFT) || (change & held & CONTROL_ROT_LEFT) || (held & CONTROL_ROT_LEFT) ) { if (sailing) llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION,<rotSpeed/2.0,0.0,rotSpeed>); else llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION,<-rotSpeed,0.0,rotSpeed/1.5>); // left key hold - end } else if ( (change & held & CONTROL_RIGHT) || (held & CONTROL_RIGHT) || (change & held & CONTROL_ROT_RIGHT) || (held & CONTROL_ROT_RIGHT) ) { if (sailing) llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION,<-rotSpeed/2.0,0.0,-rotSpeed>); else llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION,<rotSpeed,0.0,-rotSpeed/1.5>); // right key hold - end } else if ( (change & ~held & CONTROL_LEFT) || (change & ~held & CONTROL_ROT_LEFT) ) { llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION,<0.0,0.0,0.0>); // left key touched - end llSetLinkPrimitiveParamsFast(RudderSB, [PRIM_ROT_LOCAL, <0.0, 0.0, 45.0>]); llSetLinkPrimitiveParamsFast(RudderPort, [PRIM_ROT_LOCAL, <0.0, 0.0, 45.0>]); } else if ( (change & ~held & CONTROL_RIGHT) || (change & ~held & CONTROL_ROT_RIGHT) ) { llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION,<0.0,0.0,0.0>); // right key touched - end llSetLinkPrimitiveParamsFast(RudderSB, [PRIM_ROT_LOCAL, <0.0, 0.0, -45.0>]); llSetLinkPrimitiveParamsFast(RudderPort, [PRIM_ROT_LOCAL, <0.0, 0.0, -45.0>]); } I take the boat back into inventory, rez it in the water, board the boat, and as soon as I touch a left or right key I get an error message for each rudder ... llSetPrimitiveParams error running rule #1 (PRIM_ROT_LOCAL): arg #1 quaternion expected but vector given. llSetPrimitiveParams error running rule #1 (PRIM_ROT_LOCAL): arg #1 quaternion expected but vector given. Is there a way I can represent the rotation values differently to avoid the error? Thanks, Mig
  9. Oops - thanks Rolig - you replied to my linknumber question while I was writing my last post. Thanks everyone! Can't wait to dive in this evening
  10. Yep, there are several scripts in the BWW package - the root prim contains the sailing engine script and a helmsman pose script. Each sail has a script that talks to the engine script. I guess you might consider it script heavy, but they seem to behave fairly well at sim crossings. Supposedly a new version of the engine is coming out too. All of this is making sense, and this evening I plan to try it out, but I'm still unclear about how to identify the prim to move. By linknumber, right? How do I capture that? Do I include code in the script to grab that value?
  11. Thank you for the suggestion! A few questions though ... LlSetLinkPrimitiveParamsFast will need the link numbers for each rudder prim and the tiller bar. Do I have to include code in the root script to capture that? How would that be written and where within the script should that go? Is it sensible to just hard code the value of rotation for the PRIM_ROT_LOCALof 45 for left, -45 for right? I suppose for the tiller bar would best be served with a PRIM_POS_LOCAL call ... How do I express a position change position change with this call? Would it be in terms of <x, y, z> to the root prim position? Thanks for your help! Mig
  12. So in the root engine script, under the call for the left keypress, I need a message linked function for left turn message, and another under the right keypress as well, with a variable defined for a rotational value of say 45 degrees for left, -45 for right, then in the left rudder include a script with a series of if/else if/else statements, each containing a function like: llSetLocalRot( variable * llGetLocalRot() ); ... The last else would have zero rotation for the rudder amidships position Something like that?
  13. I am setting up a catamaran to use the BWWind sailing engine script, and was wondering if anyone could share how they were able to script the rudder movement to the engine script. As this is a cat, it has two rudders connected by a perpendicular tiller bar. Thanks in advance! Mig
  14. Success! Thanks everyone for contributing to this thread. It appears recreating the sculpties was the trick. For added measure I removed the prim with the boat engine script and recreated it as well. When the phantom child sculpties scripts were placed and linked in last, everything came together! See you on the water! Mig
  15. All, thank you for your replies to my post. I am looking forward to trying out your suggestions this evening. One question though... If a linkset previously had phantom prim handler scripts running in the phantom child prims, but those scripts have been removed, will I be able to run new scripts in those same phantom prims, or should I just go back to a version where the prims were unlinked and have never had scripts in them? I would like to know if prims can have 'residual' problems with scripts. Thanks Mig
  16. Hi Qie, Yes, you are correct in that I'm using physical vehicle script, which is limited of course to 32 prims including the riders. I've tried converting the sculpties to physics shape 'None', but as you surmised, it ballooned my prim budget beyond the 32 prim limit and I get the error saying the script won't work due to too many prims. I am interested in Mesh, and I guess I've been looking in the wrong places to find out more about it. I used Wings3D with the SL Sculpty exporter to make the catamaran hull sculpty - could you recommend a free (or cheap) program to create MESH models, and do you know a way to convert my existing Wings3D-based sculpty to MESH?
  17. I get the sense this is one of those 'holy grails' of vehicle scripting: phantom child sculpties in a physical linkset. I've made these two great sculpty boat hulls (two parts to a catamaran hull), but getting them to play nice with the boat script has been troublesome. The bounding box for each prim is huge. I can get AVis to sit on my targets, and can get the boat engine script to work just fine, but as soon as the AVI stands it's catapaulted up and away, and standing midair above the boat. I've played with each of these scripts to get the sculpties phantom and part of the linkset, and the results are either the sculpties don't convert to phantom and boat engine runs fine, or they convert to phantom, and the boat engine script doesn't run. Has anyone else had this problem? I presume by the way these scripts are presented, they're intended to keep separate from the root prim - and I presume by extension - the boat engine script. I understand that using multiple scripts can cause all kinds of conflicts, I'm just curious if anyone has found, and can share, a trick or two at getting these to work together. I'll provide the boat script if someone wants to look at it. Oh, and if someone knows a way to manipulate the bounding box so I DON'T have to worry about turning them phantom, I'd be happy to learn that too. Thanks - and with much appreciation from a newbie coder. Mig
  18. Thanks for the direction. I notice in the comments however that it says 'unpredictable results may occur if the vehicle is moving', which mine will be. Aside from stopping this movement, does anyone know of a workaround?
  19. I am wanting to incorporate into a vehicle a menu that tweaks the position of the pilot's seat (also the root prim) to the rider's needs. Essentially the menu would allow adjustment up, down, forward and back after the rider sat down. Touching somewhere on the vehicle would bring up the menu if they chose to close it. Does anyone have an example snippet they could share? Thanks! Mig
  20. I'm looking to start leading tours of underwater LDPW sites in the Degrand Channel, particularly the larger installations, like the caverns. Can anyone provide locations of public rez zones close to these sites? Also, does anyone know of a HUD or Mini-Map add on that will show landmarks, allowing me to gain a bearing and swim to the location (think waypoints on a tour). Thanks! Mig
  21. I like where you are going with this. Given that i plan to be with those who would use the vehicle copiies, I could just rez the number of copies needed, then they could use them until they stood up. Nice! I'm going to try this and see how well it works.
  22. I have created a vehicle that i want to allow others to use copies of, but don't want them to be able to take into their inventories. What permission settings should i set on the copies to accomplish this, and should i use any specific scripts to take the copies back at a time of my choosing?
×
×
  • Create New...