free animated ninja model

Community Forums/Showcase/free animated ninja model

Psionic(Posted 2003) [#1]
I modelled this dude about a year ago :D I found 'im out a few weeks ago and rigged him and I started doing the animations this week, theres about 10 so far! walk, stealth walk, attacks, blocks, kick, jump etc and I plan to do about 10-15 more anims (about 300-400 frames).....should be finished some time in the next day or two and put up for milkshape, cfx and blitz basic formats (also with 5 skin variations) :D

heres a few grabs of him so far......

Zo Zo Zee Zar(Posted 2003) [#2]
Hey that looks cool Psi!

Am I allowed to point out the fact he has a "large bone" poking out his troosers LOL.

I apologise for my child like behaviour.

Great work tho!

Psionic(Posted 2003) [#3]
Heh heh its just a Tool...oh no thats even worse :) it helps when animating

Qcat(Posted 2003) [#4]

Cool Model Psionic :D

Mustang(Posted 2003) [#5]
Nicely packed texturemap - no wasted space and minimal amount of surfaces! Cool!

Psionic(Posted 2003) [#6]
Ninja dudes' up for download totally FREE....418kbs

zip file contains, milkshape 3d, character FX, Blitz 3D formats and 5 skin variations, theres 20 animation ranges totalling 300 frames...Phew!!

Heres the ranges (included in the zip)

1-14 Walk (normal)
15-30 Stealth Walk
32-44 Punch and swipe sword
45-59 Swipe and spin sword
60-68 Overhead twohanded downswipe
69-72 Up to block position (play backwards to lower sword if you want)
73-83 Forward kick
84-93 Pick up from floor (or down to crouch at frame 87)
94-102 Jump
103-111 Jump without height (for programmer controlled jumps)
112-125 High jump to Sword Kill (Finish em off move??)
126-133 Side Kick
134-145 Spinning Sword attack (might wanna speed this up in game)
146-158 Backflip
159-165 Climb wall
166-173 Death 1 - Fall back onto ground
174-182 Death 2 - Fall forward onto ground
184-205 Idle 1 - Breathe heavily
206-250 Idle 2
251-300 Idle 3

Murphy(Posted 2003) [#7]
absolutly great! that's axactly what i searched :)
all animation are great (but i wish you have made a crouh/crouchwalk animation) - but hey, anyway - thx from here

Psionic(Posted 2003) [#8]
...the stealth walk is quite crouched, and the pickup anim can be used as crouch as well :)

Algo(Posted 2003) [#9]
Very Cool. Nice work Psionic.

Might it be more useful for people if the sword wasn't part of the mesh? So you could swap it for all sorts of ninja gear.

Psionic(Posted 2003) [#10]
it isnt :) its called "blade" so you could findchild it, hide it and replace with your own.....I think :))))

Physt(Posted 2003) [#11]

Where in the world do you find the time to do such wonderful work!? Nice job!

Synchronist(Posted 2003) [#12]
Domo arigato Psionic-san!

Psionic(Posted 2003) [#13]
I dont know any japanese but I understood that ;) (musta watched too many ninja films as a kid :))

Physt: I find time cus its all I do, I work freelance doing this stuff and I dont sleep much heh heh, I like to give to the community every now and then! Especially the Blitz community!!!

ashmantle(Posted 2003) [#14]
Very nice model & animations, Psionic!

may I sacrifice a goat in your name? ;)

Psionic(Posted 2003) [#15]
You may ;) bring me the skull!!

Blue Steel(Posted 2003) [#16]
Psionic: Awesome model dude! I don't really have a use for this one, but I put hellpig to good use in a game I made for my daughter. Definitely one of the most generous Blitzers

Ricky Smith(Posted 2003) [#17]
to better view Psionics Model with transpositions......

;	B3D Animation Example using ExtractAnimSeq ------------------- Rik Smiff April 2003
;   Use Keys Q through to  X  to transpose  animation sequences.
;	Use the Cursor Keys to Pitch and Yaw the Ninjas Head 
;   - this will blend with the currently running animation
;   You will need the B3D Animated Ninja Model "Ninja.b3d"
;   Kindly  donated by Psionic available on the Blitz forum.
;   or
;   Many Thanks to Psionic for his Model - there arent too many animated B3d's out there to play with

; Extract from Ninja.txt by Psionic - Animation Frames
; 1-14	    Walk (normal) 
; 15-30	    Stealth Walk
; 32-44	    Punch And swipe sword
; 45-59	    Swipe And spin sword
; 60-68	    Overhead twohanded downswipe
; 69-72  	Up To block position (play backwards To Lower sword If you want)
; 73-83 	Forward kick
; 84-93	    Pick up from Floor (Or down To crouch at frame 87)
; 94-102	Jump
; 103-111	Jump without height (For programmer controlled jumps)
; 112-125	High jump To Sword Kill (Finish em off move??)
; 126-133	Side Kick
; 134-145	Spinning Sword attack (might wanna speed this up in game)
; 146-158	Backflip
; 159-165	Climb wall
; 166-173	Death 1 - Fall back onto ground
; 174-182	Death 2 - Fall forward onto ground
; 184-205	Idle 1 - Breathe heavily
; 206-250	Idle 2
; 251-300	Idle 3

Graphics3D 800,600
SetBuffer BackBuffer()
MoveEntity camera,0,3,0
CameraViewport camera,0,0,GraphicsWidth(),GraphicsHeight()
AmbientLight 255,255,255

;********** Load Model  and Prepare Animation Sequences

Global ninja=LoadAnimMesh("ninja.b3d"); This will load All Frames into Sequence 0
Global walk=ExtractAnimSeq (ninja,0,14); Extract frames 0 to 14 into Sequence 1 - the value 1 is assigned to the Global walk
Global stealth=ExtractAnimSeq (ninja,15,30); Extract frames 15 to 30 into Sequence 2 - the value 2 is assigned to the Global stealth
Global punch_swipe=ExtractAnimSeq (ninja,32,44); And so on extracting each set of frames into a seperate sequence 
Global swipe_spin=ExtractAnimSeq (ninja,45,59); and assigning the sequence number to a global variable.
Global overhead=ExtractAnimSeq (ninja,60,68)
Global block=ExtractAnimSeq (ninja,69,72)
Global fwd_kick=ExtractAnimSeq (ninja,73,83)
Global pickup=ExtractAnimSeq (ninja,84,93)
Global jump=ExtractAnimSeq (ninja,94,102)
Global jump_static=ExtractAnimSeq (ninja,103,111)
Global jump_kill_sword=ExtractAnimSeq (ninja,112,125)
Global sidekick=ExtractAnimSeq (ninja,126,133)
Global spin_sword_attack=ExtractAnimSeq (ninja,134,145)
Global backflip=ExtractAnimSeq (ninja,146,158)
Global climb_wall=ExtractAnimSeq (ninja,159,165)
Global death_fall_back=ExtractAnimSeq (ninja,166,173)
Global death_fall_fwd=ExtractAnimSeq (ninja,174,182)
Global idle_breathe_heavy=ExtractAnimSeq (ninja,184,205)
Global idle_2=ExtractAnimSeq (ninja,206,250)
Global idle_3=ExtractAnimSeq (ninja,251,300)
Global crouch=ExtractAnimSeq (ninja,84,87)
;locate the head bone in the model and assign it to the Global 'head'
Global head=FindChild(ninja,"Joint7")
;Head rotation Variables
Global headyaw,headpitch
Global state
Const transpose = 40
;Position the model 
MoveEntity ninja,0,0,7
ScaleEntity ninja,0.5,0.5,0.5
RotateEntity ninja,0,180,0
;************** Main Loop ***********************************
While Not KeyHit(1)

; Get Cursor Key Input for Manual Head Rotation
If KeyDown(203) Then headyaw=headyaw+1:If headyaw > 90 Then headyaw = 90
If KeyDown(205) Then headyaw=headyaw-1: If headyaw < -90 Then headyaw = -90
If KeyDown(200) Then headpitch=headpitch+1: If headpitch > 30 Then headpitch= 30
If KeyDown(208) Then headpitch=headpitch-1 : If headpitch < -45 Then headpitch= -45

; Get Key Input for Animation sequence change
If KeyDown(16) And latch_key_Q = False Then  Animate ninja,1,0.1,walk,transpose:latch_key_Q = True:state=0
If Not KeyDown(16) Then latch_key_Q = False
If KeyDown(17) And latch_key_W = False Then  Animate ninja,1,0.1,stealth,transpose:latch_key_W = True:state=1
If Not KeyDown(17) Then latch_key_W = False
If KeyDown(18) And latch_key_E = False Then  Animate ninja,3,0.1,punch_swipe,transpose:latch_key_E = True
If Not KeyDown(18) Then latch_key_E = False
If KeyDown(19) And latch_key_R = False Then  Animate ninja,3,0.1,swipe_spin,transpose:latch_key_R = True
If Not KeyDown(19) Then latch_key_R = False
If KeyDown(20) And latch_key_T = False Then  Animate ninja,3,0.1,overhead,transpose:latch_key_T = True
If Not KeyDown(20) Then latch_key_T = False
If KeyDown(21) And latch_key_Y = False Then  Animate ninja,3,0.1,block,transpose:latch_key_Y = True
If Not KeyDown(21) Then latch_key_Y = False
If KeyDown(22) And latch_key_U = False Then  Animate ninja,3,0.1,fwd_kick,transpose:latch_key_U = True
If Not KeyDown(22) Then latch_key_U = False
If KeyDown(23) And latch_key_I = False Then  Animate ninja,3,0.1,pickup,transpose:latch_key_I = True
If Not KeyDown(23) Then latch_key_I = False
If KeyDown(24) And latch_key_O = False Then  Animate ninja,3,0.1,jump,transpose:latch_key_O = True
If Not KeyDown(24) Then latch_key_O = False
If KeyDown(25) And latch_key_P = False Then  Animate ninja,3,0.1,jump_static,transpose:latch_key_P = True
If Not KeyDown(25) Then latch_key_P = False
If KeyDown(30) And latch_key_A = False Then  Animate ninja,3,0.1,jump_kill_sword,transpose:latch_key_A = True
If Not KeyDown(30) Then latch_key_A = False
If KeyDown(31) And latch_key_S = False Then  Animate ninja,3,0.1,sidekick,transpose:latch_key_S = True
If Not KeyDown(31) Then latch_key_S = False
If KeyDown(32) And latch_key_D = False Then  Animate ninja,3,0.1,spin_sword_attack,transpose:latch_key_D = True
If Not KeyDown(32) Then latch_key_D = False
If KeyDown(33) And latch_key_F = False Then  Animate ninja,3,0.1,backflip,transpose:latch_key_F = True
If Not KeyDown(33) Then latch_key_F = False
If KeyDown(34) And latch_key_G = False Then  Animate ninja,1,0.1,climb_wall,transpose:latch_key_G = True
If Not KeyDown(34) Then latch_key_G = False
If KeyDown(35) And latch_key_H = False Then  Animate ninja,3,0.1,death_fall_back,transpose:latch_key_H = True
If Not KeyDown(35) Then latch_key_H = False
If KeyDown(36) And latch_key_J= False Then  Animate ninja,3,0.1,death_fall_fwd,transpose:latch_key_J = True
If Not KeyDown(36) Then latch_key_J = False
If KeyDown(37) And latch_key_K = False Then  Animate ninja,1,0.1,idle_breathe_heavy,transpose:latch_key_C = True
If Not KeyDown(37) Then latch_key_K = False
If KeyDown(38) And latch_key_L = False Then  Animate ninja,1,0.1,idle_2,transpose:latch_key_Z = True
If Not KeyDown(38) Then latch_key_L = False
If KeyDown(45) And latch_key_X = False Then  Animate ninja,1,0.1,idle_3,transpose:latch_key_X = True
If Not KeyDown(45) Then latch_key_X= False
If KeyDown(44) And latch_key_Z = False Then  Animate ninja,3,0.1,crouch,transpose:latch_key_Z = True
If Not KeyDown(44) Then latch_key_Z = False

If Not Animating(ninja) Then 

		If state=0 Animate ninja,1,0.1,walk,40
		If state=1 Animate ninja,1,0.1,stealth,40

End If


;Update head rotation
TurnEntity head,headpitch,headyaw,0



Sterling(Posted 2003) [#18]
I can feel a 'Last Ninja' remake in 3D coming on! :)

DarkNature(Posted 2003) [#19]
it certanly is a fine piece of work, psionic, and damned decent of you to share.

I keep meaning to have a go at doing some 3D work one day, but I've not got the first clue when it comes to modelling. All this talk of bones and vertex transforms just leaves me confused and frightened I'm afraid.

Still ... I'll try and make use of this lethal looking fellow, after all he is quite nice (once you get to know him).

Have fun.

Psionic(Posted 2003) [#20]
Smiff: Great stuff, me not being a programmer I just loaded it and extracted one at a time to view it :)))

Ricky Smith(Posted 2003) [#21]
Psionic: With skills like yours you dont need to be a Programmer !

SabataRH(Posted 2003) [#22]
I always enjoy viewing your models, once again 'NICE WORK!'.

Im still tring to fit your dobbie into a game, its a good model and deserves some game time! :)

Mustang(Posted 2003) [#23]
thanx Smiff, cool code!

Bot Builder(Posted 2003) [#24]
hehehe.... I might use it in my current game, which is basically a throwtogether of various resources, where I do the code. It's currently called the "Adventures of Joey the Flying sheep".

Awesome model,animation,and skins BTW. prolly the best thing I'll put in the game. Maybe he'll be a boss.

Zo Zo Zee Zar(Posted 2003) [#25]
I think someone should do a game like the "Last Ninja" series - any old buggers remember that?

Jager(Posted 2003) [#26]
Hey, Is this model free to use in our games?

BTW, in milkshape, the joints look like basket balls and the limbs like huge cones .. in other words, the whole skeleton looks a mess of huge joints and limbs!????

Jager(Posted 2003) [#27]
solved the huge joint problem.

semar(Posted 2003) [#28]
solved the huge joint problem.

May I ask how, since I have the same problem ?


Ricky Smith(Posted 2003) [#29]
I think in preferences you can find a 'joint size' parameter - change it to a smaller setting.

Jager(Posted 2003) [#30]
Yes, my model seems to be a huge giant compared to ninja or biker etc

Is there any advantage in modelling small then zooming in to see it at a workable height?

Ps, my efforts to place my mesh on someone elses animated frame has come to naught. moving the animated skeleton to fit the mesh just destroys the animation. Moving the mesh to fit the frame is messy and diffcult. might try again later.

looks like I'll be doing it the hard way but doing my own animations .. or maybe if I could hire out a motion capture equipment from somewhere? I noticed the post with free motion capture software, now all that's needed is the other stuff.

semar(Posted 2003) [#31]
Cheers Smiff.

Blitz3dCoder(Posted 2007) [#32]

big10p(Posted 2007) [#33]
You dragged up a 4 year old post to say that?

Blitz3dCoder(Posted 2007) [#34]
I don't care if you think I am an idiot, but I was trying to get it in my posts page, so I would not forget about it later. I did not feel like linking it on my site, or putting it in my sig.

GfK(Posted 2007) [#35]
Firefox>>Bookmarks>>Bookmark this page
IE7>>Favourites>>Add to favourites

Of course, bookmarking it or having it in your "posts page" is entirely pointless since all the links are now dead anyway.

big10p(Posted 2007) [#36]
I didn't say you were an idiot. I see you've edited your post, though, to try and make me look foolish.

What about just adding it to your browser favourites?

[edit] yeah, as Gfk suggests

Blitz3dCoder(Posted 2007) [#37]
I was not going to try to make you look foolish, i was going to just put what I put in the new post in my old post, but I decided not to.

And I was not thinking about using the browser favorites

I forget what I was going to say on that, what did it say?
I can still only see 'COOL'

Ross C(Posted 2007) [#38]
The big problem with resurrecting old threads, is people assume they are new threads and in this case, there is a ninja model waiting. Also, the links in the thread are usually dead, and sometimes the people who posted them aren't even here anymore. Just an irritation really i guess.

big10p(Posted 2007) [#39]
I forget what I was going to say on that, what did it say?
I can still only see 'COOL'
When I first saw your post, it simply said "..." which is why commented that it was a strange thing to resurrect a 4 year old post with. ;)

Yan(Posted 2007) [#40]
As we're here, might as well post something useful...Zombie model available here

Blitz3dCoder(Posted 2007) [#41]
if you felt foolish, I am sorry, and I would like to say that I don't plan on trying to make anybody foolish because I respect/envy all of you people who know so much about programming. I am new to programming in general, and I am learning so slow it isn't even funny.

Ross C and everybody else, I am sorry if I annoyed you

i downloaded the tutorials from here, and am messing around with the samples and editing them. Wish me luck.

jhocking(Posted 2007) [#42]
I just realized this demo I wrote back in 2003 is still on my server; it uses Psionic's ninja:

ADDITION: weird, I just tried my own demo and the animation frames are off. It definitely looked great 4 years ago when I wrote this :P

btw Hit Z to jump and X to attack.

*(Posted 2007) [#43]
the model is here: