451

(13 replies, posted in Scripting)

a look-at cannot operate gradually,
but the target yes :

- create an invisible box named "TurretTarget"
- attach a "Follow" behavior with a delay (for gradually moving)
- make your turret look-at target be "TurretTarget"

From script, change the target of "TurretTarget" depending on what the turret is supposed to look-at :
setBehaviorVariable(TurretTarget, 0, "target", "ObjectNameToLookAt")

452

(36 replies, posted in General)

To be correct you need to use the matrices, after the armature parenting is computed,
you multiply the entity matrix with the bone matrix :

MMatrix4x4 boneWorldMatrix = (*entity->getMatrix()) * (*bone->getMatrix());

All meshs are instances, so because multiples entities can use the same mesh
you need to update the armature for each entity (depending on the entity current animation) before retrieving the bone matrix :

MMesh * mesh = entity->getMesh();
if(mesh)
{
    MArmature * armature = mesh->getArmature();
    MArmatureAnim * armatureAnim = mesh->getArmatureAnim();
    if(armature)
    {
        // animate armature
        if(mesh->getArmature())
        {
            MArmature * armature = mesh->getArmature();
            if(mesh->getArmatureAnim())
            {
                animateArmature(
                    mesh->getArmature(),
                    mesh->getArmatureAnim(),
                    entity->getCurrentFrame()
                );
            }
            else
            {
                armature->processBonesLinking();
            }
        }
    }
}

this computation is otherwise only done at rendering if the entity is visible.

453

(29 replies, posted in Showcase)

Congrats !
I'm impressed, it's going good.

454

(56 replies, posted in Editor)

Thanks,
for Sleep it's probably a missing include,
I'll try to check all that on each platform when I can.

455

(56 replies, posted in Editor)

thanks,

the pthread lib is not linked it seems,
I added it in the Tests/ premake file : links { "GL", "dl", "X11", "Xxf86vm", "pthread" }
but I'm unsure, can you try to modify the premake file if it still doesn't work ? maybe by renaming "pthread" > "libpthread".

if it still doesn't link, be also sure you have lib pthread installed (but I think it's default on linux).

456

(56 replies, posted in Editor)

yes I forgot something, it's not warning on mac as uint32_t is available by default,
changed.

457

(56 replies, posted in Editor)

it's highly experimental still unfortunately : )
thanks for so much back and forth testing.

458

(56 replies, posted in Editor)

There was some code requiring c++99
I changed that and modified the way tinyutf8 was called

459

(56 replies, posted in Editor)

ok, I think I know, thanks, checking that.

460

(61 replies, posted in Editor)

I'm not sure, simple enough things, like object hierarchy are Enhancements and are technically ok in the tracker,
but complex things like a terrain editor are more than that, the impact is beyond, it's more a glimpse of future possibilities.

The fact that you do fake screenshot is interesting and your ideas are very valid, maybe it should be a page in the wiki that could be accessed from "Roadmap", as a study of future possible evolution with different propositions and screenshots. It's actually what they did for Blender when working on a new interface, they made a big document first with fake screenshots. The section could also contains more classic studies / comparisons with other softwares. And the development could pick ideas from it.

What do you think ?

461

(56 replies, posted in Editor)

what are the errors ?

462

(56 replies, posted in Editor)

mh, no clue for that,
MCore is pretty simple, there is no platform code except dirent for windows.

463

(56 replies, posted in Editor)

It seems to be missing a define to get glXGetProcAddress, I added something to the premake,
and I found out that MGui code was not in the source control, hence not finding MGui.h, it's added now.

464

(56 replies, posted in Editor)

For FreeImageTag.h, I found a case sensitive path problem in the freeimage premake
and for MGui I modified the Test premake

465

(56 replies, posted in Editor)

that's strange,
in premake the includedirs of "MSDK/MGui/Includes/" is the same for all platforms,
but as I said I'm not an expert with premake.

466

(56 replies, posted in Editor)

Thank you, I only tested on mac,
I probably made a mistake in the premake of glfw, I updated if you want to try again.

