476

(42 replies, posted in Showcase)

Added a new download "Eva Animated." Thanks Zester!

477

(3 replies, posted in Tutorials/Examples)

THANKS! I needed that! So that is what BBCODE is for? haha I will do that for my customizable game script thread.

haha. This is the best topic I've seen so far. If only we could get normal maps into Maratis. I just downloaded 2,000 + bvh files, gonna see if I can use one to add to my character.

I have used texture atlas to bake some AO, but I still don't get how it works yet.

yikes! haha.

This does make not hate Blender so much now. hehe.

I still have issues with it, but at least I can actually do some stuff with Maratis now (stuff I have been working on)

I am trying to get it hooked up to some bvh files as I type.

You're right! haha. That is exactly what I was thinking of. haha.

Okay, finished a full model. I just used a solid color that was sampled from the UV editor (from the face texture) and painted the rest of the body that color.
PunBB bbcode test

482

(44 replies, posted in Scripting)

AHHH! Okay! Thanks Zester! That is actually a GREAT idea (Decision trees & coroutines). These are VERY useful!

No wonder people have been missing you here! I am sorta new here, but you have helped me squash some speed bumps I have been trying to figure out! haha.

I move fast, so expect to see a game level in a few days implementing what I have learned from you (perhaps tonight).

Thanks!

HAHA! This is TOO EASY. Was able to do this in a matter of minutes:
PunBB bbcode test

Same model different texture:
PunBB bbcode test

I just found it! WOW! I can't believe that ALL THIS TIME I have been using the alpha version. I just downloaded the nightly build and WOW! haha

Thanks zester!

Zester, what version of makehuman do you have? How do I get it? Because my version does not look anything like yours.

YES! Finally! Perhaps I can find some use for MakeHuman now! Get some characters goin'!

Tip: If you type "Face texture map'' in google, you can find some good things to use as a source image.

Thanks Zester!

487

(44 replies, posted in Scripting)

zester wrote:

Look into "Decision Trees" and "Finite State Machines" both easily done in Lua, and if you havent already done so study up on Coroutine's in lua.

A coroutine is similar to a thread (in the sense of multithreading): a line of execution, with its own stack, its own local variables, and its own instruction pointer; but sharing global variables and mostly anything else with other coroutines. The main difference between threads and coroutines is that, conceptually (or literally, in a multiprocessor machine), a program with threads runs several threads concurrently. Coroutines, on the other hand, are collaborative: A program with coroutines is, at any given time, running only one of its coroutines and this running coroutine only suspends its execution when it explicitly requests to be suspended.

If you need any help let me know.

Whew! ya lost me with that one zester! haha. I am actually a novice programmer, but I love problem solving, and that is why I was even able to make such a large script (for my experience level, I think it is large). I am going to look up what you suggested to see how it works, and to see whether or not I can implement it into my AI system.

Thanks! And I will ask if I need help!

488

(44 replies, posted in Scripting)

255 wrote:

BTW the image on the first post is so funny.
It's not the "right" way to do it though XD

hehe.

The cone thing is actually part of a larger physics based AI system (as far as the senses go) that I have thought up.

The cone represents the SIGHT of the object. Anything that collides with the cone is SEEN. Anything that isn't is NOT SEEN. So basically it is a Boolean affair. haha. ON, OFF.

Of course in Maratis it would be invisible and a ghost.

489

(6 replies, posted in General)

Thanks Zester. I have been looking at the Special Effects demo to see what is wrong with it (it crashes Maratis if I hit the space bar too close together.)

I also got a texture animation into Maratis for water (I wonder if I can use some of those After Effects effects hmm)

I do wonder however if there is a way to export every frame as an object automatically?

490

(9 replies, posted in Engine)

zester wrote:
255 wrote:
zester wrote:

\

Yes but I want collision so I need soft body physics like in Bullet.

i agree, full Bullet Support is badly needed like yesterday, Morph target animation is defiantly something I would like to see in "Addition" at a later time. Maratis doesn't even have a proper Particle Effects system yet.

