Mesh building components


#1

I was working on mesh components that non-mesh makers could then use as a kit to build with inside High Fidellity. There is a problem at the moment with the mesh disappearing. This could be an issue with the stack manager, or overlapping bounding boxes, I am not sure. I am not able to upload and lay them all out and remain, and so far I have not been successful in saving them by duplicating the models.svo file and replacing it after they disappear, or with the models export function. When I try to replace the .svo file with the backup one, or import the models back, it does not seem to work.

At this point in time, no-one would use them to build anyway. If they tried, they would be frustrated and their results would be ephemeral. I shall put this project aside for now, but will return to it possibly in future, if there is still a need or use for this kind of thing.

I did send some wooden steps to Chris, 22 in all, and they are available on the list of models tab beneath the models url link button. There are 11 ranging from 2 steps up to 12 steps, 11 in a wood texture, and 11 in a faded grey wood texture.

Returning to my learning javascript project. Please pray that I do not blow up the universe!


#2

I think it has something to do with the Stack Manager because, like at the meeting, you had the house model rezzed right before the meeting, but after we got there, it was gone, then it was back later on, so it would be my guess that the Stack Manager, or more specifically, the Model Server that is causing the issue.

If you need any help or have any scripting questions, feel free to ask. I’m working out JavaScript myself at the moment, but I already know coding, I’m a pretty prolific at scripting in SL using LSL, but LSL is a bit more simplistic than JavaScript. I’m coming along quickly though, so I can certainly be of help if you need any.

One of the problems with learning JavaScript is that most online examples are for web based applications and there seems to be alot of html tags and such mixed in with the JavaScript. Yesterday I was looking for a way to trigger an animation via a script, but the wiki page A) doesn’t show a function to start an animation, and B), none of the functions listed show the syntax of the function. So, I dove into the interface code on GitHub and found it…

For anyone interested, here’s the syntax: (this function doesn’t return any variables)

MyAvatar.startAnimation (const URL, float FPS, float priority, bool loop, bool hold, float firstFrame, float lastFrame, const QStringList& maskedJoints);

URL is the URL to where the animation is stored.
FPS is the number of frames per second to playback the animation.
loop is to weather or not to loop the animation over and over or just playback once.
hold… not sure about that, a “pause” feature maybe?
firstFrame/lastFrame is the start and end frames of the animation to play.
QStringList & maskedJoints, not sure what a QStringList is, but obviously maskedJoints lets you mask out a particular joint or set of joints.

firstFrame and lastFrame are pretty powerful properties because it gives you the ability to “stack” animations within a single animation. For example, one could mocap several animations in a row… idle, walking, waving, laughing, etc., and playback just the portion of the animation you want through scripting. That way, instead of loading 3 or 4 animations, you could load one that has all of the animations and playback the one you want at will via scripting.

Here’s some sample code…

var URL = "http://highfidelity-public.s3-us-west-1.amazonaws.com/animations/IdleAndWalkAnimation/standard_walk_1.fbx";
var FPS = 30.0;
var priority = 0;
var loop = true;
var hold = false;
var firstFrame = 0;
var lastFrame = 2147483647.0;
var joints = "";

MyAvatar.startAnimation ( URL, FPS, priority, loop, hold, firstFrame, lastFrame, joints);

This example will loop the standard_walk_1 animation.


#3

Hi @Vivienne we are aware of a bug that is happening with mesh disappearing, @ZappoMan is working on refactoring of models and mesh and should be done in 2 weeks. I will create a video today on exporting out models that will help do a backup of anything you create.

Also, I have a worklist job up that will bring in the default size of models https://worklist.net/19903 I am hoping to get this job started this week.


#4

Thanks John! I was looking at Thoy’s modification of your titler script, and you know, I almost understand it! I have been following javascript courses on codecademy, and yes, there is a lot of stuff on html. Nothing learned is ever wasted I have found. I am sure one day even that will be useful to me. I am sure that I will be asking you many questions, and thanks for all that you have shared already. It is so very helpful!

I am also a scripter in SL, and back in the day I played with basic programming on a Commodore 64, and even toyed a bit with machine language. That was a long time ago though!


#5

Thanks Chris! I think it is a good project that might enable others to build creatively here. It would appear that I am just a little bit too early to do it. I will look at it again in a couple of weeks.


#6

We’re in the same boat then @Vivienne. I learned BASIC programming from a book on BASIC programming for the TRS-80 Model I, even before I owned one. Eventually I did, and then I moved on to the TRS-80 Color Computer 3, which had a virtually identical BASIC. I also did a bit of assembly language programming on both machines (Z80 on the Model I and Motorola MC6809 on the CoCo). I did a bit of x86 assembly on the PC as well, but that was ages ago. I stayed away from coding for a long time until I stumbled into SL, and SL let me explore two areas where I have interestes, 3D modeling, and coding. Learning LSL was a bit of a challenge because I was used to line programming like old school BASIC. I had tried several times to learn C, but I just couldn’t wrap my head around event driven coding, but when I found SL, LSL was simple enough (I guess) that i had that ah ha! moment staring at the hello world script. I realized that events were code containers that would execute the code within that container only when that event was true. I think it was the visual of having the cube there, and when I left clicked it, it would say “touched.”, and then looking at the code, I realized that touch_start() was the event, and that the code within the brackets was getting executed when I “touched” the cube. It was a major ah ha moment for me…lol.

