Jump to content

Search the Community

Showing results for tags 'stop'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • People Forum
    • Your Avatar
    • Make Friends
    • Lifestyles and Relationships
    • Role Play
    • General Discussion Forum
    • Forums Feedback
    • Missed Connections
    • Second Life Education
  • Places and Events Forum
    • Favorite Destinations
    • Upcoming Events and Activities
    • Games in Second Life
  • Official Contests & Events
    • Leap Into Love Snapshot Contest
  • Creation Forum
    • Fashion
    • Art, Music and Photography
    • Animation Forum
    • Bakes on Mesh
    • Environmental Enhancement Project
    • Machinima Forum
    • Building and Texturing Forum
    • Mesh
    • LSL Scripting
    • LSL Library
    • Experience Tools Forum
    • Sansar for Second Life Residents
  • Technology Forum
    • Second Life Server
    • Second Life Viewer
    • Second Life Web
    • General Second Life Tech Discussion
  • Commerce Forum
    • Merchants
    • Inworld Employment
    • Wanted
  • Land Forum
    • General Discussion
    • Mainland
    • Linden Homes
    • Regions for Sale: Full Private Island
    • Region for Rent: Full Private Island
    • Regions for Sale: Homesteads
    • Region Rentals: Homestead
    • Parcels for Sale: Mainland
    • Parcels for Rent: Mainland
    • Wanted: Full Private Island
    • Wanted: Homesteads
    • Wanted: Mainland
  • International Forum
    • Deutsches Forum
    • Foro en español
    • Forum in italiano
    • Forum français
    • 日本語フォーラム
    • 한국어 포럼
    • Fórum em português
    • Forum polskie
    • المنتدى العربي
    • Türkçe Forum
    • Форум по-русски
  • Adult Content Forum
    • Highlight Upcoming Events
    • General Discussion
    • General Announcements
  • Answers
    • Abuse and Griefing
    • Account
    • Avatar
    • Creation
    • Inventory
    • Getting Started
    • Controls
    • Land
    • Linden Dollars (L$)
    • Shopping
    • Technical
    • Viewers
    • Everything Else
    • International Answers

Blogs

  • Commerce
  • Featured News
  • Inworld
  • Tools and Technology
  • Tips and Tricks
  • Land

Categories

  • English
  • Deutsch
  • Français
  • Español
  • Português
  • 日本語
  • Italiano
  • Pусский
  • Türkçe

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


About Me

