Jump to content

ArBuZ

Members
  • Posts

    164
  • Joined

  • Last visited

Posts posted by ArBuZ

  1. Thank you!

    Problem is solved. I think I understand now how all this works. INI file contains all initial values. If you dont change them in the editor then values from ini are used. If you change them in the editor then values from sbx file are used.

    Interesting then how Josh is going to remove ini files from the engine. I saw somewhere he told that. :)

  2. Hi guys! I have a little problem.

     

    I have a model and want to add custom properties to it. Here is LUA file for it

    require("scripts/class")
    
    local class=CreateClass(...)
    
    function class:InitDialog(grid)
    self.super:InitDialog(grid)
    group=grid:AddGroup("Box01")
    group:AddProperty("hitpoints",PROPERTY_INTEGER,"","hitpoints")
    group:AddProperty("type",PROPERTY_INTEGER,"","type")
    group:AddProperty("Param7",PROPERTY_FLOAT,"","Param7")
    group:AddProperty("Param8",PROPERTY_BOOL,"false","Param8")
    group:AddProperty( "BColor", PROPERTY_COLOR, "1" )
    group:AddProperty("Param10",PROPERTY_STRING,"","Param10")
    group:AddProperty("Param11",PROPERTY_FLOAT,"","Param11")
    end
    

     

    properies window looks like this:

    post-36-126881043234_thumb.jpg

     

    All values are zero.

     

    So if I save this map with this object and DONT EDIT any of my custom properties of the object, then in sbx file this properties are absent!

    Here sbx file:

    SBX_ASCII_1.0
    
    cameraposition=0.000000000,5.73576403,-8.19152069
    camerarotation=34.9999962,0.000000000,0.000000000
    
    Model {
    path="light_directional.gmf"
    position=0.000000000,1.00000000,0.000000000
    rotation=45.0000000,34.9999962,3.01372808e-007
    scale=1.00000000,1.00000000,1.00000000
    id=141729016
    "aligntoground"="0"
    "class"="Model"
    "collisiontype"="0"
    "damping"="0.000000000,0.000000000"
    "friction"="0.000000000,0.000000000"
    "gravity"="0"
    "intensity"="1.0000000000000000"
    "linearoffset"="0.310000002,0.400000006,0.699999988"
    "mass"="0.00000000000000000"
    "name"="light_directional_1"
    "order"="0"
    "range"="500.00000000000000"
    "resolution"="2"
    "shadowdistance"="6.00000000,20.0000000,100.000000"
    }
    
    Model {
    path="luatest_box.gmf"
    position=1.00000000,0.000000000,-1.00000000
    rotation=0.000000000,0.000000000,0.000000000
    scale=1.00000000,1.00000000,1.00000000
    id=144936072
    "class"="Model"
    "intensity"="1.0"
    "name"="box_2"
    }
    

    But if I edit them (at least one of them) then all this properties are present in sbx map file.

    So the question is why does that happen? and

    Can I somehow set initial values of custom properties?

     

    Thanks in advanced.

    PS

    I need it for my 3ds max exporter. It will be possible to set properties for models in 3ds max and then automatically have them in the editor!

  3. The only issue I have come across while exporting anything a second time is that if you have modified or created a .mat file for the object and export it with the "Export Materials" setting checked it will overwrite your .mat file with one generated by the exporter. I always just make sure to back up my .mat file before re-exporting, and then I haven't had any problems.

     

    Hi! In new version Ive added replacement mode for mat files. So you can choose replace or skip existing mat files. New version is ready, and Im testing it now. I'll post it very soon.

  4. I've narrowed it down to a single mesh which was causing the problems: the boots. I've attached the max file to this post, as well as a screenshot of the settings I used to export. The specific error is: "There was an error during export objects!" If I delete the boots and try to export the rest of the stuff in the scene, it exports fine (though it takes a while to do so). The gloves I had on the character were also open meshes but those exported without problems (using the same settings). Any ideas why this doesn't export?

     

    Boot model has isolated vertexes(Vertexes that don't belong to any polygon or edge) Convert it to editable poly, select all vertexes and press "Remove isolated vertexes" in edit vertices rollout

  5. Hi! Because of my bad English I couldn't explain in detail all specifics of exporting.

     

    I'll try:

     

    1. Models shouldn't have isolated vertexes.

    2. Try to uncheck all checkboxes that you don't need.

    For example if your model doesnt use smoothing groups. Exporting will take very long time for large models if there is no any smoothing group applied to the polygons but "Export smgs" is checked. Try to use "Auto smooth". If only single material is applied (then you should uncheck mat IDs. Or if you use only 4 or 5 IDs then set maxID number to 5) Don't check vertex color if you don't need them.

    3. for skinned models:

    Only skin modifier is supported. The skin modifier should be on top in modifier stack. While exporting the exporter converts the model to mesh and back to poly several times, and its supposed that the number of vertexes is the same all the time. Best way to achieve that is to apply "edit mesh" and "edit poly" modifiers before skin modifier.

    4. All materials must be standard.

  6. That means, that error exception has been occured. There is tow reasons of it 1st - your model. and the 2nd - bug in my exporter. 1st is more likely. What are your trying to export? Is the model animated or skinned? There are some requirements for exporting models.

  7. Hi!

    The exporter exports only triangles and it splits quads or polygons to triangles, because the engine anyway uses triangles.

    If you open your model in the Model viewer, the number of tris will be the same as in 3ds max. Its an Editor issue.

  8. Yes. The exporter uses 3dsmax obj exporter to get obj files for converting them to phy. I cant access it's properties to set scale from maxScript. You have to set obj scale manually. Just export once any object to OBJ from 3ds max (File->Export selected") and set scale in OBJ Exporter dialog. Then my exporter will use that options.

  9. Thank you for your quick replies :)

    But what if I want to save previous framework worlds and switch bitween them by key press. Or its resource extensive?

    Its all about main menu :)

    I have a main menu as 3d object and some other additional objects with its own lighting and effects, and raycasts performs. I want to place all this to separate world. And when Esc is pressed switch to this world and work only in it. And when back to game switch to game's world.

  10. I'm running it in max2010 x64 and have no problems.

     

    But I would really prefer some kind of automatic LOD export.

     

    So if you have your model plus two LoD models the exporter should recognize them. Maybe with some naming conventions like _lod1; _lod2 at the end of the model.

    Would be a nice timesaver. :)

    Yep I know that this function will be very usefull! I just almost dont have free time. Ill implement it as soon as possible :)

  11. Using VC++ 2008 Express

     

    Use the 2.3 Project Wizard to create a new project

     

    I simply called the example "sceneloading" (again ...)

     

    Delete the generated example code in sceneloading.cpp

     

    Replace with the following code:

     

     

    #include "engine.h"
    
    int main(int argc, char** argv)
    {
    Initialize();
    RegisterAbstractPath("PATH TO YOUR SDK FOLDER");
    Graphics(800,600);
    
    AFilter() ;
    TFilter() ;
    
    TWorld world = CreateWorld() ;
    if (!world) {
    MessageBoxA(0,"Error","Failed to create world.",0);
    return Terminate();
    }
    
    TFramework framework=CreateFramework();
    TLayer layer = GetFrameworkLayer(0);
    TCamera cam=GetLayerCamera(layer);
    PositionEntity(cam,Vec3(0,0,0));
    
    //Set Lua variable
    BP L=GetLuaState();
    lua_pushobject(L,framework);
    lua_setglobal(L,"fw");
    lua_pop(L,1);
    
    // Setup Initial Post Processing FX
    SetGodRays(1);
    SetHDR(1);
    SetSSAO(1);
    SetBloom(1);
    SetAntialias(1);
    SetStats(2);
    
    LoadScene("abstract::YOUR_SCENE.sbx");
    
    // Setup spectator
    TBody spectator=CreateBodySphere();
    SetBodyMass(spectator,1);
    SetBodyGravityMode(spectator,0);
    SetBodyDamping(spectator,1.0);
    EntityType(spectator,3);
    SetBodyBuoyancyMode(spectator,0);
    PositionEntity(spectator,Vec3(0,5,-10));
    
    TVec3 camrotation=Vec3(0);
    float mx=0;
    float my=0;
    float move=0;
    float strafe=0;
    
    HideMouse();
    MoveMouse(GraphicsWidth()/2,GraphicsHeight()/2);
    
    // MAIN LOOP
    while (!KeyHit(KEY_ESCAPE))
    {
    
    mx=Curve(MouseX()-GraphicsWidth()/2,mx,6);
    my=Curve(MouseY()-GraphicsHeight()/2,my,6);
    MoveMouse(GraphicsWidth()/2,GraphicsHeight()/2);
    
    camrotation.X=camrotation.X+my/10.0;
    camrotation.Y=camrotation.Y-mx/10.0;
    RotateEntity(cam,camrotation);
    
    move=KeyDown(KEY_W)-KeyDown(KEY_S);
    strafe=KeyDown(KEY_D)-KeyDown(KEY_A);
    TVec3 force = Vec3(strafe*10.0,0,move*10.0);
    force=TFormVector(force,cam,0);
    AddBodyForce(spectator,force);
    
    UpdateAppTime();
    UpdateWorld(AppSpeed()) ; 
    
    PositionEntity(cam,EntityPosition(spectator));
    
    // Update timing and world
    UpdateFramework();
    
    // Render
    RenderFramework();
    
    // Send to screen
    Flip(0) ;
    }
    
    return Terminate();
    }

     

    Copy to the sceneloading project folder

     

    engine.dll

    newton.dll

    shaders.pak

    Scripts folder

     

    from your 2.3 SDK folder

     

     

    Create a scene and save it in the maps folder in your SDK folder. Should work, but I am having a few beers :blink: so address all complaints to .. erm ... Macklebee :)

     

    If I use LEO Framework, how can I pass framework to LUA?

    This doesnt work:

    Framework *fw1=new Framework();
    fw1->Create();
    
    BP L=GetLuaState();
    lua_pushobject(L,(BP)fw1);
    lua_setglobal(L,"fw");
    lua_pop(L,1);
    
    LoadScene("C:/test/deserthighway.sbx");
    

     

    It gives me error "Access violation reading location 0x2f005800" on LoadScene function. Im doing something wrong?

×
×
  • Create New...