Tagged: UI Toggle Comment Threads | Keyboard Shortcuts

  • frankiezafe 18:46 on 2017-02-08 Permalink | Reply
    Tags: , , , UI   

    I’m currently working on a more user friendly mesh, skeleton & materials converter.

    For the little story, when you export a model from blender, the blender addon outputs xml files. These files have to be parsed by the OgreXMLConverter to produce the final files. *.mesh & *.skeleton files are binaries.

    It’s a tedious process, especially when you want to organise your files in the folder structure of the application.

    The polymorph xml converter wlll make this a bit more handy (when ready):

    • hotfolder: define the folder where the blender exports lands after export;
    • output models: define the folder where the .mesh files will be exported after conversion;
    • output skeleton: define the folder where the .skeleton files will be exported after conversion;
    • output material: define the folder where the .material files will be moved;
    • output textures: define the folder where images will be moved;

    These paths will be saved in a preference file next to the application, to avoid having to reset them each time you open the application.

    A demo will come once it will starts to work. For the moment, only the GTK filechooser is plugged in.

  • frankiezafe 20:27 on 2016-11-09 Permalink | Reply
    Tags: , Menthol, , timeline, UI,   

    Mentholed blender

    related issue in bitbucket



    A long time ago (2 years maybe), i’ve worked with yacine sebti to make a bridge between a timeline editor in max/msp (yacine’s world) and openframeworks (my former world). The project was called Menthol. This prototype has been used in the void project.

    The openframeworks addon is here: https://bitbucket.org/frankiezafe/ofxmenthol

    During a 1 hour phone call with yacine, we discussed about how to build a standalone UI for the project. Several ideas where floating, such as a fully custom UI in openframeworks or a QT version, such as Iannix. This one is very good looking, even if yacine and i think that it is not precise enough for our usage.

    Then, like each time we spoke about this, blender pops in.

    I always liked the graph and the dope sheet panels. It’s a superb 2d simplification, with a lot of features (i just discovered the modifiers, my head is spinnin’!). I quickly draft the modifications to do on these panels to work as a standalone timeline editor.

    I’ll investigate this in december!

    nb: this feature is part of the polymorph engine presentation :), see here

    • xuv 20:59 on 2016-11-09 Permalink | Reply

      Just saying… Not perfect… but [CTRL]+[T] give you time in seconds instead or next to the frame number (It’s unfortunately not consistent)

  • frankiezafe 19:24 on 2016-11-02 Permalink | Reply
    Tags: , , , UI   

    Tuning scores, first screenshots of the game.

    Because we present the first prototype to Lisa Nelson and the Contredanse crew very soon, we rushed a lot this week and first results are promising:

    • a bunch of objects are ready to be manipulated;
    • it’s possible to play on 2 different computers seamlessly (identical physical world);
    • each player can change his/her point of view and see what the other is looking at (the eye in the sky);

    And, the most important, the playfulness of being in a “sensitive” virtual environment. Every little movement may have an impact on several objects. And looking at the other propositions is as stimulating as playing yourself.

    There still a lot of things to fine-tune, in the code and the models.

    The next big step is add some sounds, to complete the experience.




  • frankiezafe 19:12 on 2016-10-10 Permalink | Reply
    Tags: , , UI   

    Precise object grabbing, require a bit of math, but it worst the headache!







  • Louise 21:46 on 2016-09-21 Permalink | Reply
    Tags: , , game design, , UI   


    Tuning Scores’s visuals are slowly progressing…
    We have made some new objects with several layers of textures and a floating toolbar!
    In the projet, users can make “calls” to the space. These calls are a way to invite the other users to do something – these calls can be triggered via icons. To avoid the “overlay” effect, we placed the icons in the 3d space. Therefore, they have the same status as the other objects in the playground.


  • frankiezafe 20:06 on 2016-09-18 Permalink | Reply
    Tags: , , , spacialisation, UI   

    Sound source linked to Puredata.

    After the work of yesterday, a bit tedious, and a bit of cosmetics in pd, sound sources are now correctly linked with the sound. Pan is controlled by the x coordinates of the source. Source also send the file path to play to the track. The 3 tracks you see there are completely automatised, with the help of yacine sebti.

    About the file format, it’s a bit more tricky: puredata only reads .wav & .aif by default. An addon exists to load ogg (personal choice), but it only takes absolute path!

    Ogre cannot do that (find the absolute path) but boost::filesystem canref. Unfortunately, this part of the boost library is not binded to ogre… Another todo 🙂


    This post is related to this one

  • frankiezafe 18:44 on 2016-09-14 Permalink | Reply
    Tags: editor, , UI   

    Edition tool, first draft.

    This is the first step towards a game editor based on #ogre. At this stage, the application allows to reload all resources from the drive and therefore to change the materials manually without having to stop/start the viewer each time. Lights are also selectable and modifiable.

    It’s obviously much less clean to drag and drop files in the filebrowser, but i like the idea that you can use any text editor to work on your files. An “open game development toolkit” rather than an “Integrated Game Development Environment” 🙂

    The source is available here.

    The previous post and this one close the day on an happy note: it’s now possible to see the models in Ogre without compiling it and to fine-tune materials easily.

  • frankiezafe 19:37 on 2016-09-06 Permalink | Reply
    Tags: , motion, , UI,   

    Navigation along the structure.

    After some refactoring, the system starts to behave nicely:

    • objects position, size and orientation are described in an xml, much easier to modify
    • gaps (the space between joints, marked by a white sphere), are rendered automatically by the engine
    • camera rig (a hierarchy of objects including camera and lights) is able to move along the structure, from cluster (orange boxes) to boxes
    • when 2 gaps are vailable in a cluster, it’s possible to choose wich one to solve
    • camera orient itself according to the selected gap

    I have to plug back the resolution of gaps, disabled for now. Moving a segment will cause issue, for sure. More about this very soon!

    The tricky point was to manage the camera correctly when its orientation is not aligned with the world axis anymore. The camera is parented to a node called origin. When the orientation of origin change, the UP axis used to update camera has to be given before calling lookAt for instance.

    Vector3 local_up( 0,1,0 );
    local_up = origin->getOrientation() * local_up;
    cam->setFixedYawAxis( false, local_up );
    cam->lookAt( origin->getPosition() );

  • frankiezafe 19:09 on 2016-08-25 Permalink | Reply
    Tags: , UI   

    Game controller wrapper.

    Just finished a nice piece of code to manage gamepads (and potentially joysticks) in an efficient and clean way.

    For start, you just ask Input manager to start a game controller


    To get the information out of the InputManager, you call:

    input::DataFrame input_frame;
    input::InputManager::getInputFrame( &input_frame );

    To detect change events (equivalent to button pressed), you have to declare the DataFrame as a class parameter. Each time you call getInputFrame, the events are rendered.

    To access events and input values, you have to read your input_frame. It contains a vector of GameControllerFrames. Each GameControllerFrame has an id, corresponding to the id you gave in openGameController( ID );

    A GameControllerFrame also contains several maps:

    • axis: a map of vector2d for 3 axis: left & right sticks + trigger.x (~LT) & trigger.y (~RT). Vectors are normalised and stabilised.
    • buttons: a map of boolean, true if the button is pressed
    • axis status: indicate if the axis is active, inactive, has just been activated or deactivated
    • button status: indicate if the button is active, inactive, has just been activated or deactivated

    activated and deactivated are there only for one update. After that the status becomes generally active or inactive.

    It is important to understand that these status depends on the frequency of InputManager::getInputFrame( &input_frame ). The previous data frame is stored in the local DataFrame, NOT in the InputManager. The idea is to make a clean data retrieval when needed, and not risking interruption during the main loop.

    The InputManager runs on its own thread and does not trigger events in the main application.

    The code is available in the example-gamepad.2.0 in bitbucket. See related issue.


  • frankiezafe 16:47 on 2016-08-13 Permalink | Reply
    Tags: , UI,   

    First video for peel in #ogre3d!

    All interactions goes via a cross allowing 4 actions.

    • If the player press the top half of the screen, he/she manipulates the top part of the tube.
    • If the player press the bottom half of the screen, he/she manipulates the camera.

    peel – game, first touch and feel from frankie zafe on Vimeo.

    UVs and shading will be solved soon.

    • xuv 18:37 on 2016-08-13 Permalink | Reply

      Nice. I see a little inconsistency in the UI though. The left and right arrow rotate the corresponding cube whether the cursor is in upper or lower half of the screen. While the up and down arrow manipulate the camera. It could be confusing. Maybe a different icon for up and down would make it clearer.

      • frankiezafe 11:42 on 2016-08-14 Permalink | Reply

        On the top, the bottom arrow will move the top part down to close the tube. The top arrow would be used to “bend” the tube and see top and bottom part at once. These 2 actions are not implemented yet…
        On the left and right arrows, there’s a difference between top and bottom:

        • bottom: free rotation
        • top: 90 degrees steps

        So, especially on the top part, top and bottom arrows will have very different behaviour then on the bottom. You were thinking about a completly different icon or an adaptation?
        Top bottom arrow with an extra triangle on the bottom for instance?
        I’d like to keep this as simpl as possible.

        I’m also not sure on how to navigate along the tube. For instance, once the puzzle solved, how to indicate to the player that he/she can go up?
        Remap of the top arrow?

        • xuv 02:52 on 2016-08-15 Permalink | Reply

          Ok. The textual description is a little too complicated for me to understand. I guess I’ll see it. You’re on the right track. 🙂

Compose new post
Next post/Next comment
Previous post/Previous comment
Show/Hide comments
Go to top
Go to login
Show/Hide help
shift + esc