467

(1 replies, posted in General)

that's cool,
welcome !

468

(56 replies, posted in Editor)

I committed all this into a new "Experimental" branch,
it's still in progress but the core is functional.

- MGui version 2 (rewritten, data independent, real fonts, node system...)
- glfw 3 context, multithread
- freeimage loader
- a collection of image filters (edge detection, blur, etc)
- UTF8 text
- premake build system

I don't know premake a lot, does someone know how to have premake to embed data (images, fonts...) if the output is a xcode project ?
Anaël.

469

(10 replies, posted in Engine)

The multiple plugin system is good for sharing behaviors and script extension,
there is two unresolved problems, and that's why I disabled it before finding a good approach.

- The first is linked to MGame, it's possible to create a custom class that override the default one, which is good when using a single plugin, but when using multiple plugins it means that one plugin can override a previous plugin custom class.

There is some options, like finding a way to block access to the game class if the plugin is not THE game plugin, by checking the name of the plugin at loading time, but it's not hack proof. The other would be to enable the use of multiple game class, but it poses the problem of the update order and multiple similar calls.

- The second is the separation between the editor and the game, some "tool" plugins should be only used inside the editor and not published with the game, and some things that an editor plugin could access should not be accessed by a game plugin.

It's an important feature to be able to load multiple plugins, I feel a bad to block the feature for now but this two questions needs to be handled before, I'm still thinking about it, Nistur is also working on it.

470

(10 replies, posted in Engine)

Yes it needs more bricks, for now there is only the look-at and follow behavior by default,
it's planned in the TODO list for some time already (Additional behaviors : simple AI, ready-made player...)
see wiki : http://wiki.maratis3d.org/index.php?title=Roadmap

It will grow slowly as Maratis gets more popular.

471

(17 replies, posted in External Tools)

I don't think you should create "bpy.types.Scene.my_string_prop" in the scene,

look at "__init__.py" how AnimListItem.loops is made,
it's there I think you should add the new property so it's attached to AnimListItem.

Something like :

AnimListItem.name = StringProperty(
        name= "name",
        description= "anim's name",
        update=update_func
        )

after AnimListItem.loops = ... in "__init__.py"

472

(10 replies, posted in Engine)

It's possible to make a good game without programming, but like I said before it only works for already existing game-play, it need logic bricks, and this logic bricks need to be programmed.

A new concept needs programming, but it generally means a programmer in the team, because a good game-designer and level-designer don't need to write code, they need bricks, behaviors and variables.

Everything depends what you need to do and who do what, that's why planning is so important in my opinion.

I actually started making game when I was a teenager using something called "Click and Play" and the second version "The game factory" where all the logic was made using a table (more or less like an excel table with action > reaction)
And I liked that, but it was only working till a point because there was no way to add a new logic brick by actually coding.

So it really depends of the needs.

473

(17 replies, posted in External Tools)

No, when the field you added is modified :
see "Update Example" there http://www.blender.org/documentation/bl … props.html
(when you create your StringProperty, add : update=update_func)

and in your custom "update_func" do something like :

sce = context.scene
id = sce.mar_anim_list_index
mar_anim_list = sce.mar_anim_list
mar_anim_list[id].name = mar_anim_list[id].my_item.name

474

(17 replies, posted in External Tools)

ok, no stress.

I think you can change the name by doing :
mar_anim_list[id].name = newName

475

(17 replies, posted in External Tools)

Cool,

the idea is to create a menu to handle multiple meshs and their respective options and anim ranges,
so if a blender scene contains multiple "future" Maratis meshs, you don't have to select it each time.

Right now the menu is like that :

http://www.maratis3d.org/wp-content/uploads/2013/08/screen01.png

The idea is to do :

http://www.maratis3d.org/wp-content/uploads/2013/08/screen02.jpg

- it will need an additional option to center the mesh at export

I think it's something that would help manage data between Blender and Maratis,
but it's not a vital feature, and it's work, so you see if you are interested, no problem.