EXP v1.4 - DECALS

Discussion in 'Experimental Features Discussion' started by Hummel-o-War, Dec 1, 2020.

  1. Hummel-o-War

    Hummel-o-War Administrator Staff Member Community Manager

    • Developer
    Joined:
    Jun 15, 2015
    Messages:
    5,509
    Likes Received:
    8,505
    Global info
    Q: What are DECALS?
    A: Decals are basically custom pictures and videos* that can be brought in game and used in a POI. If no link (from a file service) is used, the decal file is saved to a specific folder and there is a configuration file for the decal itself (width, transparency etc pp)

    Example: A wallpaper.
    upload_2020-11-29_17-18-58.png
    *Videos work the same way. See point E at the end of this howto.

    Note: Please only use with ADMINCOREs (CoreAdmin, CoreNPCAdmin, etc ) for now, as decals do NOT work with Structural Integrity and cannot be removed or destroyed in Survival. The will remain floating.

    How do I add decals for a POI?
    (applies to decals as local files, both for pictures and videos!)

    Note: the example below is made for a picture file. Using a video works similar.

    A. The Decal setting file
    1. Find a blueprint file on your scenarios prefabs folder, for example:
    BAO_CreativeLibrarySpace_Tut.epb
    2. Open Notepad or Editor and create a new file with the name: BAO_CreativeLibrarySpace_Tut.decals

    Note:
    - The Filenames needs to be IDENTICAL except the extention! This file is then used for settings and such.
    - Both files need to be in the scenarios prefabs folder, for example: ..\Empyrion - Galactic Survival\Content\Scenarios\Default Creative\Prefabs

    B. The Picture file
    1. Find a suitable picture file on your PC (extention *.png or *.jpg are allowed), for example
    empyrion-logo.png
    2. Copy the picture file to the the following folder in your game directory: ..\Empyrion - Galactic Survival\Content\Scenarios\Default Creative\SharedData\Content\Prefabs

    Note:
    - Swap 'Default Creative' in the example with your scenario name of course.
    - If the sub-folder (marked yellow) is not available in your scenario, you need to create it at first.

    C. Set the decal position (ingame)
    For using the picture as an ingame decal, you need to first get the decals placement position:

    1. Open the game and load Creative Mode
    2. Spawn the blueprint you want to add the decal to (remember step A1+2! )
    3. Find the spot you want to place the decal in.
    4. Point the mouse cursor to its approximate position. (= this will be the center of the decal position)
    5. Open the console and execute the following command: 'decals clip'

    This will copy the coordinates to the clipboard!

    6. Exit the game and open the .decal file, for example: BAO_CreativeLibrarySpace_Tut.decals
    7. Paste the content of the clipboard (CTRL + V)

    You then get something like this
    Code:
    [DecalName]
    -Pos=-3.293293,141.0327,-36.46106
    -Rot=333.4349,180,0
    -Size=1,1
    -Diffuse=file.png
    Note: This is only a suggested workflow. Theoretically you do not need to use 'decals clip' ingame, as you can also use the aformentioned data and place it in the .decals file of your blueprint. BUT in this case, the decals anchor ingame might be "somewhere".

    You can of course find a blocks position ingame, using the console command 'di' The position of the block your cursor is pointing at, is noted box. This coordinates can then be used with the decal setting. So you could add all your decals in the *.decals file and then add the coordinates later. Whatever fits your workflow.
    upload_2020-11-29_17-40-48.png

    D. Merge your picture with the blueprints decals file.

    After you have copied the code to the .decals file, you STILL need to tie your picture to this decals config to be shown ingame.

    1. In the decals file, find the line that says: 'Diffuse=file.png'
    2. Rename it to your own filename: 'Diffuse=empyrion-logo.png'
    3. Tab back in the game (the savegame you are currently using with step C1 and following) , open the console and execute: 'decals'

    Now, it is rinse and repeat: change the positon, logo or decal settings and reload the scene until you are satisfied.

    E. Additional decal settings.
    In addition to the basic position, rotation and size, you can use the following parameters.

    NOTE:
    - You can also specify a web url to download the decals from. Works for pictures (png / jpg) AND videos (mp4)
    - If there is a .epb file available Decals on structures get now saved into ../<gamename>/Shared/<structid>/decals.txt to be able to change existing decals manually using a text editor in a running savegame! (player must have "Save to Template" active for that structure)

    Code:
    [Caution]                           # define a custom name here
    -Pos=0.88,14.0125,1.14              # position of your decal in your POI.
    -Rot=90,128,1                       # rotation of your decal.
    -Size=8,8                           # dimension of your projected image; it is possible to use float numbers
    -Diffuse=CautionLowTemp.png         # diffuse image that can be jpg or png (with alpha channel). Make sure to keep your dimensions as small as possible due performance.
    -Normal=CautionLowTemp_n.png        # set a normal map of your image to give your image more depth
    -Emissive=CautionLowTemp_e.png      # set a different image to highlight the emissive parts of your image
    -EmissiveColor=5,0,0                # set r, g, b colors that should be emit color. Set > 1 to increase the bloom / emissive effect.
    -Mode=Transparent                   # [Transparent, Opaque, Cutout, Fade] Decal will be projected in the given size, slightly transparent.
    -Cull=false                         # default true. Set to false if you want the backside of the decal shown - vertically flipped
    -Color=1,0,0,1                      # r, g, b,a : set tint color/transparency; Example: 1,0,0,1 = red + 100% transparency
    -ColliderMode=NoCollision           # NoCollision|Collision|Off : optional colliders to the decal.
    -Video=VideoName.mp4                # Show a mp4 video instead of a texture. Please use responsible as this can affect performance!
    -Specular=image                     # png file to control the specular shader
    -Glossiness: [0-1]
    -Video=VideoName.mp4                # Show a mp4 video instead of a texture. Please use responsible as this can affect performance!
    -Asset=@assetbundle/objectname      # Allowing to add Unity GameObjects as decals (models, particle effects, etc)
    -Audio=<filename>                   # ogg and wav supported
    -AudioVolume=<0 - 1>
    -AudioMinMaxDistance=<min>,<max>
    -AudioPlayMode=Single|Loop
    -AudioDoppler=true|false            # Switch off the doppler level on a decal (default true) to avoid any pitch change when approaching an audio decal with speed.
    
    DecalGun
    tba
     
    #1
    Last edited by a moderator: Jan 14, 2021
    Ephoie and Kassonnade like this.
  2. Hummel-o-War

    Hummel-o-War Administrator Staff Member Community Manager

    • Developer
    Joined:
    Jun 15, 2015
    Messages:
    5,509
    Likes Received:
    8,505
    Q: Is there a limit for the amount of decals per POI?
    A: Currently there is no hard limit, but the more decals, the higher the performance drain of the POI.

    Q: Is there a limit for the size of the decal?
    A. No, but same here: The larger, the more performance drain!

    Q: Can decals be used in moving POI (freighters, OPV) as well?
    A: Yes.

    Q: Do decals work in MP as well?
    A: Yes.

    Q: Can players place decals in their Blueprints and spawn them (on servers)?
    A. No.

    Q: Is there an easier way to move the position of the decal? (f.ex. ingame with Build Helper menu?)
    A: No, there is currently no other way, due to the nature of the addition.
     
    #2
    Ephoie and Kassonnade like this.
  3. Myrmidon

    Myrmidon Rear Admiral

    Joined:
    Mar 26, 2016
    Messages:
    1,729
    Likes Received:
    2,058
    But....why? A 1/3 of the above questions refer to performance hit by the (increased) usage of decals. Less is more here, but adding this and that feature that impacts performance is not good, usually. At least give us a switch to turn them off when not needed. I do not want the floor plan of an ignored POI I do not care about (or have already visit), but need to fly by, eat chunks of my GPUs performance. Please.
     
    #3
    nottrox ¯\ (ツ) /¯ likes this.
  4. Kassonnade

    Kassonnade Rear Admiral

    Joined:
    May 13, 2017
    Messages:
    2,816
    Likes Received:
    4,111
    This is totally unexpected, and really great. Can't wait to try silly things now. :)

    Hiding secret passages... glowing neons anywhere we want... 3d puzzles with transparency and multilayering... foliage... This basically allows 1-block POIs to hold whatever we can think of that can be only image-based. So much cheaper performance-wise than having to use blocks + generator + fuel to support some LCD that can only show text in limited dimensions and angles.
     
    #4
    Last edited: Dec 2, 2020
    Lyceq and Ephoie like this.
  5. ravien_ff

    ravien_ff Rear Admiral

    Joined:
    Oct 22, 2017
    Messages:
    6,423
    Likes Received:
    12,028
    This is awesome! Imagine, in-game advertisements for the various NPC factions or traders, signs, docking guides, story, etc. So much potential here!

    Performance is a factor in everything. They give the same warnings about lights, LCDs, spawners, size class, etc. Performance will be fine on the default game, and what people do on their own scenarios is their business. :D
     
    #5
  6. Kassonnade

    Kassonnade Rear Admiral

    Joined:
    May 13, 2017
    Messages:
    2,816
    Likes Received:
    4,111
    Fake blocks on floors... pipes and wiring overlays... all kinds of tech screens... spider webs in caves... energy rays between devices... beacons... WATERFALLS... pool surfaces... a zillion gimmicks !
     
    #6
    Track Driver, Ephoie, Lyceq and 4 others like this.
  7. ravien_ff

    ravien_ff Rear Admiral

    Joined:
    Oct 22, 2017
    Messages:
    6,423
    Likes Received:
    12,028
    That's clever. :D
     
    #7
  8. Myrmidon

    Myrmidon Rear Admiral

    Joined:
    Mar 26, 2016
    Messages:
    1,729
    Likes Received:
    2,058
    Yeah, I 've seen the default game's performance. Just visit any vanilla planet with plenty ore deposits and hit that scanner. From any high FPS you may have you go down bellow 30 after scan ends. Let the timer expire and the labels vanish from HUD and you go back to top FPS.
     
    #8
    Last edited: Dec 4, 2020
  9. Kassonnade

    Kassonnade Rear Admiral

    Joined:
    May 13, 2017
    Messages:
    2,816
    Likes Received:
    4,111
    This is working well, and I hope this feature will be enhanced in some ways in the near future, if not too difficult to do.

    It could be practical to be able to delete decals / not render them via a trigger (only once would be ok), for situations where they may not be needed anymore.

    It could be very practical to have collision enabled, even with restrictions.

    It could be very cool if the "image" on the decal could be panned in 1 or both axis (choice) of the canvas . This could be a simple offset of the initial position at each redraw, and "speed" could be modified (+/- big offset).

    I have done some tests with lots of huge images and transparency, and I did not see noticeable impact on performance. As a comparison, the game suffers much bigger performance degradation when close to water.
     
    #9
    Ephoie likes this.
  10. ravien_ff

    ravien_ff Rear Admiral

    Joined:
    Oct 22, 2017
    Messages:
    6,423
    Likes Received:
    12,028
    There are some really cool things you can do with this!
    I think the scenario upload limit is going to need to be increased though. :D

    20201204002329_1.jpg 20201204001716_1.jpg 20201204001702_1.jpg 20201203235736_1.jpg 20201203224754_1.jpg 20201203224233_1.jpg 20201203223503_1.jpg
     
    #10
  11. Kassonnade

    Kassonnade Rear Admiral

    Joined:
    May 13, 2017
    Messages:
    2,816
    Likes Received:
    4,111
    One thing I forgot...

    In some old editors, "animated textures" were done very simply : just a series of images that are loaded sequentially, all the same size. That would surely be doable here, even with restrictions (ex. powers of 2 image sizes). Then players could simply put all images with corresponding code in the same "decals" file / shared data folder, and the only thing to add to the existing feature is to delete one image and load the next one at same place with same parameters / loop back to image 1 or stop on specific image.

    Just a simple "switch" like " isAnimated" and "isLastFrame" for example, to add in the image parameters.

    And if we can have a "isCollider" then that would open garage doors on creative content...
     
    #11
    Last edited: Dec 4, 2020
    Ephoie likes this.
  12. ASTIC

    ASTIC Captain

    Joined:
    Dec 11, 2016
    Messages:
    993
    Likes Received:
    707
    It would be great if these decals could also be set and changed via API. Then you could build mods with "real" radar maps, speedometers etc. in mods and bypass all the limitations of LCDs
     
    #12
  13. Hummel-o-War

    Hummel-o-War Administrator Staff Member Community Manager

    • Developer
    Joined:
    Jun 15, 2015
    Messages:
    5,509
    Likes Received:
    8,505
    /updated paragraph E with new available additions/parameters
     
    #13
    Ephoie, ravien_ff and Kassonnade like this.
  14. Kassonnade

    Kassonnade Rear Admiral

    Joined:
    May 13, 2017
    Messages:
    2,816
    Likes Received:
    4,111
    I have to say this is one crazy addition to the game.

    I have to ask for this, else I will never forgive myself for not asking : is it possible to make the planes/ decals "airtight" ? Just like "collision" this would be used at the designer's own risk, of course, but that would be supremely cool and practical.
     
    #14
    Ephoie likes this.
  15. Ralph_on_me

    Ralph_on_me Lieutenant

    Joined:
    Jan 22, 2020
    Messages:
    16
    Likes Received:
    14
    I love this, but please tie it to the LCD projector. Then we can move and scale it in game.
     
    #15
  16. Kassonnade

    Kassonnade Rear Admiral

    Joined:
    May 13, 2017
    Messages:
    2,816
    Likes Received:
    4,111
    You can't be serious...
     
    #16
    Ephoie likes this.
  17. ravien_ff

    ravien_ff Rear Admiral

    Joined:
    Oct 22, 2017
    Messages:
    6,423
    Likes Received:
    12,028
    Unfortunately it probably needs to stay as an admin only option.
    Otherwise people could post very inappropriate pictures or videos on a multiplayer server.
     
    #17
    Ephoie, Kassonnade and Myrmidon like this.
  18. Myrmidon

    Myrmidon Rear Admiral

    Joined:
    Mar 26, 2016
    Messages:
    1,729
    Likes Received:
    2,058
    Good point.....Very critical too.
     
    #18
    Ephoie and Kassonnade like this.
  19. Ralph_on_me

    Ralph_on_me Lieutenant

    Joined:
    Jan 22, 2020
    Messages:
    16
    Likes Received:
    14
    If the images have to be on the server, then the admin still has control over those images.
     
    #19
    Ephoie likes this.
  20. Kassonnade

    Kassonnade Rear Admiral

    Joined:
    May 13, 2017
    Messages:
    2,816
    Likes Received:
    4,111
    Well the main problem I was thinking of was not related to what players might put as "images" but more regarding the fact that LCD screens are devices, and Decals are more related to "deco items" attached to a structure. Decals have no hitpoints for damage, they can be placed anywhere unlike blocks that require a whole 2x2x2 meters cubic space, like the LCD does. Decals also have specific display properties (transparency, bump maps, collision on/ off) that can not be "merged" with the usual blocks properties like the ones we can see in the config files.

    The LCD also displays fonts/ characters, while the Decals are bitmaps, which are two very different "formats" for the game engine (and code) to manage. So in order to make decals available for LCD display would surely require a lot more work, for no real benefit apart ease of manipulation/ placement from the LCD interface.

    Players can place Decals very precisely on the same "plane" as a LCD screen right now, and can refine the positioning by al-tabbing from the game to the decals settings file (in the appropriate savegame folder = decals.txt) and back to the game after saving changes in the txt file. This process is relatively quick and efficient, and some tricks can be used like an image with a grid on it, that players can use to see how values in the decals settings file affect the decal in game, to know the magnitude of numbers to use to move/ rotate the decals. When the position is ok, simply replace the "fake" grid image with the real one, refresh decals (console = decals reload) and voilà.

    Just as additional info : 1 unit in the decals settings file = 1 BA/CV block size, or 2 meters. So to move a decal by a 2 meter distance the value in the settings file has to be changed by 1 unit. When looking at the Debug Info panel in game, measures are given in meters, so we have to keep this in mind to get proper positioning.

    .

    .
     
    #20

Share This Page