GithubHelp home page GithubHelp logo

glportal / map-editor Goto Github PK

View Code? Open in Web Editor NEW
7.0 11.0 3.0 891 KB

Radix Map Editor Blender Plugin

Home Page: http://glportal.de

License: Other

Python 98.77% Shell 1.23%
blender map-editor game-editor game-editing hacktoberfest

map-editor's Introduction

Download Build Status Join the chat at https://gitter.im/GlPortal/glPortal Join Chat

Radix Map Editor Blender Plugin

The Radix Map Editor Plugin allows Blender to import, edit, create and export Radix maps.

Features

  • Import and export Radix maps
  • Radix specific tool panels
  • Preview with textures

Installation

  • Install Blender
  • Download the latest version of the Radix editor. Don’t extract the file !
  • Run Blender:
    • Select File > User Preferences...
    • Move to the Addons tab.
    • Click Install From File... in the bottom of the window.
    • Select the downloaded zip file.
    • Check the GlPortal XML Format box. Wait a moment for activation to complete.
    • Click on the arrow to display details and preferences.
    • Go to Set up GlPortal data directory and find GlPortal data directory.
    • Click Save User Settings and close the window. If you are upgrading, you may need to restart Blender.

Development

  • Install Blender
  • Clone or download this repository
  • To install the plugin either
    • Copy the directory RadixMapEditor into your Blender configuration folder /home/user/.config/blender/VERSION/scripts/addons
    • Use the linkPlugin script to create a link of the plugin to the Blender plugin folder
  • Run Blender:
    • Open the Blender settings
    • Check the GlPortal XML Format box. Wait a moment for activation to complete.
    • Click on right arrow to display details and preferences.
    • Go to Set up GlPortal data directory and select your GlPortal data directory.
    • Go to Set up GlPortal executable and find GlPortal executable.
    • Click Save User Settings and close the window. If you are upgrading, you may need to restart Blender.

Usage of linkPlugin

Open terminal in the main repository directory and type:

./linkPlugin -b blender_version

Where the blender_version is replaced with your installed Blender version.

Example

./linkPlugin -b 2.79

Create a Release

On Linux you can create a release very easily:

./draftRelease

You can then upload the release to github.

map-editor's People

Contributors

elementw avatar hhirsch avatar julianthijssen avatar sgorava avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

map-editor's Issues

Which version of blender use?

I have a question.
Which version of blender use?
I can't import the add-on.
Reason: "Upgrade to 2.8x required"
Zrzut ekranu z 2020-06-11 08-36-28
I have tried Blender version 2.80, 2.82 and 2.83
Thx for help.

Update support for 'map' trigger

Specification or rather the way how the map is specified in xml has changed. There is no need to add xml extension when specifying map file for map trigger.

ToDo:

  • Update background architecture
  • Check importer
  • Check Exporter

Add more tests

Add more unit tests

  • Properties
  • Object names
  • Operators

All suggestions are welcomed.

Specification for templates

Templates are a way to save an xml for later import to our maps. This is for recurring geometry like e.g. stairs.

Use case:

  • Design the stairs once in blender

  • Save the template as a map file in the template directory

  • While working on a map pull up the templates and insert your stairs as often as you want to

  • Create spec

  • Create issues according to spec

If a reference or the full geometry is added when inserting a template is to be decided (both have a use case and maybe both are needed).
In blender it will be beneficial to have all parts of a template grouped.
I think adding the full geometry instead of a reference should be implemented first and is simpler to implement, too since it does not require changes to the client.

Remove support for <end>

  • Remove requirement to have an exit on the map
  • Remove end element in the export and import
  • Remove operator

Refresh materials in blender

There needs to be a function to refresh the material list without restarting blender so that it is possible to work with new materials right away.

Progress:

  • Add reload function which reload GlPortal material definitions.
  • Refresh material list for MaterialPanel.
  • Reload textures if materials were used

Fix tests

The tests just pass even when there are errors and failures.

Error when adding Radix map-editor to Blender

capture

After going to User Preferences -> Addons -> Install from Zip, I select the zipped folder and Radix Map Editor will show up. But once I try to activate it, Blender throws this error.

Model scale conflict with rigid-body scale

Problems:

  1. Currently, we export scale tag at XML for match rigid-body scale with model scale. still, It is not all cases. some models are too small for rigid-body or too big.
  2. We also can not scale model from XML.

Solutions:

  1. we have to multiply it by x to work for bullet we just do that.
  2. add a new tag for the model scale and check for existence. not to break all maps.
  3. apply rigid body scale like a material.
  4. export both model and RigidBody (ie. boundary box) from blender
    Blender->Unity export video

Interface with the engine

Analogous to GlPortal/RadixEngine#102

Simple interface to game engine through a json file to transmit current player position and orientation

{
  "player": {
    "position": {
    "x": 1,
    "y": 1,
    "z": 1
    },
    "orientation": {
    "roll": 1,
    "pitch": 1,
    "yaw": 1
    }
  }
}

The idea is to have the camera spawn at the position and angle as the view is in the editor.

It should create a json file with the same name as the map file and it will be loaded and periodically checked by the engine.

Improve Operators code

  • Create operators (classes) from list > will remove duplicate code
  • Register operators for usage in search menu (doc)
  • It should look and work nice

Rename GLP namespace to RADIX or something else

It is good to ditch "glp" as namespace because it does not look very good in search window and also it is connected with game which will never exists in the future.

Suggestions are welcomed.

Add blender docker image to GlPortal docker hub account

FROM base/archlinux
MAINTAINER Juraj Oravec <[email protected]>

RUN pacman -Syu --noconfirm && \
  pacman -S --noconfirm \
    blender \
    git \
    python-lxml \
    python-prettytable \
    python-testfixtures

RUN pacman -Scc --noconfirm

RUN mkdir /data
RUN mkdir /root/.glportal

COPY data/userpref.blend /root/.config/blender/2.79/config/userpref.blend
COPY data/run-tests /usr/bin/run-tests

WORKDIR /data

CMD run-tests

Export only used materials

Export only used material when the original map will be overwritten.

Progress:

  • Default material is exported only when is needed (need some testing). Materials with original files are untouched even when they are unused, the best way can add some option to remove them and reorganize them.
  • Materials used for "door" and "volume" are not exported if they are not used on "model" or "wall"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.