hahaha! I just made a post in the General discussion thread about particles. haha

491

(6 replies, posted in General)

I am trying to HACK OUT a way to do particles in maratis: And I do mean hack!
PunBB bbcode test

I added an explosion physics effect to a subdivided cube. I then added ONE BONE to the cube. I saved the maratis mesh out at the first frame, then at a few frames later, and then at a few frames after that etc.

So now I have several meshes from that one particle system. (I could have baked in ambient occlusion also)

I could use a little bit of scripting to make it iterate between the meshes to create a sort of animation.

But this is PAINFULLY SLOW, especially if I wanted every frame (I only had 14 frames, but still). And this is only one way to do it (could use render to texture somehow, or texture animation (hmmm, sounds like a good idea)).

But what if I want the objects to actually be 3D?

Anyone have any brainstorming ideas on how I could hack some particles in a better way?

So far my lua script looks like this:

part1 = getObject("1")
part2 = getObject("2")
part3 = getObject("3")
part4 = getObject("4")

spawn = true

particles = {part1,part2,part3,part4}

492

(9 replies, posted in Engine)

255 wrote:

You can't use Blender's physics engine on external software just exporting a mesh.

The way I am thinking is sorta hackish, but straightforward also.

I am sure I saw a tutorial where someone used shapekeys to move an armature, which moved the mesh. In this way, you have an armature which deforms a mesh (which is needed for maratis). That armature animation is keyframed and the whole thing is exported into Maratis.

The shapekeys are only a driver for the armature.

I am going to do some research on a way to drive the shapekeys with the physics engine (vertex groups?)

493

(3 replies, posted in Tutorials/Examples)

Don't you just hate digging through code to fix a bug (same reason I hate digging through my room to find my wallet).

Then you stop and think, ''Wait, if my room were a bit cleaner, perhaps I could find stuff!''

So, to keep my room from getting so messy, I just don't put that much in it! hahaha. It is easy now for me to keep it clean. I can also move it around easier. I have two ottomans, (for clothes) a futon(doubles as a bed), a hamper, a trash can, a small desk, and a lamp.

Hmmm, let's change my room into a program.

Let's see, I need to make a list of things in my room (I will be using lua):

CREATING THE VARIABLES
--VARIABLES
ottoman_clothes =
ottoman_pants =

futon =
hamper =
trash_can =
desk =
lamp =

I use the Maratis Game Engine. In Maratis, the way you set a variable to a game object is this way:

lamp = getObject("lamp")

Simple enough huh? So I will do that for all the variables:

--VARIABLES
ottoman_clothes = getObject("ottomanclothes")
ottoman_pants = getObject("ottomanpants")

futon = getObject("futon")
hamper = getObject("hamper")
trash_can = getObject("trashcan")
desk = getObject("desk")
lamp = getObject("lamp")

As you might have noticed, the 3D object's name is ottomanclothes, but the variable name is ottoman_clothes. I did that because it is easier to spot ottoman_clothes than it is to spot ottomanclothes in the program.

So, anything we do to the ottoman_clothes variable in the script, directly affects the ottomanclothes 3D object. Different game engines use different functions to get 3D objects, and different programming languages have different syntax to create variables, but all you should know is that you create your VARIABLES FIRST.

CREATING THE FUNCTIONS

Functions are like VERBS. And verbs are ACTION WORDS. What type of ACTIONS do ottoman's perform? Or what type of actions can we PERFORM on an ottoman? Well, we can OPEN() an ottoman. We can also CLOSE() a ottoman. So these will be our functions for the ottoman:

--OTTOMAN FUNCTIONS
Open()
Close()

We will do this for all game objects.

--FUTON FUNCTIONS
Unfold()
Fold()
Sit()
LieDown()

--HAMPER FUNCTIONS
Open()
Close()

--TRASH CAN FUNCTIONS
Open()
Close()

--DESK FUNCTIONS

-- What can a desk really do? hehe

--LAMP FUNCTIONS
TurnOn()
TurnOff()
SetColor()
SetBrightness()

