Mappers' Corner Mappers and Modders

Go Back   Omnip)o(tentS Forums > SERVERS > Mappers' Corner
Reply
 
Thread Tools Display Modes
Old 11-21-2007, 01:08 AM   #1
Optimus_P-Fat
Insider

 
Optimus_P-Fat's Avatar
 
Join Date: Jan 2006
Location: New Jersey
Posts: 3,633
UT3 Quick glace into UScript for UE3
Reply With Quote


Okay, so I did a real quick "export classes" and lookthrough tonight of the current set of scripts, here's the details I have found out so far (I'll post more as I get more time to go through this):

- UScript syntax is pretty much unchanged with the exception of the addition of some keywords that look to be related to replication (I haven't researched what they do yet)

- Class directory hierarchy is changed a bit, but it seems Epic has adhered to some very strict naming conventions and it shouldn't be too hard to find what you are looking for if you need to reference a specific class implementation

- It seems that there is a bug in that the default properties for config vars are not being saved to a compiled object when being compiled, and this is being corrected in the patch (this was on one of the threads on Epic's forums - here)

- UCC.exe seems to have been merged with UT3.exe - it seems to build scripts you call "ut3.exe make ..." instead of a seperate executable for ucc commands

I didn't have much time to go through all this, or through all the object classes to see what does what, but I'll go through it some more after the holiday and start posting here again. I know that the current version of WOTGreal doesn't seem to be compatible with UT3's setup, and I didn't spend much time trying to get it to like it. I did see some rumors that said that supposedly it was being worked on by the developer of WOTGreal, but I didn't spend the time searching for any confirmation on it.

Anyways, that's all I've dug up so far. Don't feel like looking into this much more at the current point in time. Hopefully I'll get a bit more understanding of this stuff over the weekend. If anyone else digs up any tidbits of info, feel free to post them here.
__________________

http://www.p-fat.net/
Optimus_P-Fat is offline  
Old 12-10-2007, 02:53 PM   #2
Optimus_P-Fat
Insider

 
Optimus_P-Fat's Avatar
 
Join Date: Jan 2006
Location: New Jersey
Posts: 3,633
Default
Reply With Quote


Update:

Found this online - really helps me with those new replication keywords!
Good additions. I like the callback interface on timers, and the "tell me when THIS variable has been updated via replication" call. VERY helpful.

Quote:
- Specifying a default value for optional variables passed to functions, like function SomeThing(optional bool bIsSomething=true).

- Weapon firing path is no longer native so you can intervene at any point using only script. Firemode classes are also gone, and replaced with Firemode states instead.

- SetTimer() can be used with multiple timers now. For example, you can call SetTimer(3.0, false, 'TriggerFunction') and instead of just calling Timer() when that 3 seconds is up, it will call TriggerFunction() instead. You can have as many timers running at once as you want, as long as they use different functions. One of my favorite new features.

- Variable replication now has something called "event ReplicatedEvent(name VarName)." So you can specify a variable as 'repnotify' and when its value has changed and is replicated to a client, it will trigger a ReplicatedEvent() call and pass the name of that variable into it. So you can do a var repnotify bool bTriggerMe;, and when you change bTriggerMe to true, it will call ReplicatedEvent('bTriggerMe') and you can then do any operations that depend on the bTriggerMe boolean. This is much nicer than parsing this stuff in Tick(), like in previous Unreals.

- Function replication is now taken out of the replication{} block. You can just define a function as "client" or "server" and "reliable" or "unreliable." For example, 'reliable client function CalledFromServerExecsOnClient().'

- No more PostNetBeginPlay(), PostBeginPlay() is now called on clients after all bNetInitial variables have been replicated. Simplifies actor initialization.
Woot


EDIT: F it. I'll start goofing around with the mod compiler till the patch comes out ...
__________________

http://www.p-fat.net/

Last edited by Optimus_P-Fat; 12-10-2007 at 06:17 PM..
Optimus_P-Fat is offline  
Old 12-10-2007, 09:06 PM   #3
Optimus_P-Fat
Insider

 
Optimus_P-Fat's Avatar
 
Join Date: Jan 2006
Location: New Jersey
Posts: 3,633
Default
Reply With Quote


Out of the official patch, I love this one:

Quote:
- Added Get/SetSpecialValue() stubs to Object to allow mods to expose values that can be modified without creating a dependancy.
Because I had to hack around EXACTLY THIS ISSUE when writing the OmniAwards and OmniFreonAwards mods
__________________

http://www.p-fat.net/
Optimus_P-Fat is offline  
Old 12-12-2007, 05:39 PM   #4
Madame Arsenic
My non de plume...

 
Madame Arsenic's Avatar
 
Join Date: Dec 2004
Location: Seattle
Posts: 6,398
Default
Reply With Quote


Interesting... thanks for looking into this, man.
__________________
It's insane this guy's taint!
Send a message via ICQ to Madame Arsenic Send a message via AIM to Madame Arsenic Send a message via MSN to Madame Arsenic Send a message via Yahoo to Madame Arsenic Madame Arsenic is offline  
Old 12-12-2007, 09:40 PM   #5
Kyllian
bFireStyle == SS_Random
 
Kyllian's Avatar
 
Join Date: Dec 2004
Location: In my secret lab. Overclocking nuclear hamster mines.
Posts: 1,961
Default
Reply With Quote


As far as I can tell, damn near everything regarding weapons is in the same script now.
The weapon, it's firemodes, ammo, etc
__________________


BeBop: The devil, I mean Kel made me do it all.
Pandemonium: YOU ... ARE ... GOD
Benders of Cargo and Sniper, Oh fack!
Send a message via AIM to Kyllian Send a message via MSN to Kyllian Kyllian is offline  
Old 12-12-2007, 10:06 PM   #6
Solace
Getting there...

 
Solace's Avatar
 
Join Date: Feb 2005
Posts: 777
Default
Reply With Quote


They seem to have killed the idea of bones, which I'm all for; never really seemed necessary in the first place.
__________________

(\/)
(^.^)
(> <)
U U
Solace is offline  
Old 12-12-2007, 10:55 PM   #7
Optimus_P-Fat
Insider

 
Optimus_P-Fat's Avatar
 
Join Date: Jan 2006
Location: New Jersey
Posts: 3,633
Default
Reply With Quote


There are still skeletal meshes. You can pull up the animation browser in UEd and turn on bones and bone names, etc. They may have removed support for manipulating them in Script (who knows why - that was somewhat useful), but they definitely still exist on the player models.
__________________

http://www.p-fat.net/
Optimus_P-Fat is offline  
Old 12-12-2007, 11:02 PM   #8
Kyllian
bFireStyle == SS_Random
 
Kyllian's Avatar
 
Join Date: Dec 2004
Location: In my secret lab. Overclocking nuclear hamster mines.
Posts: 1,961
Default
Reply With Quote


Quote:
Originally Posted by Optimus_P-Fat View Post
(who knows why - that was somewhat useful)
Especially for custom vehicles
__________________


BeBop: The devil, I mean Kel made me do it all.
Pandemonium: YOU ... ARE ... GOD
Benders of Cargo and Sniper, Oh fack!
Send a message via AIM to Kyllian Send a message via MSN to Kyllian Kyllian is offline  
Old 12-12-2007, 11:17 PM   #9
Optimus_P-Fat
Insider

 
Optimus_P-Fat's Avatar
 
Join Date: Jan 2006
Location: New Jersey
Posts: 3,633
Default
Reply With Quote


Quickly browsing through the source, it seems you can still manipulate bones.
Check out the base class SkelControlBase and its derivative classes (specifcally for one bone, the class SkelControlSingleBone). The pawns all have a member variable of type SkeletalMeshComponent, called Mesh. You can get bone locations and whatnot from that. It seems you spawn the SkelControl object with the mesh as the owner, and the "SkelComponent" member either is set to it automatically or you set it (didn't look for an example), and then you can just use the controller object to manipulate bones on the mesh. You gotta do some "find in files" magic across the whole source tree to find this stuff
__________________

http://www.p-fat.net/
Optimus_P-Fat is offline  
Old 12-13-2007, 02:21 AM   #10
Solace
Getting there...

 
Solace's Avatar
 
Join Date: Feb 2005
Posts: 777
Default
Reply With Quote


Oh... guess I was wrong, with all that extra code for setting weapons onto vehicles I thought one of those had to do with position... weird. Still think bones are useless if you can just shuffle them around anyway, though.
__________________

(\/)
(^.^)
(> <)
U U
Solace is offline  
Old 12-13-2007, 10:51 AM   #11
Optimus_P-Fat
Insider

 
Optimus_P-Fat's Avatar
 
Join Date: Jan 2006
Location: New Jersey
Posts: 3,633
Default
Reply With Quote


Quote:
Originally Posted by Solace View Post
Oh... guess I was wrong, with all that extra code for setting weapons onto vehicles I thought one of those had to do with position... weird. Still think bones are useless if you can just shuffle them around anyway, though.
You don't work with making meshes that have animations much, do you?

They are FAR from useless. Skeletal meshes are why you have fluid animations, that not only take up less space disk/memory wise, but are much easier to make for modelers. If you have a very complex mesh with many vertices, you have two choices: you can create your animations frame by frame, moving every single vertex on your own, (and taking up TONS of space by recording the position of EVERY vertex for every frame of the animation) or you can use a skeletal mesh, give bone influences to the vertices, and only move a single bone to move a group of vertices, not only cutting your time spent down drastically from moving every vertex, but also cutting down on memory/disk space by only having to record the change in position of the bones that control those vertices. This also allows you to make a single animation file (PSA) that contains the bone names and their movements. As long as you create your meshes with the same bone names (and same general placement) you can use the same PSA file for animating multiple meshes (PSK files). Check the skeletons in UEd for the models in 2k4 sometime. You'll see the same skeleton used on multiple meshes of the same "groupings".

Bones are a VERY good concept, which is why I didn't think they'd get rid of them in the first place, they just simply changed how you access them. Many CGI animated movies like Shrek and whatnot use some sort of rigging mechanism for their animations.

You have to keep in mind, the primary purpose of bones in a mesh isn't simply attaching weapons on vehicles. Yes, they use bones as attachment points for meshes like weapons to players, but that's certainly not the only reason they have them. If you've ever played the "Clone Bandits" mod you'll notice a vehicle that is a motorbike. If I remember correctly, there is no default character pose for riding on a bike, so the mod authors use the bones of the player mesh to position the character correctly on the bike. How would you do this otherwise? For that matter, your ragdoll physics for dead bodies, falling off hoverboards, etc, would have TONS of issues if the model didn't have a skeleton that was used for those calculations.
__________________

http://www.p-fat.net/
Optimus_P-Fat is offline  
Reply


Go Back   Omnip)o(tentS Forums > SERVERS > Mappers' Corner

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
UScript Tutorials 201: Advanced Variables (modifiers and arrays) Optimus_P-Fat Mappers' Corner 1 10-04-2007 02:25 PM
UScript tutorials 103: Functions Optimus_P-Fat Mappers' Corner 3 09-30-2007 11:47 PM
UScript tutorials 102: Objects (Classes) Optimus_P-Fat Mappers' Corner 1 09-30-2007 03:01 AM
UScript Tutorials 101: Variables Optimus_P-Fat Mappers' Corner 3 09-29-2007 02:44 AM
UScript question Optimus_P-Fat Mappers' Corner 10 03-10-2007 07:23 AM


All times are GMT -5. The time now is 01:36 PM.