Git Product home page Git Product logo

editor's People

Contributors

slimbuck avatar steveny-sc avatar willeastcott avatar yaustar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

editor's Issues

Translation gizmos aren’t updated to the local forward direction of the selected entity.

When I rotate a empty object its translation gizmos doesn’t change direction in the editor’s view, even though it changes in the backend.

Example:
Without rotations:
1

With some rotations, the gizmos SHOULD change to the local forward direction of the selected entity, but they dont and I have to guess where the new object is Looking at:
2

whereas I also use unity engine and the directions of the x,y,z also change as I rotate.
Example in unity, when I apply rotations the editor show the direction in which the object is facing:

Capture

Asset missing from downloaded build.

Description

We have an asset that does not appear in a downloaded build of the project. When viewing the asset via the editor's asset registry, it shows up with a red stripe under the file name, and an "Failed" entry saying "Op submit failed. Maximum submit retries exceeded"

  • URL to a simple, reproducible test case that illustrates the problem clearly: Project is private
  • Screenshots
    Asset in editor
  • The platform(s)/browser(s) where the issue is seen: all platforms

Steps to Reproduce

  1. See that asset with ID 26681243 exists in asset registry (styles.css)
  2. Go to Publish -> Download .ZIP -> Select all scenes -> Download
  3. Unzip build and find that folder 26681243 does not exist and styles.css does not exist.

Add Element Component, change Type to "Image", not rendering.

Description

When adding Image Element Entity from context menu, it renders it fine.
But if you add Entity to hierarchy, then add Element Component, and switch Type to "Image", it will not render, until refresh of Editor, or enable/disable entity/component.

Steps to Reproduce

  1. Create New Entity
  2. Add Component: Element
  3. Change Type to "Image"

Broken fbx import when converting to json

Hi,

I believe there is a bug with the fbx importer in playcanvas that causes the converted json file to lose keyframe data that existed in the original fbx.

I’m importing a very simple animation of a box into playcanvas using fbx. When the animation is converted to json, it loses keyframe data that was originally there.

You can see in this test project. If you download the fbx file, there is animation where the ball moves up on the Y-axis on the 2nd frame. But in the json file, that motion is not there at all.

The fbx was exported from Maya, and I’ve tried multiple versions of the fbx plugin.

https://playcanvas.com/project/669752/overview/fbx-import-error

REST API support for auto-parsing scripts

Feature request:

It would be nice if REST api would be able to parse script after getting it from outside.

Why it would be useful:
It's quite common that if you are programming locally and sending your code ('Webpacked' mostly),
the next thing you will have to do is hit the 'parse'-button. Why not do it automatically? As a parameter

form.append("file", JSON.stringify(settings), {
     filename: filePath,
     contentType: "application/json"
     parseScript: true // like this
 });

or an another request with callback?

Localization loses file references

If I create a couple of json-files for localizaton, add them as assets in the localization section of the settings menu and then refresh the browser, the references appear as "Missing".
The localization still works if I change Locale in the Editor section, so I guess this is just a cosmetic thing?

lost_references

Editor Plugins

We would like to be able to extend the PlayCanvas editor with custom tools that allow our designers and artists to be more productive.
These editor scripts should preferably live in the editor itself and not require any browser plugins or be limited to a certain type of browser or OS.

An example of a custom tool could be a level editor that allows an artist to visually drag and drop assets into groups of enemies, weapons, props, etc. – perhaps sorted by theme. A designer would then use the available assets to populate each level of the game.
The level configurations would need to be saved to a JSON-file in a folder in the PlayCanvas editor, requiring some kind of IO functionality via the editor scripts. The designer should also be able to load the JSON-file into the level editor again for editing and re-saving.
Finally, a programmer will use the JSON-files that the tool has created to populate the game world at runtime.

More powerful curve editing

More Powerful Curve Editing
(examples from Maya graph editor)...

  • Drag select
    CURVE_dragSelect

  • Select multiple points and move them
    CURVE_selectMoveMultiplePoints

  • Select the entire curve and move it up/down
    Curve_selectEntireCurve

  • Handles:
    Curve_handles

  • Specify the range of a curve instead of it always being between 0 and 1.
    As it is right now, you are not able to create overshoot animations.