Found 5 results

  1. This is not really a tutorial, more a walk though of me tackling this, I've tried to explain stuff as I go. I made 8 funnels 24 prim / li total. These are prims, so they degrade with distance really nicely. The look great .. if a little expensive these days. I exported these with firestorm as collada and reimported right back into SL I did not touch the options in the uploader, defaults all the way. It cost me L$35, they are now 15 Li .. Oh no !! My LOD is set to the max allowed in the stock Linden viewer. and if I move my camera back just a little YUK! So I can either reupload, spend more and change the numbers to give it higher detail .. costs more and uses more Li. Nope. I could change my viewer settings so they look awesome! Only now everything in SL is rendered the same way, I guess I didn't like my frame-rate anyway, and it's totally worth a slower SL everywhere just so I can enjoy these .. ok, maybe not. Import into blender 2.8, from this point on i will use menus (and add keyboard shortcuts in brackets) for uncommon things, and just keyboard shortcuts for common ones .. sure there is a menu for everything if you prefer to spend all day on this Press and hold the middle mouse to move your camera, scroll mouse wheel to zoom (or ctrl+middle mouse), shift + middle mouse to pan. Selected all objects 'Select > All' (A) .. or just draw a box around them. Join into one object 'Object - Join' (CTRL+J) .. just to make it easier. I have enabled the wireframe in the viewport overlay At the bottom of the screen you can see how much detail there is in your mesh with the verts, edges and tris. (the slash in the number shows Selected/Total, in this case we have everything selected so the numbers are the same ) Tris:3264 - The number of triangles used to make this object. Faces:3264 - the flat solid looking triangles you can see! Edges:6176 - the lines. Verts:3008 - the points where the lines meet. Ouch, seems the export from SL is a bit .. verbose, not a bad thing, but the opposite of what we want to have back in SL. Lets just do some quick and dirty clean up. Press (TAB) to get into edit mode .. there is a drop down for this, but yeah, it's TAB, you're done. There will be lots of duplicated vertices (the points that all the lines connect to), this just makes things painful .. so get rid of them by 'Mesh > Clean up > Merge By Distance' Bottom of the screen it says - Removed 1616 verticies .. which is well over half what we started with and the other numbers have gotten lower too. Win win .. wait a minute, it all looks horrible !! Seems all the texture data from SL got screwed up, thats ok, we didnt want it anyway ! But this is ugly, so lets make it easier to see while we work on. from the drop down in the top right of the viewport, i set lighting to flat, picked a nice light green and then enable cavity (a little shading, we cant use this anywhere else, but it makes working easier to see). Back face Culling is an important one, blender likes to show faces as being double sided (like a sheet of paper), SL does not. Next, lets ask blender to make it simpler, this wont affect the shape, just remove all the unnecessary bits. 'Mesh > Clean up > Limited Dissolve' That's better, and the numbers are going down ! Next, lets get rid of the stuff inside that we cant see. We know this model has stuff inside that we want to get rid of. If you put two prims side by side, export them from SL, you get everything, even the faces that are out of sight. Select nothing by clicking on the background somewhere. From the top selector, pick 'faces', this controls what bits of the mesh we can select by clicking on it. (Good time to mention the first one is verts, next is edges) You could now start clicking on faces to select them one by one .. but that would take ages .. So lets find another way. Press C you will get a round dotted cursor, scroll the mouse wheel to make it nice and big, and then click, hold and paint all over the funnels. Right click when done. (To deselect this with tool, you can just hold SHIFT while you paint.. don't do that now though, that's not what were doing!) Looks good right? Nope ! Use middle mouse to orbit your camera around .. see what it did OK, lets do that again, and again orbiting the camera each time till we have all the visible faces selected. If you miss click and drop your selection, you can press CTRL+Z to go back to your previous. Half of blender is selecting the bits of your model to work on. Take a moment to slowly rotate around and make sure you got all the faces you could see. Even inside the holes! We think we should ONLY the outside faces of the model selected. Next, lets Hide the stuff we have selected Press H ! Poof, a lot went away and were left with some rings? These are faces we didn't select because they are inside the model. This is not ALL of the hidden faces .. hmmm, got a bad feeling about this. I think we back track and find another way to only expose the hidden faces we don't want. (This is where you decide this was a silly idea and go buy a funnel from the market place like a normal person.) Why did we just do all that if it wouldn't work? Sometimes blender wont do exactly what you expect There are many ways to accomplish the same end. Learning how to fix mistakes is a key skill. Press CTRL+Z a few times till you get back to all the funnels looking complete before we hide anything before. Lets peek in a menu .. 'Select > Select All By Trait > Interior faces' .. why didn't we just do that?! because depending on how your model has been made it doesn't always work, and from my experience with SL imports .. it's not going to help. For me at least with this example .. it selects nothing - either look at the numbers in the bottom right corner, or tap G (to Grab) the selected stuff and move your mouse about .. great visual way of seeing what you have selected .. press right click drop them back without making any changes. We could start peeking inside and trying to select bits we want to get rid of manually .. too slow and too much eye strain, although for some models you may end up resorting to this as a final final last step. Rule of thumb, if it feels like you're pixel editing .. back up and find another way. Lets manually select the stuff we want to keep, but not one by one. Press ALT+SHIFT and then click next to a line, it selected a while ring! (take a few minutes here to play with this and get a feel for selecting stuff) You can hold SHIFT and keep clicking on other bits to add those to the selection. If you miss and drop your selected parts, press CTRL+Z .. undo is your best friend, buy it a cake. Keep going till you have all the 'sides' selected. Holding shift click on the top faces to select those too middle mouse orbit your cam select the bottom faces Now press H to hide the selection How did we do? Ok! Start with the big top ring! Select that (notice it still has a couple of parts, so get each, Press X to delete and from the popup menu, pick 'Faces' It left some edges (and vertices) behind .. we don't care, we might need them .. we might not .. and if not, blenders auto clean up tools will get them later. Now then, lets have a close look at the bottom rings Hmm, seems like our exported prims dont match up perfectly .. well, in any case we wont need this interior faces, so lets select them and delete as before.. pick a face or two and press X, pick faces from the popup, keep going till you just have two rings Press ALT+H to unhide everything to check we didnt delete anything we wanted to keep by accident. if you did .. CTRL Z a couple times to the rescue ! Delete a little less in one go, double check selections of stuff in previous steps. if its all good CTRL+Z once to go back to the outside being hidden. Do the other 7 funnels. (yes, its a chore and slow .. but that muscle memory needs a work out. Remember, you get good, then you get fast. You can use any combination of methods to select stuff to hide, play about, remember how much Undo loves you. you will end up with this OK .. now, let see what's going on with that join. Yike .. We have holes and an almost unlimited number of ways to fix this. We could just patch the holes up with new faces .. probably ugly not to mention fiddly, We could merge the two edge rings together by joining some of those verts up .. slow and fiddly We could junk that bottom part entirely and remake it. fast and easy .. let do that. Middle mouse your camera over so you're looking at the bottom Change the select tool to verticies Using C .. select the ends. If you're clumsy like me and pick bits in the middle too, hold shift while in the C tool and deselect. Select all the geometry that's connected to those points we picked with 'Select > Select Linked > Linked' (or CTRL+L) and then make them go away forever with the X key and picking 'faces' .. if extra stuff goes away .. Undo, double check your selection, try again. Use the C tool to select all those top points .. waait .. just scrubbing your mouse around is going to pick up stuff we dont want so adjust your camera and be careful When you think you have it, tap G and move your mouse about, if only the tops move, you did it. right click to leave the points where they were. Double check by moving your camera and using G again, it pays to be careful. Now, we need to extrude those rings out to match the size of the prims, lucky for US both blender and SL use the same scale! We could have left a couple of edges behind from the previous step as a guide, we could just eyeball it, but for this lets get the size from the actual prim in SL .. which for me from top to bottom is 0.3 ! This one is a few key commands together .. yes menus .. but this is bread and butter stuff, so its really better to just learn the keyboard shortcut way. Press E to extrude, you will have a load of tubes moving about with your mouse, dont click anywhere ! Press Z to lock movement to the Z axis Then type "-.3" (the distance to move, minus as were moving down) and press ENTER Lets close those round holes. Select nothing, Select one pair of rings at a time. and from the top menu 'Edge > Bridge Edge loops' Do the rest. How are we looking for triangle count ? Not too bad. Yes those end funnel parts are more detailed than the SL export, but the over all count is lower. Lets dump these into SL and see what happens. 'FIle > Export > Collada' Bottom left of the screen that appears Make sure selection only is picked (should be) Name the file 'Funnel LOD0.dae' Toss it into SL, same as at the start, not going to change anything on the upload floater, and .... drum roll ... Oh damn !! That's a third of the cost and 3 Li rather than 15 ! BUT WAIT ! THERE'S MORE ! We can now get about twice as far away before they start to collapse The textures are wrong, we need to UV unwrap and a little baking and they will look epic. We can do better on the LOD and cost by manually making those meshes (at least make it degrade smoother even if we cant save any more Li) But this is already a stupid long post. It took me 90 mins .. and I was taking screenshots and writing this mess for most of that. If I was just doing this .. 5 minutes.
  2. Hello! I want to add a stop button to menu of this full length multi song player. how to do it if not difficult? // This list is all you need to edit. List the names of the songs (each collection of sound files that makes one song) // followed by the length of those sound clips (each song should contain clips of equal length) // The list should be structured like so - // list songs = ["Madonna", 9.2, "Jackson", 9.8]; // The names of the songs must be identical to some part of the sound files used for that song like so - //// In the prim inventory (along with this script) - ////// Jackson 1 ////// Jackson 2 ////// ... ////// Jackson 23 ////// Madonna_1 ////// Madonna_2 ////// ... ////// Madonna_23 ////// In the script - ////// list songs = ["Madonna", 9.2, "Jackson", 9.8]; // The script will play the clips in alpha/numerical order so name them wisely. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////ONLY EDIT BELOW HERE/////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// list songs = ["Madonna", 9.2, "Jackson", 9.8]; // YUP! EDIT THIS BIT ;-) /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////ONLY EDIT ABOVE HERE/////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// integer volume = 10; integer lis_count; integer playing; integer busy; integer part; integer lis; integer sl; float delay; list cancel = ["CANCEL"]; list playlist; list waiting; list song; string vol_str = "Volume"; string song_str = "Songs"; string song_name; list StrideOfList(list src, integer stride, integer start, integer end) { list l = []; integer ll = llGetListLength(src); if(start < 0)start += ll; if(end < 0)end += ll; if(end < start) return llList2List(src, start, start); while(start <= end) { l += llList2List(src, start, start); start += stride; } return l; } list Volumes(integer vol) { integer v = 0; list l = []; do { if(v != vol) l += [((string)v)]; } while((++v) <= 10); return l; } PageOne(key k, integer c) { llDialog(k, "\nAdjust the volume or select a song to play?", [vol_str, song_str] + cancel, c); } PlaySong(string n) { song = []; integer c = -1; string name = ""; do { if(llSubStringIndex((name = llGetInventoryName(INVENTORY_SOUND, (++c))), n) != -1) song += [name]; } while(name); delay = llList2Float(songs, (llListFindList(songs, [n]) + 1)); if((sl = llGetListLength(song))) { llPreloadSound(llList2String(song, (part = 0))); if(sl > 1) llPreloadSound(llList2String(song, 1)); playing = FALSE; llSetTimerEvent(0.01); } } integer Chan() { return llRound((llFrand(-5000000.0) + -500000.0)); } float ScaleVol(integer v) { return (v * 0.1); } Listen(integer c, key a) { lis = llListen(c, "", a, ""); } RemoveListen(integer b) { llListenRemove(lis); lis_count = 0; if(b) busy = FALSE; lis = 0; } SetListenTimer(integer p) { if(p) while(((++lis_count) * llRound(delay)) < 30); else { lis_count = 1; llSetTimerEvent(30.0); } } integer CheckWaitingRoom(integer c) { if(waiting) { key a = llList2Key(waiting, 0); if(!c) { RemoveListen(0); Listen((c = Chan()), a); SetListenTimer(playing); } PageOne(a, c); waiting = llDeleteSubList(waiting, 0, 0); return 1; } return 0; } default { on_rez(integer param) { llStopSound(); llResetScript(); } changed(integer change) { if(change & CHANGED_INVENTORY) llResetScript(); } touch_start(integer nd) { while(nd) { key agent = llDetectedKey(--nd); if(!busy) { busy = TRUE; integer channel = Chan(); SetListenTimer(playing); Listen(channel, agent); PageOne(agent, channel); } else { list a = [agent]; if(llListFindList(waiting, a) == -1) waiting += a; } } } listen(integer chan, string name, key id, string msg) { if(msg != llList2String(cancel, 0)) { SetListenTimer(playing); if(msg == vol_str) { llDialog(id, "\nChange the volume?\nThe current volume is set at \"" + ((string)volume) + "\"", cancel + Volumes(volume), chan); return; } if(msg == song_str) { string current = ""; if(playlist) { current = "\n\nThe songs currently queued are\n\"" + llList2String(playlist, 0) + "\" (currently playing)"; if(llGetListLength(playlist) > 1) current += "\n\"" + llDumpList2String(llList2List(playlist, 1, -1), "\"\n\"") + "\""; } llDialog(id, llGetSubString(("\nSelect a song to play?" + current), 0, 500), cancel + StrideOfList(songs, 2, 0, -1), chan); return; } if(llListFindList(Volumes(volume), [msg]) != -1) { llAdjustSoundVolume(ScaleVol((volume = ((integer)msg)))); PageOne(id, chan); return; } if(llGetListLength((playlist += [msg])) == 1) PlaySong((song_name = msg)); } if(CheckWaitingRoom(chan)) return; RemoveListen(1); } timer() { if(playlist) { if(!playing) { llSetTimerEvent(delay); playing = TRUE; } llPlaySound(llList2String(song, part), ScaleVol(volume)); if((++part) == sl) { if(llGetListLength(playlist) > 1) { song_name = llList2String((playlist = llDeleteSubList(playlist, 0, 0)), 0); llSleep(delay); PlaySong(song_name); } else { llSetTimerEvent(0.0); song_name = ""; playing = FALSE; playlist = []; } } else if(part == (sl - 1)) llPreloadSound(llList2String(song, 0)); else llPreloadSound(llList2String(song, (part + 1))); } if(lis && (!(--lis_count))) { if(!(CheckWaitingRoom(0))) RemoveListen(1); } } }
  3. Hello! Can someone help to add stop button to menu of music player script? for now i think i need to add it : string song_name = "Stop"; ///// if(msg == song_stop){llStopSound();return;} // This list is all you need to edit. List the names of the songs (each collection of sound files that makes one song) // followed by the length of those sound clips (each song should contain clips of equal length) // The list should be structured like so - // list songs = ["Madonna", 9.2, "Jackson", 9.8]; // The names of the songs must be identical to some part of the sound files used for that song like so - //// In the prim inventory (along with this script) - ////// Jackson 1 ////// Jackson 2 ////// ... ////// Jackson 23 ////// Madonna_1 ////// Madonna_2 ////// ... ////// Madonna_23 ////// In the script - ////// list songs = ["Madonna", 9.2, "Jackson", 9.8]; // The script will play the clips in alpha/numerical order so name them wisely. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////ONLY EDIT BELOW HERE/////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// list songs = ["Madonna", 9.2, "Jackson", 9.8]; // YUP! EDIT THIS BIT ;-) /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////ONLY EDIT ABOVE HERE/////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// integer volume = 10; integer lis_count; integer playing; integer busy; integer part; integer lis; integer sl; float delay; list cancel = ["CANCEL"]; list playlist; list waiting; list song; string vol_str = "Volume"; string song_str = "Songs"; string song_name; list StrideOfList(list src, integer stride, integer start, integer end) { list l = []; integer ll = llGetListLength(src); if(start < 0)start += ll; if(end < 0)end += ll; if(end < start) return llList2List(src, start, start); while(start <= end) { l += llList2List(src, start, start); start += stride; } return l; } list Volumes(integer vol) { integer v = 0; list l = []; do { if(v != vol) l += [((string)v)]; } while((++v) <= 10); return l; } PageOne(key k, integer c) { llDialog(k, "\nAdjust the volume or select a song to play?", [vol_str, song_str] + cancel, c); } PlaySong(string n) { song = []; integer c = -1; string name = ""; do { if(llSubStringIndex((name = llGetInventoryName(INVENTORY_SOUND, (++c))), n) != -1) song += [name]; } while(name); delay = llList2Float(songs, (llListFindList(songs, [n]) + 1)); if((sl = llGetListLength(song))) { llPreloadSound(llList2String(song, (part = 0))); if(sl > 1) llPreloadSound(llList2String(song, 1)); playing = FALSE; llSetTimerEvent(0.01); } } integer Chan() { return llRound((llFrand(-5000000.0) + -500000.0)); } float ScaleVol(integer v) { return (v * 0.1); } Listen(integer c, key a) { lis = llListen(c, "", a, ""); } RemoveListen(integer b) { llListenRemove(lis); lis_count = 0; if(b) busy = FALSE; lis = 0; } SetListenTimer(integer p) { if(p) while(((++lis_count) * llRound(delay)) < 30); else { lis_count = 1; llSetTimerEvent(30.0); } } integer CheckWaitingRoom(integer c) { if(waiting) { key a = llList2Key(waiting, 0); if(!c) { RemoveListen(0); Listen((c = Chan()), a); SetListenTimer(playing); } PageOne(a, c); waiting = llDeleteSubList(waiting, 0, 0); return 1; } return 0; } default { on_rez(integer param) { llStopSound(); llResetScript(); } changed(integer change) { if(change & CHANGED_INVENTORY) llResetScript(); } touch_start(integer nd) { while(nd) { key agent = llDetectedKey(--nd); if(!busy) { busy = TRUE; integer channel = Chan(); SetListenTimer(playing); Listen(channel, agent); PageOne(agent, channel); } else { list a = [agent]; if(llListFindList(waiting, a) == -1) waiting += a; } } } listen(integer chan, string name, key id, string msg) { if(msg != llList2String(cancel, 0)) { SetListenTimer(playing); if(msg == vol_str) { llDialog(id, "\nChange the volume?\nThe current volume is set at \"" + ((string)volume) + "\"", cancel + Volumes(volume), chan); return; } if(msg == song_str) { string current = ""; if(playlist) { current = "\n\nThe songs currently queued are\n\"" + llList2String(playlist, 0) + "\" (currently playing)"; if(llGetListLength(playlist) > 1) current += "\n\"" + llDumpList2String(llList2List(playlist, 1, -1), "\"\n\"") + "\""; } llDialog(id, llGetSubString(("\nSelect a song to play?" + current), 0, 500), cancel + StrideOfList(songs, 2, 0, -1), chan); return; } if(llListFindList(Volumes(volume), [msg]) != -1) { llAdjustSoundVolume(ScaleVol((volume = ((integer)msg)))); PageOne(id, chan); return; } if(llGetListLength((playlist += [msg])) == 1) PlaySong((song_name = msg)); } if(CheckWaitingRoom(chan)) return; RemoveListen(1); } timer() { if(playlist) { if(!playing) { llSetTimerEvent(delay); playing = TRUE; } llPlaySound(llList2String(song, part), ScaleVol(volume)); if((++part) == sl) { if(llGetListLength(playlist) > 1) { song_name = llList2String((playlist = llDeleteSubList(playlist, 0, 0)), 0); llSleep(delay); PlaySong(song_name); } else { llSetTimerEvent(0.0); song_name = ""; playing = FALSE; playlist = []; } } else if(part == (sl - 1)) llPreloadSound(llList2String(song, 0)); else llPreloadSound(llList2String(song, (part + 1))); } if(lis && (!(--lis_count))) { if(!(CheckWaitingRoom(0))) RemoveListen(1); } } }
  4. Hey all! i'm in need of some assistance. So i've built a Mesh "Musical Impressions" wheel for a Karaoke scenario in SL, and what i'm looking for is a script that can rotate two separate wheels on touch, that will then slowly come to a stop after a random amount of seconds between 1 and maybe 10. I'm not a scripter and so don't have the first clue about how to do this. I'll link a picture to give an idea of what it looks like. There is an outer wheel and an inner wheel, that as i said, need to rotate in opposite directions. If anyone can help it would be greatly appreciated
  5. Bedelgeus

    dance

    I received movements to dance in the tropicana, they told me that to stop them I would have to type / 99stop. Unfortunately I can not stop the avatar, how could I do? Thank you
×
×
  • Create New...