As you can see, we can perform similar actions on various objects. So how do we determine whether we are opening a trash can, or opening an ottoman?

ARGUMENTS!

Arguments allow you to SUBSTITUTE variables. We can use it like this:

Open(trash_can)
Open(hamper)
Open(ottoman_clothes)
Open(ottoman_pants)

Close(ottoman_pants)
Close(ottoman_clothes)
Close(hamper)
Close(trash_can)

In the lua programming language the function is created something like this:

function Open(object)
    translate(object,{1,0,0},"local")
end

"object" is not a variable or anything. It is like a place holder. Whatever we put in the parenthesis gets dumped wherever "object" is inside of the function.

It turns out that the only type of data the translate can take in the first slot is a game object. If it required a number, we could only use a varaible that is a number there. So it depends on WHERE you are substituting that determines if the argument you are using is able to be used (read it again slowly).

So when we type:

Open(ottoman_clothes)

This will translate the ottoman_clothes variable (which is getting the 3D object "ottomanclothes") on the x-axis with respect to it's local orientation.

FILLING IN THE FUNCTIONS

So now you have to FILL IN ALL THE FUNCTIONS. And this requires:

-Thinking about what you want to do
-Determining the PROGRAMMING COUNTERPART
-Figuring out how the API does it
-Putting it in the funtion

Say you want to make a character JUMP(), well, the programming counterpart of jumping is basically translating an object while playing an animation.

You would use CONDITIONAL STATEMENTS to determine when the character can jump. You might use LOOPS to determine if any actions should repeat etc. How do you translate an object in Unity? In UDK? in CRY? How do you play an object's animation in these softwares? Which button needs to be pressed to make the JUMP() function work? This all goes in the function. And we make it dynamic with ARGUMENTS.

Here is an example from my CUSTOMIZABLE GAME SCRIPT using the Maratis Game Engine API:

--OBJECTS
box = getObject("box")

--JUMP VARIABLES
jump_object = box
jump_height = 3
jump_speed = 1
jump_btn = "SPACE"
jump_animation = changeAnimation(object, animationId)
jump_direction = {jump_up,jump_down,jump,left,jump_right}
jump_up = vec3(x, y, jump_speed*jump_height) 
jump_down =    vec3(x, y, jump_speed*jump_height) 
jump_left =    vec3(-jump_speed*jump_height, y, z) 
jump_right = vec3(jump_speed*jump_height, y, z) 
collisions = getNumCollisions(jump_object)

--JUMP FUNCTION
function Jump(jump_object,jump_direction,jump_btn,jump_animation)
    if isKeyPressed(jump_btn) then
        changeAnimation(jump_object,jump_animation)
        addCentralForce(jump_object, jump_direction, "local")
    end
end

--MAKE ANY OBJECT JUMP
function onSceneUpdate()
    Jump(box,jump_up,jump_btn,jump_animation)
end

The format of our jump function is:

Jump(object you want to jump,direction you want it to jump,button used to jump,animation to play when button is pressed)

One of the ways you TRANSLATE an object in maratis is with the ADDCENTRALFORCE() function. The ADDCENTRALFORCE() function is formatted like so:

addCentralFoce(object,{x,y,z},"local") 
--don't put "local" if you want it global

Instead of putting the values into {x,y,z} as {0,0,1} we made a variable that is a VECTOR3 variable which is already in the format {x,y,z} and made it an argument. Then we can just change the variable without having to go dig through the code to find the JUMP() function.

As you also might have noticed, I hardly use any real numbers in my function. I did, however, use variables. And I also used them as ARGUMENTS.

The arguments of the JUMP() function are still only PLACE HOLDERS. I named them with the same names as the variables to make it clear what type of variables can go inside each slot.

The CHANGEANIMATION() function behaves in a similar way.

ITS DYNAMIC!

Now that we have a dynamic function (function with arguments), we can make any newly created object jump with a set speed, while playing a set animation.

Jump(man,jump_up,"W",animation_jump1)
Jump(woman,jump_up,"W",animation_jump2)
AND SO ON!