Particle color / brightness differs between editor and runtime

Take a look at the attached screenshot. The particles appear brighter in the editor than they do in the game. This happens on all systems we've tested so far: desktop PC, Mac, and mobile phones (both Android and iOS).

Particle_color_issue

There's no light source in the scene and lighting is turned off in the settings on the particle system component. I've attached a screenshot with all the settings as well.

particle_settings

To get the runtime version to look right, we can increase the intensity, making the editor too bright. There should not be any difference between the two.

Pressing F2 no longer highlights the name field of the selected object

Description

Using PlayCanvas editor in Chrome v79. Pressing F2 on the keyboard no longer highlights the name field of the selected object. This was working fine until a couple of weeks ago. I believe this corresponds to an update to the editor.

Steps to Reproduce

  1. Open PlayCanvas editor in browser
  2. Select any object
  3. Press F2 on keyboard

Result:
Nothing happens.

Expected:
Name field of selected object becomes highlighted for editing.

Saving entity collapse/expanded state

Would be nice that when you collapse/expand entity groups in the editor, their open/close state would save so when you restart, the hierarchy stays the same. In addition to this, a "collapse all" and "expand all" button to open/close all entities recursively in a group would be nice!

The same goes for entity components, too. Would be nice if they retained their open/close state.

Import Assets from project A into project B (same mechanism as playcanvas store)

Currently it is not convenient to copy assets from one project to another.
Let’s say I have:

  • Project A with an HDRI environment
  • Project B with a Car

It would be great to be able to import the assets from project A into project B without reseting the materials settings etc. Or vice versa.

I have seen that Playcanvas store actually allows to do something very similar:
https://store.playcanvas.com/
Allowing you to import the files inside any of the playcanvas project within your account.

We would like to develop our own Private Store webpage (same as your store) listing all our projects hosted in playcanvas and let you import Projects assets into other projects.

Is there any script or method we could call in order to achieve this? Ideally without migrating projects outside from playcanvas.

Allow user to select GPU preference in project settings

In the WebGL specification, a powerPreference value can be passed when creating the WebGL context. Browsers (in particular, Safari and Chrome) have changed (or are changing) the default behavior to be low-power instead of high-performance.

We should expose a new property in the Project Settings panel: Power Preference. Tooltip could reuse the MDN docs for the property.

