Nexuiz models rigging

Post anything to do with editing Nexuiz here. Whether its problems you've had, questions, or if you just want to show off your work.

Moderators: Nexuiz Moderators, Moderators

Postby torus » Sun Dec 30, 2007 10:14 pm

Hehe :roll:
Image
torus
Forum addon
 
Posts: 1341
Joined: Sun Dec 24, 2006 6:59 am
Location: USA

Postby [-z-] » Sun Dec 30, 2007 11:40 pm

great tutorial, I'm rigging my model right now.
[-z-]
Site Admin and Nexuiz Ninja
 
Posts: 1794
Joined: Mon Nov 13, 2006 12:20 am
Location: Florida

Postby ihsan » Mon Dec 31, 2007 8:50 am

[-z-] wrote:great tutorial, I'm rigging my model right now.

I can't make a tutorial until the script works so be patient.

I can't figure out if the SMD importer or the SMD exporter is turning the bones but one of them is. After trying in vain all weekend to make a perfect script I'm trying a different approach: making a template by hand.
Since the exported smd seemed to have it's bones rolled by 90degrees, i simply exported and re-imported 4 times from the original mesh.smd to come up with this:
Image

Lurk's shell is still obviously turned on it's side by some non-right angle, but i'll have to fix that by hand i guess. Give me a few more days with this.

P.S. is there a way you can free fly around your character to get a better look at it :?:
ihsan
Alien trapper
 
Posts: 305
Joined: Fri Mar 03, 2006 3:33 pm
Location: Trinidad (Where Obama met Chavez)

Postby Spaceman » Mon Dec 31, 2007 2:37 pm

ihsan wrote:P.S. is there a way you can free fly around your character to get a better look at it :?:


I've not found one yet. I run Nexuiz on a second PC and view the models on it.

I also use the following aliases in autoexec.cfg
Code: Select all
bind F7 "toggle chase_active"  //turn third person view on or off

bind [ "cb_out"  //cycle chase_back +
alias cb_out "cb_out_01"

alias cb_out_01 "echo 000 ; chase_back 000 ; alias cb_out cb_out_02 ; alias cb_in cb_in_14"
alias cb_out_02 "echo 010 ; chase_back 010 ; alias cb_out cb_out_03 ; alias cb_in cb_in_01"
alias cb_out_03 "echo 020 ; chase_back 020 ; alias cb_out cb_out_04 ; alias cb_in cb_in_02"
alias cb_out_04 "echo 030 ; chase_back 030 ; alias cb_out cb_out_05 ; alias cb_in cb_in_03"
alias cb_out_05 "echo 040 ; chase_back 040 ; alias cb_out cb_out_06 ; alias cb_in cb_in_04"
alias cb_out_06 "echo 050 ; chase_back 050 ; alias cb_out cb_out_07 ; alias cb_in cb_in_05"
alias cb_out_07 "echo 060 ; chase_back 060 ; alias cb_out cb_out_08 ; alias cb_in cb_in_06"
alias cb_out_08 "echo 070 ; chase_back 070 ; alias cb_out cb_out_09 ; alias cb_in cb_in_07"
alias cb_out_09 "echo 080 ; chase_back 080 ; alias cb_out cb_out_10 ; alias cb_in cb_in_08"
alias cb_out_10 "echo 090 ; chase_back 090 ; alias cb_out cb_out_11 ; alias cb_in cb_in_09"
alias cb_out_11 "echo 100 ; chase_back 100 ; alias cb_out cb_out_12 ; alias cb_in cb_in_10"
alias cb_out_12 "echo 110 ; chase_back 110 ; alias cb_out cb_out_13 ; alias cb_in cb_in_11"
alias cb_out_13 "echo 120 ; chase_back 120 ; alias cb_out cb_out_14 ; alias cb_in cb_in_12"
alias cb_out_14 "echo 128 ; chase_back 128 ; alias cb_out cb_out_14 ; alias cb_in cb_in_13"



bind ] "cb_in"  //cycle chase_back -
alias cb_in "cb_in_14"