494

(6 replies, posted in General)

I have started to use google sites file cabinet for my files. Direct download. I used to use dropbox, but I only have the free version (limited) I posted a guide on how to set it up here:

http://snapguide.com/guides/create-your … -host-site

495

(17 replies, posted in Showcase)

Zoster, you have some awesome modeling skills. I wonder if the original models were just decimated to run faster in the game.

You box modeled those?

Please! This is what I have been doing for the longest. I finally found an understandable tutorial on head modeling for characters. I have been trying to use PROJECT FROM VIEW UV mapping in Blender to get a quick texture. I have a decent workflow now.

Please, I would like a tutorial (especially of its super easy)

Did you UV unwrap?

497

(9 replies, posted in Engine)

I think there I is a way to use Blender's armatures to drive its soft body physics. (I watch so many tutorials however, that I forget where I saw it)

I'll see if I can find it

498

(14 replies, posted in Tutorials/Examples)

VeganDev wrote:
Tutorial Doctor wrote:

For some reason, when I use sphere the object hovers above the ground. I don't know why I keep getting that. I understand why sphere is used in the example (along with angular damping and angular factor adjustments) so that it would "roll without rolling.

There should be some visual cue that let's us know where the center of rotation/mass of the physics object is, so that the pivot point of the mesh can be in the right spot.

I'll fix it soon, working on some animated objects

Unless Im not understanding your point, the pivot point comes from the export from your 3d application. That's what I've always seen anyway. If the pivot isn't centered in 3d app, then it will not be in maratis either.

Im not sure what you mean by, object hovers above ground using sphere, as if you try both convex and sphere , and the play the level, there is no effective difference in how the 'player' moves along the area, at least none that Im seeing here, at all.

The difference between the two as I noted, is just the type of collision needed, based on accuracy and what  you want to do, and as described to me, the difference between a simple player moving along, and the need to fit a triangle piece, into a puzzle triangular hole, with the puzzle analogy being a lot more ( depending how many in the scene, etc.) expensive on performance.

In real physics the diameter would play some part also, rather than just the pivot.

Say you had a sphere with a diameter of 1 Maratis unit with the pivot in the center. Then say you have another sphere with a diameter of 10 Maratis units with the pivot in the center. Since the larger sphere has more surface area, it would seem it would roll differently than the smaller sphere.

My question is if the Physics object (sphere in this case) uses the bounding box of the object or some predetermined size, or a combination of the two (Bounding box and pivot point)

If I used a cube shaped mesh with a spherical physics properties it would roll like a sphere (this is what the Maratis example does, except with angular damping and 0 angular factor)

What happens in my game is that even though the ground mesh is triangle mesh and the object has sphere physics, it is offset from the ground mesh. It still moves, but just as if it was sitting on top of an invisible flat plane.

I am going to look into it now.

499

(14 replies, posted in Tutorials/Examples)

VeganDev wrote:

Ok I have a question...one of the examples from maratis itself, shows making 'player' a sphere I think.or box whichever I guess, but you used  convex hull , and Im wondering if there was a reason for this ? Convex hull is expensive on performance, unless you have a really good reason to use it, which in this case there would be none that I can see wink ( thanks sadwolf for explaining this to me)

Thx a lot for doing tutorial ( though I think you should leave out AO as its rather long with it there, and put ao in a different tutorial), as this would help those unfamiliar with  sculptris though I actually knew how to do it by now.

thx
vd

For some reason, when I use sphere the object hovers above the ground. I don't know why I keep getting that. I understand why sphere is used in the example (along with angular damping and angular factor adjustments) so that it would "roll without rolling.

There should be some visual cue that let's us know where the center of rotation/mass of the physics object is, so that the pivot point of the mesh can be in the right spot.

I'll fix it soon, working on some animated objects

500

(2 replies, posted in Tutorials/Examples)

I think I am going to have to find a conversion factor for the software I use. I know you can activate grid snapping in most vector editors, I will see what comes of it.