B A D * M O R F O: 3D HyperBasher Multiuser Construction for Everything!

B A D * M O R F O Multi-user Constructor for Everything: 100% Bluerprints-based Multi-user Construction Framework for In-game Editor | Constructor | Builder | Customizer | Prefab | Mod Systems

An in-game multi-user framework | template | subsystems | embeddable application to extend into various Editors, Constructors, Builders, Customizers, Prefabbers, Modders based on HyperBashing: Collaborative Realtime 3D Kitbash Methodology White Paper … The Universal Constructor!

Potential Use for BAD*MORFO?

We’re developing this subsystem as the base for our various games in development to support 3D HyperBashing: Real-time Collaborative KitBashing and various Procedural Generations Subsystems, empowering users the ability to collaboratively customize Environments and Entities.

We believe Hyperbashing will allow us to achieve functional Game World Simulation Interaction allowing different Game World simulations to merge content, game mechanics, players, etc.

BAD MORFO started as a Glorious 3D Object Multi-user Placement Tool. Its core feature set is Mesh Object Spawn/Destroy, Orientation, Attach/Detach, Material Parameter Adjustments, Server Save/Load.

It provides Visual abstraction, so that developers can easily add their own logic that meets their specific needs. The core feature set enables collaborative construction at various design layers:

  • Designer
  • Level Building
  • Entity Variation Pre-fabrication:
    1. Character Armor Sets
    2. Masks
    3. Creatures
    4. Weapons
    5. Melee Weapons
    6. Vehicles/Crafts
    7. Machines
    8. Architecture
    9. Structures
    10. Props
    11. Missions/Quest
  • Game Administrator / Story Director
  • Story / Dialogue / Narration
  • Mission/Quest Building
  • Player Customization
  • Structure Building

Reserved #1

Reserved #2

What is this? Can you show us a sensible demo and potential use?

Hello @rotwang,

Thank you for your interest. This WIP is to show off the system as it develops/evolves (new word = evolops) and features added. Demo & Tutorials will be produced after we complete Core Features: Multi-user Mesh Object Spawn/Delete, Orientation, Material Parameter Adjustments, Server Save/Load.

Vehicle Construction

Collaborative Level Editing

Runtime Collaborative Editing and Save, Load back into UnrealEditor Utilizing Blueprints Utility

Real-time Creature Bashing

Morfobot Procedural Path Spawning Testing.

Visualization Association to Logic and Data by Name Mapping with…

MorfoSmartShapes

Are merely StaticMeshes (for Static Mesh Parts) with specified Name used by Morpheus to associate Morpheus Objects (ie Connector) and Entity Component Objects (ie Particle, etc). Any staticmesh using the specified name will be considered a MorfoSmartShape, but we attempt to use Shapes related to the Object its associated too. Logic and Data are decoupled. A simple mechanism that allows the SmartShape representing an Object to be orientated like any standard (Static Mesh) Part.

Connectors

Our first Smartshape will support Connectors. Connectors are associated to a specific part, storing metadata as to what and where these components can be attached for Auto Alignment (object snapping). Metadata (decoupled data) consists offset transform for attachment, and a list of connectors allowed to attach

Convert Mesh to MorpheusPart

Procedural Modifier Operations:

Alignment: -1: Default; 0: Zero; 1: Parent Direction; 2. Parent Direction + Rotator Value (Offset);3. Rotator Value (Direct); 4. Random Rotator; 5: Align by Bone; 6: By Gizmo

Location: -1: Default; 0: Parent Position; 1: Straight with Parent; 2. Parent Position + Position Value (Offset); 3. Random Position by Position Value; 4: Straight with Bone

Scale: -1: Default; 0: Parent Size; 1. Parent Size + Size Value (Offset); 2. Parent Size * Size Value%; 3. Size Value (Direct); 4. Random Scale (Uniform) using Size.Z(Max) Value (Offset); 5. Random using Size Value (Offset); 6: Scale by Bone;

Hmm… If you’re applying the rotation of one mesh to a mirrored mesh is there some consideration for it being mirrored?

Looks interesting by the way!

Hello [USER=“37382”]Valkrie Sound[/USER], Thank you for the inquiry and the LIKE. I merely mirrored the vertices in Blender. However, I did not make any changes to the pivot. I swapped out my custom meshes with engine cylinder mesh to determine if the pivot is part of the problem. The issue persists. I do feel the socket and pivot rotations are relevant to the problem, just not sure if there is a local rotation bug. You can Download the Character Blueprint to see symmetry function it in action.

Possible Solutions

BAD*MORFO to get Blueprints-based JSON Node Lexer (JNL pronounced ‘Janelle’) to Serialize/De-Serialize Save/Load Data.

JNL is based on the worlds fastest JSON parser: JSMN by Serge Zaitsev. JNL is 100% Blueprints. Developed to be embedded into other Blueprints-based Products to provide JSON Encode / Decode WITHOUT requiring a C++ Plugin.

I’ll be integrating BAD*MORFO at the core of the God of Dreams FTPS RPG Sandbox MMO, working towards achieving functional: Game World Simulation Interaction (that is, to communicate data, and to synchronize actions), allowing different Game World simulations to merge content, game mechanics, players, etc.

BAD*MORFO will accomplish World Merging with multi-user modular assembly and a custom HTTP JSON API to send construction/destruction commands between Servers. This is where JNL will be put to work Serializing/De-Serializing Data to sent via HTTP API to re-construct assembly of the world’s content if instantiated with the API.

No worries. Apologies if this is already covered but have you been able to reproduce the issue by following the same path with a different model from Blender that’s also got mirrored vertices?

I do appreciate the follow up. I have been focused on restructuring our framework of our game project, thus have not been able work on this problem. BAD*MORFO will be at the core of the God of Dreams FTPS RPG Sandbox MMO, so I have to stabilize the framework, firstly. Once the framework is stable, I’ll get back on this problem and post the resolution.