Jump to content

Oliver Hope

Creator
  • Content Count

    374
  • Joined

  • Last visited

Everything posted by Oliver Hope

  1. This tutorial will show you how to use the BTH building aids mirror tool to mirror a group of entities across a plane. This is one of the more powerful tools IMO, so stick through the scary maths language builders, I believe in you! BTH building aids main page. Video Version Coming soon? Hopefully? Introducing the problem Before we get into the tutorial let's look at an example of where this is useful and some possibly simpler solutions. Lets look at this greenhouse, if we want to mirror the roof and posts it is easy to select them, duplicate, rotate 180o on the y-axis (green) and reposition it. That was easy but its not always as simple as rotating around an axis. Lets take a look at a boat hull made by the talented @Yo HasLEGO which I will be using to demonstrate using the mirror tools. Here we can see one-half of the hull. If we try to rotate as in the previous example, it doesn't matter what axis we rotate it on, we won't be able to mirror it. You could try rotating each layer separately, this works okay for the top layer, there is just one block at the stern that is problematic but that could be fixed manually fairly easily. However, as soon as we go further down the hull where there are more curves, this method really falls apart. The mirror Tool Let's see how to use the mirror tool to make mirroring this boat hull possible. There are 2 mirror tools one camed 'Mirror' and the other named 'Mirror templates enabled'. Mirroring all the entities is not a simple process so a few complex parameters are required to use the 1st option, however, I have created a bunch of templates for commonly used entities to make it much easier to use. I'll first show how to use the option with templates enabled. Mirroring with Templates Step 1 Create a group with all the entities you want to mirror (this just makes selecting them easier) Step 2 Place the mirror tool in position, the entities will be reflected across the trigger zone plane (the local XY plane of the trigger zone) Step 3 Add all entities of a single type to the entity label. (Use ctrl double click to select all entities of a type). Step 4 Open the script in the label (Use shift + alt + double click to quickly open a script in a group), select the tile in the 'entity mirror template' parameter and select the block shape from the drop-down list. The dimensions are given in XYZ order and are multiples of 0.375, ie the 2x1x2 block is an entity with the dimension of 0.75x0.375x0.75. (Side note, Iv been checking through the templates and I seem to have made a mistake with some of the formats but they still kinda work, ill try fix them at some point) The entities I have selected in the above image are 2x1x4 so I have selected this template. Step 5 Repeat steps 2 - 4 with each different entity type in your build. There are cases where you can use the same mirror tool for different entity types, see important notes point 1. Step 6 Test your world to check that everything is generated correctly. See the following tutorial to learn how to create a composition of the generated section and use it in your world. Using generated structures (video tutorial) If you have sharp eyes you will notice I haven't done the sloped blocks at the end of the boat, oops. @Yo HasLEGO was then able to bring both sides of the hull together for his catamaran, looks how great it looks! (Still a WIP) Important notes The templates are based on the wooden blocks, most entities of the same shape have the same origin and orientation and therefore they can be mirrored using the same mirror tool. For example: However, some have different orientations and most of the time this will be problematic: So what happens if there isn't a template for a block I want to use? This is where the other Mirror tool comes into play. Advanced Mirror Tool This tool is very similar to the previous one, the only difference is that you need to provide an entity centre offset and an entity mirror plane normal. These parameters can be found on the entity label in the mirror group. Do the same steps described above but instead of step 4 follow the instructions below. Entity Center This is a vector describing where the centre of the entity is relative to the entity's origin. NB: Ensure the vector is in the local space of the entity and remember to use minus for direction. Here is an example using a simple 2x1x4 block (there is already a template for this, but it's easy to demonstrate on) Entity mirror plane normal This one is a little more complex but bare with me. We need to find a plane over which the entity is symmetrical, some objects have multiple planes, you can use any of them. This block is asymmetric on the XY plane, notice how the x and y-axis are parallel to the orange plane, this is why it's called the XY plane. It's also symmetric about the XZ plane and YZ plane. The parameter asks for a normal to the plane, in maths a normal is a vector ('arrow') that is perpendicular to a plane, in the first example we can see that the z-axis is perpendicular to the plane therefore the normal is 0,0,1 ( it could also be (0,0,456) or (0,0,-87) but let's keep it normal, pun very much intended.) NB: As with the entity centre remember to do everything in the local space relative to the entity. How about a more complex example. This block is not symmetric about either of the 3 basic plans (XY, XZ, YZ), however, it is about this plane at a 45-degree angle. To find a normal to this plane imagine a perpendicular arrow and what the coordinates of that arrowhead must be. In this terrible paint image the black arrow is the normal. A normal vector is a direction vector therefore its position is irrelevant, note how I have moved the origin but kept the same orientation. Remember that if any entity types have the same entity centre offset AND entity mirror plane normal you can use the same mirror tool for both those entity types a good example of this is these two wall signs. A few examples of entities that do not have a symmetry plane, note that you may be able to get satisfactory examples using the closest plane.
  2. Oliver Hope

    [NEW]Useful Text Functions

    Hey all Please Note: I discovered a bad bug, if any of your RGB values are less then 10 you wont get the color you expect this bug has been fixed and I updated the download on the 13/01/2019. Inside this global storage are 4 instructions to make customizing text easy as pie! It will work for any kind of text output : console, UI, bubble and warning text. TEXT_FUNCTIONS 2.0.zip Just place the composition down in any scenario and you can access the instructions from any game logic in that scenario. In these example i will just be writing to console on game start because its the easiest, but of course you can use them anywhere else. Set Colour - You can set the color of text with this instruction. The first argument is for your text the second one is for the color. NOTE: The alpha sets the transparency of text with 255 being completely opaque and 0 being invisible. here you can see the output. Bold - This instruction makes text bold. Just chuck your text in ; ) Italic - This instruction makes text italic Same as Bold, just put your text in. Skip lines - Use this instruction to make spaces between your lines or just go to the next line. The first and last argument is for your text and the second one is for the amount of lines to skip, leave as 0 if you just want to go the next line. Now of course these all can be used in conjunction with each other. New features as of 20/4/2019 for the new functions i am not providing any pictures as i feel they are quite self explainatory especiely if you understand the older functions. Size - This function changes the size of text: The first argument is for your text and the second is for size as a number. Format List - takes a list and formats it( This function currently doesnt work properly due to what i believe is an ylands bug) argument NO 1 is for your list, it must be seperated by a character eg " ; " argument NO 2 is for that same seperator There are also two other instructions which are used in within the colour one; Decimal to Hexdecimal takes a decimal as an argument and returns the equavelent hexdecimal and Remainder which takes a numerator and denominator as arguments and returns the remainder. Feel free to sure these in other circumstance. Note: im trying to get this onto the workshop but having some problems with that so for now your going to have to extract the file and insert it into the compositions folder. The folder can be found at C:\Program Files (x86)\Steam\userdata\xyz\abc\remote\Compositions (xyz and abc are a list of number that are different for each user so you just have to look throught them all, or just search .ycomp in userdata to find the folder with compositions in it (i recommend pinning the folder when you find it)) If you need any help or have suggestions reply to this post or send me a DM. TEXT_FUNCTIONS.zip TEXT_FUNCTIONS.zip
  3. Oliver Hope

    [NEW]Useful Text Functions

    Do you mean in terms of getting it implemented properly in the game?
  4. Here shall I, Oliver, present my progress on my season 2 competition entry. I barely know what I am doing but it is going to involve steampunkness, adventure, perhaps a little puzzle, airships, floating houses and probably a lot of frustration on my end. Oh yeah, let's not forget the flying outhouse.
  5. Oliver Hope

    Fallout 4: Vault-Tec Modular Blueprint Set Development

    You can! there is a game logic for this I cant remember what its called of the top of my head but if you look though them it should be fairly obvious, something like 'audio library' Also this project is looking absolutely stunning!
  6. Oliver Hope

    Can YLands allow me to do these three things?

    All of these are possible however you wont be able to integrate the crafting recipes into the standard crafting menu, it would have to be some sort of custom system
  7. Oliver Hope

    What if Ylands was an RTS...

    Very clean box select! I like it
  8. Oliver Hope

    Is there no way to find group position?

    As far as I know there is no way to get the group position property (as the warning says. yeah its weird but consider the get position tile expects an entity not a group). My workaround for this is to create entity wield(s) and then group the entity wield(s), then you can get the position from the entity wield. If I remember correctly you need to use the Translate Position tile to get the position with offset of 0,0,0. (regular get position just returns entity wield position relative to the group). We need more tools for working with groups.
  9. Oliver Hope

    changing text color on the text channel

    Hi am I correct that you eventually got this to work with our help on discord?
  10. Oliver Hope

    BTH laser measure tool

    BTH Building aids main page Video Tutorial Overview The Broccoli Tree House laser measuring tools enable you to measure the exact size of entities and the distance between 2 surfaces. They also work with terrain. Set up the Tools Inwards Measure Create a copy of the inwards laser measure. Position and scale it so that whatever you want to measure in between it. Ensure that there is nothing else inside the 'laser beam'. Good: Bad: Outwards Measure Create a copy of the outwards laser measure. Position and scale it between to surfaces that you want to measure the distance between. Ensure that the 'laser beam' passes through both surfaces. Good: Bad: Measure Instructions found under Laser measure. Paramaters (name - type - info) Laser measure - game logic - outwards/inwards laser measure trigger zone Returns the distance Description Returns the distance depending on which measure type was used Paramaters (name - type - info) Laser measure - game logic - outwards/inwards laser measure trigger zone Returns the distance Description Returns the distance depending on which measure type was used, and then deletes the trigger zone.
  11. @Houp I just checked seems to be working as you say it should. Guess I just didn't put 2 and 2 together when I ran into this 'issue'
  12. The flint, stone and stick entities(there may be others that I haven't noticed) in the object brush presets are set to unpickable. This doesn't really make much sense as in explore world these are available to be picked up. I think the default should be pickable. Maybe this was intentional but it doesn't make much sense to me.
  13. Oliver Hope

    ART CONTEST

    these are cute! don't be ashamed
  14. Oliver Hope

    ART CONTEST

    Here are my 2 pieces. 'Duck Family' and not sure of a title for the second one, maybe 'Safety first'
  15. Oliver Hope

    ART CONTEST

    2 originals submitted! and maybe a third coming if inspiration hits me. Looking forward to see what everyone has made
  16. Oliver Hope

    Dev Diary #210 Sail-abrate good times, come on!

    hmmmmmm news to me. maybe they did some fancy stuff
  17. Oliver Hope

    Dev Diary #210 Sail-abrate good times, come on!

    @spiritchaser28 Atm ships are one big weld so I don't think you are going to be able to damage separate entities. Although containers cannot be welded so maybe they are handled differently 🤔
  18. Oliver Hope

    ART CONTEST

    will it go through some proccess to make it low poly? I would imagine a high res image would look very out of place in ylands... EDIT: I guess this isn't really best way to ask my question as you have already kind of answered it. More what I'm wondering is what kind of process it will go though to be adapted.
  19. Oliver Hope

    ART CONTEST

    ooo, I needed some motivation to pick up a paintbrush again. Can we get a bit more of an idea of how its going to be used, and how it will be transferred into ylands, to help guide creating the artwork?
  20. Oliver Hope

    Dev Diary #208 Hey there, Ylanders!

    Also for PVP!
  21. Oliver Hope

    More Decorations

    oh I didnt know that. I just feel like there should be some consistency so maybe just add seeds for cave plants. nice thing about a trowel (or maybe an existing tool could be used ie shovel) is you could get the plants already grown. and yeah there are enough things to give you grass, but consistency...?
  22. Oliver Hope

    More Decorations

    I guess there are a few ways of doing this. You could pick up the item and then craft it into grass if you need it or there could be a special tool (garden trowel?) used to pick up the whole plant. I think the latter would be best.
  23. @spiritchaser28 They imply that they've created worlds and saving hasn't worked so they are probably running a virtual windows/mac machine.
  24. Oliver Hope

    SlowFollow animation

    haha yeah, I agree, I made a telescope with it and the zoom is not great. I made a request for smaller FOV values.
×