After that, I wrote a simple script with a listen event so the object would respond to certain text and play a sound when touched. Then, like now, I wanted to move on to a more complex project, and decided making an analog clock would be a good choice as it wasn’t too complicated, but it would force me to learn more stuff. I wrote that, and learned more stuff like texture rotation, reading the system time from the server, etc… so, once I finished the clock I decided to go into business selling them. I started making different style clocks, wall clocks, post clocks, mantle clocks, and a Tower clock for “big ben” style builds. I added hourly chimes to the tower clock, and a faint ticking sound to wall and mantle clocks, A menu for setting the time, turning on and off the hourly chime on clocks that had it. Eventually I found others in SL that sold clocks, and while some were nice looking builds, most simply told the time in PST only and that’s it, no ticking, no chimes, no menus, nothing. What started out as an idea for a slightly more complex script ultimately taught me half the LSL. I got tired of repacking a notecard with my new location every time I moved, (I scripted the clocks to hand out a notecard and landmark to my shop), so I wound up coding an http request to pull an html file from my website that contained a SLURL to my current location, when I moved, I simply edited in the new SLURL and every clock I sold would automatically reflect the the location of my shop, right now, since I don’t have one it points to the marketplace.

Over the years, as I improved at LSL and Linden Lab improved LSL and 3D modeling I would improve my clocks and clock scripts. I eventually went through about 5 different versions of the script. My original clocks took a minimum of 3 prims (face, hour hand, and minute hand), and had two scripts (one in the minute hand prim, one in the hour hand prim). SL eventually added the ability to control the rotation of a texture from a linked prim, so that got me down to one script, and mesh enabled me to create 3 cylinder faces linked together in a single, less than 1 prim object. I took 3 cylinder faces, put a separate material on each face, and linked them together with the faces stacked one on top of the other. In SL I simply stretch it on the x axis so I can access each face, put a clock face on one, the hour hand on another, and the minute hand on the 3rd. I also had removed some bugs and tightened up the script over time, but in the end some of the more complex scripts that controlled multiple clocks (for two faced or four faced post clocks) and had all the bells and whistles like the menus, chimes, ticking, etc. eventually grew into a 500 line script !

SL also made me a better modeler and forced me to get out there and learn Blender and Photoshop, so, while I’m “ok” at both, not exactly an expert, I can do quite a bit with both. I think that’s why I wanted to be involved here, because most of my coding, modeling and image processing skills are directly due to SL, so I feel like I owe @philip alot :smile:


#7

I think we do have a lot in common John! The first computer I got my hands on was our friend’s Timex Sinclair 2k ram machine. He ended up being the best man at our wedding. We were three military electronics techs messing about. I was a navigational aids radar tech, maintaining systems used by air traffic controllers. My hubby was an integral systems tech, working on instrument systems on fighter aircraft, and my friend was a flight simulator tech. They were exciting times! We liked to stay on top of the latest tech, so of course we got the Vic 20, played around with another friend’s trash 80 (TRS-80), and then the Commodore 64! We never stopped upgrading!

My career took me in other directions. I left the military and for a brief time worked in consumer electronics, which I did not enjoy. Air traffic controllers appreciated a good tech because they hated flying traffic in their heads. Joe Blow would drop off his TV, ask for a tech, and when I told him I was the tech, he would ask to talk to a man. Then he wanted it fixed in an hour because the football game was coming on that night, even though I had sets lined up before his. After all of that, he would argue with me over the bill. Back to school I went, and into a different line of work.

I am now retired, and SL started me off on modelling and got me back to scripting. Yes, I am thankful too. For some virtual worlds are a bad thing, messing up marriages and becoming obsessions. For me, it is a good thing. In retirement, it keeps me learning new things!

I will be picking your brain. :slight_smile:


#8

Awesome, great to read about your “story”. Yeah, I know what you mean. I’ve seen friends get into SL, wind up in a “relationship” with someone, and then get suicidal after the “break up”. I never went for that. For me building and scripting were my interests, and I prefer to keep relationships delegated to meatspace only. Building, scripting, exploring, and some socializing with friends (Both RL & SL) is where I’m at.

I can’t believe some men would offend a woman by asking to talk to a man. I might make the mistake of thinking you’re the not the tech, but once that was straight, I would automatically assume that you’re capable and competent enough to do the job, or else why would you be there. Heh, with me, I assume everyone is competent until they prove otherwise, some people reveal that right away, some take some time because they hide it well, and others, well others are just competent. I’ve met plenty of capable female techs, coders, engineers, etc. As a matter of fact, Void Singer on SL is a female, and she’s probably the most knowledgeable and capable LSL scripter out there. She has even gone to the lengths of running two different sets of code through many iterations and timing them to see which one is the most efficient…

for example…

x = x + 1;

does the same as:

x += 1;

she’s tested math, arrays, and everything else you can do more than one way and documented which ones were the most memory efficient and fastest executing. It’s not impossible for someone to excel at a job typically populated by the other gender, why people can’t get that through their head is stupid.


#9

This was a long time ago, back in the early 80s. I would hope that things have improved since then. I would be disappointed if they had not.