Open question: should the default value be default or high-performance? (I don't believe the default should be low-power). I'm tempted to suggest high-performance because this will result in fewer support contacts asking why app performance is lower than expected on certain platforms. Support contacts about battery consumption are likely to be less common, in my view. And in such a case, a developer just has to select a different option and republish.

Note that this should requite minimal or even no changes to the engine itself. It's an Editor task.

Extend the particle system

Particle system wishlist:
- Blend modes on colour tab (different blendmodes on top of alpha sprite basically (add, mult, overlay) now separate issue playcanvas/engine#2547
- Start scale on sprite now separate issue #217

  • Use sprites from texture atlas instead of single textures

*Edit: Split up this issue in common wish list and particle randomization (new issue)

Support Spine in UI Elements

Currently spine objects cannot be used in the UI, screen elements and the like. A lot of times in our games we have a little box with a character in the top left/right who gives instructions to the player. Othertimes we would like to have a little bit more freedom to be able to animate elements in screenspace. As of now, it is a bit of a pain to position spine objects to stay on screen, especially to scale them with different resolutions.

Leaving the forum post here for reference as well:
https://forum.playcanvas.com/t/spine-animations-in-ui/12446

Undo Shortcut is CTRL+Y on German Keyboards

Hello Team!

This one is no biggie but caused our 3DModels guy to work WITHOUT UNDO for a week.

He is new to the engine (just like me). He tried using CTRL+Z to undo but it didn’t work. He was so used to the fact that this Shortcut is undo that he thought this ‘feature’ wasn’t implemented. He didn’t look at the undo-icon on the lefthand side.

The problem being: we are germans and have decided to swap out z and y keys. QWERTZ you knowz?

CTRL+Y works great.

Maybe its something that is ez to fix. Cheers.

Editor view disappears on tab changes

Description

If I switch to another tab from PlayCanvas editor and get back to editor, editor view disappears. To fix that I click full screen button or resize all browser to fix it. That fixes issue, but for some reason it disappears and stays like this.

Steps to Reproduce

  1. Open PlayCanvas editor and open a scene.
  2. After few seconds change tab to another and wait on tab for a while.
  3. Come back to PlayCanvas editor, you'll see it displays gray background, that's all.

I think for some reason it turns idle mode and resizing make it work again. That issue started to occur 1 months ago. I use Macbook Pro 2017 and Chrome browser.

I believe in that Chrome kills canvas context to save up battery, I noticed this behavior on other applications too. When I get back to tab, onfocus function can trigger resizing and that can simply fix issue.

Here is a gif to show you process, (pause looping) :
https://gyazo.com/586bbba5337f0362498420e11c7833e7

FBX sampling rate expose

Currently 0.1 sec is sampling resolution, this is not enough for 30 fps animation. It results to a wrong motion of bones.

Change only visible after browser refresh

Description

If I add an entity with an element and I make an adjustment in the element, this adjustment is only visible after I refresh the browser. I experience that with several things.

Steps to Reproduce

  1. Create a entity and add a image element
  2. Image not visible until you refresh the browser
  3. Change the opacity of the image element
  4. Change not visible until you refresh the browser

Auto create / merge / destroy branches to improve collaboration

A big selling feature for using PlayCanvas is realtime collaboration - which assumes working in a shared branch. This gets difficult, especially for larger projects, as changes (to script, but also to scene ...) can break the branch for everybody while the work is in progress.

At the moment every change a user does in Editor is directly updated in server database. We could implement simple interface in Editor to change this behavior by adding a switch, allowing user to switch between 2 modes:

  1. Sync mode. As currently, every change would go to server.
  2. Isolated Mode. When user clicks on this, a branch would be silently created for the user, and all changes the user does would go to that branch, removing a risk of breaking main previous branch. When the user is happy with changes, the user would switch to Sync Mode again. At that point, a branch would be silently (unless conflict) integrated to previously active branch, and this temporary branch would be silently deleted.

It would probably be useful to Revert changes, which would delete this temporary branch without merging it to original branch.

This can already be done using branching, this is a proposal of simplified workflow.

More options for particle randomization

Extend the particle system to include more options for randomization:

  • Choose random colour on particle spawn (from specific user set selection of colours)
  • Choose random sprite in sprite sheet on particle spawn (not for animation purposes but for sprite variance within one particle system)
  • Choose random start scale (between min and max value)
  • Choose a random number of particles on particle spawn (between min and max values)

@ellt92

Copy entity position/rotate/size

Description

I think will be good if I can to copy some of entity properties like size, rotate or position.
As UX example: when right click on entity show:

Copy -> Entity
     -> Size
     -> Rotation
     -> Position

Camera/Game preview of app at different aspect ratios

It be great if the camera preview's aspect ratio can be changed to get a better idea on how the game would look without running the game and/or having a separate launch window open.

Perhaps even a separate game view?

image

Script Loading Order is not user friendly for large number of scripts

the Settings->Script Loading Order displays list of all user scripts to allow their sorting. This is hard to use if there is 100s of scripts in the project. Perhaps at least a search / filter functionality should be implemented.
Better option would be to only show scripts with modified order. By default only "Default" line would show, representing all scripts, which do not have implicit order specified. You can then Add Script, which adds new line for it. You can move it before or after Default, which means it runs before or after all other scripts. You can add more scripts you care about and order them in relation to Default and also other added scripts.

Bug with highlighting selected mesh

Description

Early when I click on model - target mesh is highligthing in "Mesh instances" list (orange border). Now it does not work. Its okey?

Video: on vimeo
Browsers: testing on Chrome 80.0 and Safari 13.0.3

Inherit layer from parent entity

Would it be possible to prompt a render layer change for the children of an entity, when you change the layer for the parent entity?
Maybe have the option to check on inherit render layer from parent on the individual entity?

Particles stay in the middle after changing the Emitter Extent parameters

It seems like my particles are staying in the middle of the screen when I change the Emitter Extent parameters.
I tried to toggle the component to off/on and that did the trick to extent the particles, but when I came back the next day it was back in the middle and the toggling did not work this time.

Support a wider stroke on text elements

The max setting (1) on the stroke option on the text element is quite tiny - especially when you look at it on a mobile screen.
image

It would be awesome if this was more like the stroke setting in Photoshop - which can go way broader:
TEXT_editingTool

Implement rendering to texture support into Editor

Rendering to texture can be set up using scripts easily, but it would be good to improve workflow of setting this up in Editor. Possible implementation:

  1. Create asset type "RenderTarget", which would let user set up rendering target and it's properties: resolution, format, depth format, texture filtering and similar
  2. Allow this to be assigned to materials as a texture (internally a texture is created for rendering to)
  3. Allow this to be assigned to a Camera so that the camera renders to it instead of the main framebuffer.

Line break in text element string field is broken

One can no longer use line breaks in the text editors string field.

Expected result:

  • When pressing Shift+Enter, I expect to introduce a line break.
  • When copy pasting text with a line break included from a text editor, i expect the line break to be transferred too.
  • When inserting two "spaces" I expect a line break to be created.

Support color gradients in UI elements

Instead of the basic colour widget in the UI element, could we have something like the colour widget from the particle system that allows us to define a gradient? And, of course, a way of setting the direction of the gradient?

We often need basic vertical or horisontal gradients in the UI so this would be very useful.

Alpha Test option disappears

Description

The Alpha Test option in Opacity settings of a material is not visible if you have selected multiple materials but with diffrent texture on it. I don’t know if this is a bug or feature.

Steps to Reproduce

  1. Select a material and you can find the Alpha Test option in the Opacity settings
  2. Select a second material with a diffrent texture and the Alpha Test option dissapears

Offset & tiling settings are not saved

Description

Any settings for "Offset & tiling" are not saved.

URL: Test project
Video: on vimeo
Browsers: testing on Chrome 80.0 and Safari 13.0.3

Steps to Reproduce

  1. Choose material
  2. Make some changes in "Offset & tiling"
  3. Click on another asset or reload page
  4. Check "Offset & tiling" changes

Version control: conflict-overlay in view differences is misaligned

Issue type: Text
Kind of issue: Overlap
Platform / Device: Chrome, Firefox

Issue summary:
When merging, and doing code reviews I use the view difference function to easily check new changes. Since a few days ago when I wanted to review some code I selected the changes since my last checkpoint and my first checkpoint. But then I noticed that the red, green and grey bars are on a different position then the lines that had been changed.
with a few lines of code it wasn't such an issue. but with large classes with multiple changes reading through the code became too confusing to read.
I tried changing to a different browser but I still had the same issue on firefox as I did on google chrome.

Screenshot of the issue:
image

Node-Based Shader Editor

Our artists are blocked by the technicalities of writing GLSL and have to turn to our programmers when they need custom visuals beyond what the built-in physical material is capable of. This makes our programmers a bottleneck in production.
We would prefer that our artists are self-reliant, working directly in the PlayCanvas editor as much as possible. This is why we think a visual, node-based shader editor would be a major improvement to their workflow.
This would also bring PlayCanvas up to par with competing engines in terms of material and shader creation capabilities.

Multiselect, then deselect - doesn't deselects in hierarchy.

Steps to Reproduce

  1. Create new project
  2. Select multiple entities
  3. Select any entity or deselect by clicking in viewport (not hierarchy)
    3b. Or select anything in assets panel, deselection will not be reflected in hierarchy

Issue

Selection change, is not reflected properly in hierarchy. It simply deselects single entity (last one that was selected), instead of all of them.

Editor broken in Edge

Throws exception on this line:

        constructor({ customUpdate, ...args } = {}) {

Outputs:

SCRIPT1028: SCRIPT1028: Expected identifier, string or number

Download multiple files from the Editor

If I select multiple files in Editor's Library, right click and do Download, only one file gets downloaded. Ideally all of them get downloaded (in zip?).

Built-in texture packer

It would be great if we could upload a bunch of individual textures, have PlayCanvas pack them in an atlas and generate all the sprite references automatically.
Currently, we have to use an external tool or do this manually. This can be quite destructive, and the result is a lot of wasted texture space.

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.