-
Posts
1816 -
Joined
-
OK, I just noticed you posted a second function. Here's my version of your two functions:
Public Function HexToDec(Hex As String) As Double
HexToDec = Val("&H" & Hex)
End Function
Public Function DecToHex(Dec As Double) As String
DecToHex = Hex(Dec)
End Function
Talk about making something complicated out of something simple... -
My code is a lot more compact. Stripping the declarations and such, this takes the long string in EntRagdoll.Text and puts it in each of the scrollbars:
For Init = 0 To 10
ScrollPitch(Init) = Val("&H" & Mid(EntRagdoll.Text, (Init * 24) + 1, 8))
ScrollYaw(Init) = Val("&H" & Mid(EntRagdoll.Text, (Init * 24) + 9, 8))
ScrollRoll(Init) = Val("&H" & Mid(EntRagdoll.Text, (Init * 24) + 17, 8))
Next Init
Would most likely work as an Excel VBA macro by replacing the references to controls with references to cells.
The Val() function takes an string and returns a value. Putting &H before a number makes VB realize it's a hex and not a dec. So Val("&H" & HexNumber) is the same as the big function you put there. -
Heh, Fallen Leo is there holding a City Scoop
-
[ QUOTE ]
And this weekend I'll be plowing a lot more time into it. With luck I'll have it done by Sunday, if not, by next weekend for sure.
But no, I'm not going to try and learn Leandro's Poser program by then for this one - THAT's for a later video that far more deserves that kind of attention to detail.
[/ QUOTE ]
By next weekend Poser will be much more suited for doing this kind of stuff anyway. The last time I attempted to do some 3D programming was when I was 16, in DOS. In a week I'll have all of this figured out (I hope). -
So much for this being a simple program. I couldn't resist learning how to do 3D views. I guess I enjoy making my life complicated.
Poser v0.50 WIP screenshot
It's not Pixar, but it should be enough for our purposes. -
Hey Apollon, both Splasher and Poser are coded in VB6 so WINE should run them without problems. I'm no fan of .NET.
I've spent the last 3 hours reading up on OpenGL, so this "simple little program" may get a lot more complicated soon. -
Don't look now, but GT bundled all five finalists together, which meant a flood of new comments, with supportive and productive gems like this:
"Wow, all the crappy videos are bundled together for more convenience!"
"You're joking, right? The donut one was in the finalists? They must have had only 5 entries in TOTAL. That was terrible by any standards"
"Were was this game playable? It looks like *** tough. Btw the donut one is a bit overdramatic. It sucks. Anybody besides her."
"that game was terribly i want to sent a complant of this game" -
[ QUOTE ]
Oh! You're using Dr. Leo as your sample! But that's how *I* was going to torture him!
[/ QUOTE ]
Well, he got all pissed off when I made Fusionette the star of the video and he only got a cameo, so I promised him he'd be featured prominently in whatever I did next.
Sucks for him it happened to be this. -
Okay, I had to fix the display panels so they actually matched the generated viewpoint, plus I ate, so this got delayed a bit.
Sample screenshot
Download here.
I'm pretty sure that the order of the rotations is still wrong, that's why this is v0.45 and not v0.50. I'll make the wireframe display slightly more detailed for the next version, that'll help me catch bugs.
Thanks Balshor for trying to help me figure out the problem, by the way... I didn't think it was going to be something THIS simple! -
Oh. My. Freaking. Atheism.
I solved the problem. Everything works now. After two days burning my brain over this, the solution was one line:
JointZ(JDest) = JointZ(JSrc)
The destination joint was not inheriting the parent's Z coordinate. That was the entire problem.
I HAD LEFT OUT ONE LINE. -
[ QUOTE ]
Furthermore, I see the upper left leg with a dist of about 13mm, same as when it was striaght. But the lower left leg is now almost 20mm in legnth where as it started at 15mm as well. Your rotate added 33% to the legnth of the inherited limb. Thats not good and could certainly be part of the problem.
[/ QUOTE ]
Something to take into account: for a pitch, the Z coordinate *is* being calculated properly, it's the Y coordinate that doesn't work. The stretching you see when you set the leg to 767 is because the feet is going to the right Z coordinate (all the way left) but the Y coordinate is slightly down.
You can confirm that the Z coordinate works on Pitch by setting the waist pitch to 767 -- The front and right side will be a bunch of garbage lines, but the top view will show all the Z and X coordinates correctly.
Similarly, setting just the Yaw screws the X coordinates, but the "right side" display shows all the Y and Z coordinates are being calculated properly.
I've tried a bunch of small changes but they end up screwing the whole thing way worse. -
Go to the 'Textures' tab, it will have a dropdown box to let you pick categories of stuff.
So if your base has an arcane tileset, pick Supergroup Base Style: Arcane and apply a white image to all the textures in that category (there's a checkbox for that).
If you find that the background feels "rugged", pick also Supergroup Base Style: Arcane (Bump Maps) and apply a pure grey (rgb=127,127,127) image to that, also checking the box to apply to everything. That will give you a nice and white wall to take screenies at (may need to increase the lighting of the base, or just pick a better wall if you find one's too dark).
Once you're done taking screenies, click the "Restore default texture" button in Splasher with the Arcane base category selected and the checkbox marked, and it will revert all the textures to their originals (you may need to log off and back on to see them again). -
Use Splasher to set the textures of your SG base to pure white, then just take a screenshot standing in your base. That's what I do when I want a screenie with a white background, much easier than demoediting (unless I want a specific mov that's not available.)
The color of the sky is defined inside the misc.pigg file, and it can't be changed without hacking into that file (a big no no). The "data" overrides folder won't help with this specific thing. -
[ QUOTE ]
Do you think there's an animation pose for what the Thug Bruiser does with the Motorcycle that could be ripped out and applied to any chqracter for moving making? It might require a lot of point manipulation to make it look like they're using a motorcycle, but without an animation for first sitting on the motorcycle there wouldn't be much point.
[/ QUOTE ]
Maybe, soon, we won't need to limit ourselves to the MOVs that are available. -
DR, I believe the map is from the villain patron arc; I know that both Scirocco and Ghost Widow send you to that map, and some portals are actually missing from there. You could place an NPC portal (from my other thread) and then create the explosion by mixing a peacebringer nova and the turret explosion FX to "hide" the portal while you dissapear it.
-
Hi Balshor:
Pitch is the elevation, making the character look "up" or "down".
Yaw is the heading, makes the character look "left" or "right".
Roll rotates the character without changing the way it's facing; if you downloaded the alpha I linked above, roll works just fine.
Yes, joints are attached to each other in a tree. Joints 0-10 as defined above are the ones in the ragdoll, joints 11-16 in my program are auxiliary endpoints (hands, feet, top of head). Each joint inherits the rotation from all the parents; the main joint that defines all other is the waist (joint 10).
I assume the order is RPY, but that's what makes the most sense from what I've read.
I'm not sure about the last one either, to be honest. The demo program I linked above CAN create demos with the rotations you define, so you could set rotations in the program (even if they look bad in the wireframe previews) then run the demo and see if the results are what you expect or not.
The second and third entries of the EntRagdoll command are for timing. Not sure how the game uses them, but while experimenting with the numbers I found that using numbers that deviate too much from the demo timing "resets" the ragdoll to the screwy state it spawns in. -
OK, posting this code here hoping for the chance that someone who is good at 3D rotations is reading this. I can do 2D rotations easy, but I've been banging my head against this code for hours and this is the best I've come up with.
(a bunch of source code removed from here to keep the page clean)
So what's the problem you say? Well, the rolls work. All of them. The joints inherit the parents' angles, and it all works beautifully.
However, the pitch and the yaw just won't behave. They kinda work: the FIRST joints of the tree (those that are derived directly from neck or torso) rotate just fine. But the rotation isn't being inherited to the "child" joints (elbows, knees, hands and feet), or at least not right. If you pitch the whole body 90 degrees (by setting waist pitch to 255), it will look correct from the "top" view, but the other two will be garbage.
I might find a solution, but right now I'm only finding headaches. If someone can figure this out, I can start working in the keyframing/animation thing instead, that is something I'm familiar with and won't give me any headaches.
Here's a compiled version of this bugged version, if you want to play around with it and see how badly broken the Pitch and Yaw rotations are: COH Poser v0.40. Just unzip to any folder and run.
Edit: added some comments to the source that I had deleted in one of the bajillion tries to write code that works.
Edit, the next day: removed the bunch of source code because it made the page all ugly, and the solution had nothing to do with trigonometry after all. -
[ QUOTE ]
After moderating messageboards for eight plus years I can tell you how to deal with this folks.
2. if they REALLY tick you off (like Tom), you have ONE SHOT at them. So make it good. Reply once and only once no matter HOW they come back.
[/ QUOTE ]
In your professional opinion, how is this?
TomStrong> This is a silly little piffle. Won't win any prize. I showed it to my friends and they all thought it was idiotic. I wouldn't go that far, but why is this in the top 5? Someone please explain.
Fusionette> Thank you for showing it to your friends, even if none of them liked it. The exposure is appreciated. -
[ QUOTE ]
I have seen more negativity, crass behaviour, unprofessionalism, and downright immaturity than I have on any other similar site.
[/ QUOTE ]
Michelle, don't let it get to you. The atmosphere in the COH forums where mostly everybody is helpful is the exception, not the rule. I think those two comics sum it up:
http://www.ctrlaltdel-online.com/comics/20080227.jpg
http://imgs.xkcd.com/comics/youtube.png
Remember that COH is 95% a cooperative game. Because of that, we're used to working together towards a goal, not against each other.
Most online games are purely competitive; and GameTrailers is targetted to gamers in general. People with a competitive mindset tend to be jerks towards their perceived "enemy".
Ask anyone who PVPs in this game how many times, after beating an opponent, they heard back: "you suck because you used inspirations", "you suck because you have power build up", "you suck because you had vengeance", "you suck because you AS'd me", "you suck because you stunned me", and so on and so forth, always with the idea "I AM better than you, you just got lucky to have X thing".
In this contest, we experienced a similar treatment: comment PVP. They can't "beat" us (most of them didn't make a video), so they just trash-talked. I did the one thing I thought was sensible: stopped reading the comments, just as if I had stepped out of a PVP zone in order to avoid the trash talk on Broadcast. -
[ QUOTE ]
Something's fishy - I went to the site and voted, and a check appeard next to the vid I voted for. Now when I go back, the check is next to a different video.
[/ QUOTE ]
Someone else had something similar happen (went to vote and it registered as they already having voted). My theory: GameTrailers may be using the IP address of the person voting to enforce a one-person, one-vote rule. So if someone else in your IP already voted, you see their vote. -
So. You know how I said, "all the Pitch translations seem to be working; I made some progress with Yaw and Roll but they're giving me hideous headaches"?
Looking for an answer, I ran into this nice little page on the web that said, "It is important to perform the roll first, then the pitch, and finally the yaw. If the order of these operations is changed, a different rotation matrix would result."
So... yeah. That's why the other two weren't working, I was starting with the wrong rotation.
Now that I know that, though, all the Rolls are working fine: COH Poser v0.30 (I wish I was that flexible, btw.)
Here's hoping that Pitch and Yaw decide to behave this time... -
[ QUOTE ]
Why arent you working for NCsoft?
[/ QUOTE ]
They probably want to hire professionals, rather than people who just hack stuff together because they feel like it.
My plan for this thing is to get the stick figure model to look right with all the joint PYRs, and once that is done, add an animation timeline to it; then you can define keyframes and export a demo of your animation.
Getting all the joint rotations in my stick figure is by far the hardest part. I really, really, really hate dealing with the exact kind of code this thing requires. -
After looking at the gametrailer contest entries, it's clear that we all have different ways to tell a story. So, this is mine:
1) Define character(s).
2) Place character(s) in setting.
3) Introduce conflict.
4) Attempt to resolve conflict
5a) Fail, go to 4.
5b) Succeed, but introduce new conflict, go to 4.
5c) Conflict solved, go to 6.
6) Epilogue.
I think it's a pretty standard way to tell a story, and you can recognize this structure in most stories. Applying it to an expanded version of Donuts:
1) Character: Fusionette.
2) Setting: donut shop.
3) Conflict: no more donuts.
4) Attempt to buy donuts elsewhere.
5a) Fail, only shop in Paragon City.
4) Attempt to bake own donuts.
5a) Fail, sets kitchen on fire.
4) Rob a bank to buy a donut shop.
5b) Succeed, but now she's a villain.
4) No attempt to solve the conflict, but...
5c) It was all a daydream.
6) Banter with Penelope on the way to get donuts.
As you can see this structure makes it very easy to expand any story by just adding more 5a/b loops. It's also easy to introduce secondary plots: I already introduced another character (Penelope) who could have her own loop with her own setting (her house) and her own conflict (Fusionette won't leave) and her own attempts to solve the conflict (do boring stuff, invite someone she can't stand over, pretend she got kidnapped, etc).
So, how do you tell a story? -
Dang! I was so busy doing the COH Poser that I forgot finalists were announced today! Yay!
One thing I don't like is that the page appears to allow votes from people with no gametrailers account, just by visiting it. That would make it very easy to cheat by spoofing votes... -
Progress report: COH Poser v0.20
I think my stick figure limbs are too long. But, all the Pitch translations seem to be working; I made some progress with Yaw and Roll but they're giving me hideous headaches. I'm heading out, so that's probably all the progress you'll see today.