alias cb_in_01 "echo 000 ; chase_back 000 ; alias cb_in cb_in_01 ; alias cb_out cb_out_02"
alias cb_in_02 "echo 010 ; chase_back 010 ; alias cb_in cb_in_01 ; alias cb_out cb_out_03"
alias cb_in_03 "echo 020 ; chase_back 020 ; alias cb_in cb_in_02 ; alias cb_out cb_out_04"
alias cb_in_04 "echo 030 ; chase_back 030 ; alias cb_in cb_in_03 ; alias cb_out cb_out_05"
alias cb_in_05 "echo 040 ; chase_back 040 ; alias cb_in cb_in_04 ; alias cb_out cb_out_06"
alias cb_in_06 "echo 050 ; chase_back 050 ; alias cb_in cb_in_05 ; alias cb_out cb_out_07"
alias cb_in_07 "echo 060 ; chase_back 060 ; alias cb_in cb_in_06 ; alias cb_out cb_out_08"
alias cb_in_08 "echo 070 ; chase_back 070 ; alias cb_in cb_in_07 ; alias cb_out cb_out_09"
alias cb_in_09 "echo 080 ; chase_back 080 ; alias cb_in cb_in_08 ; alias cb_out cb_out_10"
alias cb_in_10 "echo 090 ; chase_back 090 ; alias cb_in cb_in_09 ; alias cb_out cb_out_11"
alias cb_in_11 "echo 100 ; chase_back 100 ; alias cb_in cb_in_10 ; alias cb_out cb_out_12"
alias cb_in_12 "echo 110 ; chase_back 110 ; alias cb_in cb_in_11 ; alias cb_out cb_out_13"
alias cb_in_13 "echo 120 ; chase_back 120 ; alias cb_in cb_in_12 ; alias cb_out cb_out_14"
alias cb_in_14 "echo 128 ; chase_back 128 ; alias cb_in cb_in_13 ; alias cb_out cb_out_01"


bind # "echo chase_back reset 48 ; chase_back 48"



bind - "cu_out"  //cycle chase_up +
alias cu_out "cu_out_01"
alias cu_out_01 "echo chase_up -048 ; chase_up -048 ; alias cu_out cu_out_02 ; alias cu_in cu_in_16"
alias cu_out_02 "echo chase_up -040 ; chase_up -040 ; alias cu_out cu_out_03 ; alias cu_in cu_in_01"
alias cu_out_03 "echo chase_up -030 ; chase_up -030 ; alias cu_out cu_out_04 ; alias cu_in cu_in_02"
alias cu_out_04 "echo chase_up -020 ; chase_up -020 ; alias cu_out cu_out_05 ; alias cu_in cu_in_03"
alias cu_out_05 "echo chase_up -010 ; chase_up -010 ; alias cu_out cu_out_06 ; alias cu_in cu_in_04"
alias cu_out_06 "echo chase_up 000 ; chase_up 000 ; alias cu_out cu_out_07 ; alias cu_in cu_in_05"
alias cu_out_07 "echo chase_up 010 ; chase_up 010 ; alias cu_out cu_out_08 ; alias cu_in cu_in_06"
alias cu_out_08 "echo chase_up 020 ; chase_up 020 ; alias cu_out cu_out_09 ; alias cu_in cu_in_07"
alias cu_out_09 "echo chase_up 030 ; chase_up 030 ; alias cu_out cu_out_10 ; alias cu_in cu_in_08"
alias cu_out_10 "echo chase_up 040 ; chase_up 040 ; alias cu_out cu_out_11 ; alias cu_in cu_in_09"
alias cu_out_11 "echo chase_up 050 ; chase_up 050 ; alias cu_out cu_out_12 ; alias cu_in cu_in_10"
alias cu_out_12 "echo chase_up 060 ; chase_up 060 ; alias cu_out cu_out_13 ; alias cu_in cu_in_11"
alias cu_out_13 "echo chase_up 070 ; chase_up 070 ; alias cu_out cu_out_14 ; alias cu_in cu_in_12"
alias cu_out_14 "echo chase_up 080 ; chase_up 080 ; alias cu_out cu_out_15 ; alias cu_in cu_in_13"
alias cu_out_15 "echo chase_up 090 ; chase_up 090 ; alias cu_out cu_out_16 ; alias cu_in cu_in_14"
alias cu_out_16 "echo chase_up 096 ; chase_up 096 ; alias cu_out cu_out_16 ; alias cu_in cu_in_15"





bind = "cu_in"  //cycle chase_up -
alias cu_in "cu_in_16"
alias cu_in_01 "echo chase_up -048 ; chase_up -048 ; alias cu_in cu_in_01 ; alias cu_out cu_out_02"
alias cu_in_02 "echo chase_up -040 ; chase_up -040 ; alias cu_in cu_in_01 ; alias cu_out cu_out_03"
alias cu_in_03 "echo chase_up -030 ; chase_up -030 ; alias cu_in cu_in_02 ; alias cu_out cu_out_04"
alias cu_in_04 "echo chase_up -020 ; chase_up -020 ; alias cu_in cu_in_03 ; alias cu_out cu_out_05"
alias cu_in_05 "echo chase_up -010 ; chase_up -010 ; alias cu_in cu_in_04 ; alias cu_out cu_out_06"
alias cu_in_06 "echo chase_up 000 ; chase_up 000 ; alias cu_in cu_in_05 ; alias cu_out cu_out_07"
alias cu_in_07 "echo chase_up 010 ; chase_up 010 ; alias cu_in cu_in_06 ; alias cu_out cu_out_08"
alias cu_in_08 "echo chase_up 020 ; chase_up 020 ; alias cu_in cu_in_07 ; alias cu_out cu_out_09"
alias cu_in_09 "echo chase_up 030 ; chase_up 030 ; alias cu_in cu_in_08 ; alias cu_out cu_out_10"
alias cu_in_10 "echo chase_up 040 ; chase_up 040 ; alias cu_in cu_in_09 ; alias cu_out cu_out_11"
alias cu_in_11 "echo chase_up 050 ; chase_up 050 ; alias cu_in cu_in_10 ; alias cu_out cu_out_12"
alias cu_in_12 "echo chase_up 060 ; chase_up 060 ; alias cu_in cu_in_11 ; alias cu_out cu_out_13"
alias cu_in_13 "echo chase_up 070 ; chase_up 070 ; alias cu_in cu_in_12 ; alias cu_out cu_out_14"
alias cu_in_14 "echo chase_up 080 ; chase_up 080 ; alias cu_in cu_in_13 ; alias cu_out cu_out_15"
alias cu_in_15 "echo chase_up 090 ; chase_up 090 ; alias cu_in cu_in_14 ; alias cu_out cu_out_16"
alias cu_in_16 "echo chase_up 096 ; chase_up 096 ; alias cu_in cu_in_15 ; alias cu_out cu_out_01"


bind ' "echo chase_up reset 24 ; chase_up 24"  //reset chase up to 24


F7 turns the chase camera on or off
[ and ] move the camera in and out
- and = move the camera up and down
# and ' resets the camera back to its default position

You may need to adjust the keybindings.

It would be very nice to have some kind of yaw control :)
Last edited by Spaceman on Thu Jan 03, 2008 3:42 am, edited 1 time in total.
Spaceman
Alien trapper
 
Posts: 264
Joined: Tue Aug 28, 2007 10:53 am

Postby ihsan » Mon Dec 31, 2007 7:14 pm

For the DETERMINED among you I have the blender files i used to make an imperfect LURK spiky. I warn you, this is dirty work especially if you plan to start with another character.

Read "Read Me Please.txt" for instructions.
http://xoopstuner.com/nex/LURK.zip

Spiky LURK:
Image

Between the importer and exporter, the bones roll. Until I can fix the import to match the export I'll be rolling the bones by hand.

Here is the imported armature in pose mode with the manipulator set to Normal (instead of global) axes. This way i can "see" how much the bone is the roll es about the y (green). The x (red axis is about 20 degrees from aligning with the global y axis so this is probably wrong.

Image

Look at a bone bone i fixed by trial and error: see how the normalised z (blue) matches the global y axis. This is the the correct orientation. I noticed all the bones "snap" to an axis like this when rolled correctly.

Image

You have to switch over to edit mode to actually set the roll of the bone. Unfortunately the axes are always global in this view.

Image

Make sure to set the weights to 1 for all your vertices. I don't think that zym shares weighting, but i could be wrong. I used 100% opacity, took off "all faces", and took off the "soft" brush feature.

Image

When I get time i'll make a properly tested armature for you all to rig your meshes to. Until then this at least proves that there is an export path from blender to Nexuiz for humanoid models.
ihsan
Alien trapper
 
Posts: 305
Joined: Fri Mar 03, 2006 3:33 pm
Location: Trinidad (Where Obama met Chavez)

Previous

Return to Nexuiz - Editing

Who is online

Users browsing this forum: No registered users and 1 guest

cron