4.129: Sky Isle Escape: Level Layout [Update 3]

[Update 3: 06/12/21]
Most features added, plus now working on artistic concept, see further ahead.

[Update 05/12/21]

New Function and additional feature below.

[UPDATE]

Got the Code Working, see response further on.

I am planning on building upon my first level layout from the beginning of this section. You can see the original pictures here.

1. Preliminary Plans:

Basic ideas I want to work out

I raised my camera height to 110- a number someone suggested in the Unreal Forums here. It won’t change the size of the sphere, mind you, so I expect the physics to act accordingly, but it also means I will not be hugging the floor either. If I need to, I will change the size by a little, later.

Main Plan:
1. 5 doors that can be opened by pressure triggers
~~2. 4 triggers to open them ~~
3. (One door to rule them all, and in the darkness bind them…)
~~3. You need to trigger them in the right sequence to get to the last floor. ~~
4. Hope I can get it working…

I am not going to worry about the aesthetic details here, I just want working code: doors that open with certain triggers, and triggers that open certain doors. Since some triggers will effect the same doors as other triggers, I will need to create interior on/off switches, but I will also need to create code to protect my door and trigger codes so to avoid crashes. Perhaps I could do a log of some sort to catch this?

2. Extra Ideas I may attempt

Not going to attempt Anymore.

Perhaps I can expose my trigger’s door code so I can select my doors in the editor?

Side Hopefuls:
1. Place in a basic terminal or two.

Purpose?
a. As a quick review of the last section.
b. As a means to notify the player on what to do
c. Give a reason for doing it with story filler.
d. To see if I can do it.

See you on the other side…

3. Pictures

Basic Layout

Basic Level Layout:



![BasicLayout3|666x500, 75%](upload://kBCnt8F1sBqZHYgrCZJen2WVY8Q.jpeg

1 Like

I love this level design. Reminds me of something I made like this a long time ago.

1 Like

[Update 1: Working Seperate Door Options]

Issues resolved and basics working

After some trial and error, I got my door triggers to work. I can still trigger on and off the old door trigger (i.e. the one we worked on in class), canceling the effect of the others.

Features of the triggers?

  1. Three seperate triggers: Open, Close, CancelClose
  2. These three are exposed, so any door with the OpenDoor component can set them
  3. Not all three have to be set. But the close door will not shut a door, so if have a door already open in the game without code, it will not change it. For all intents and purposes, it would be treated as a close door, and the open door could close it (by changing the yaw swing)
  4. Cancel close door can be turned on and off.
  5. Allows for different doors to be triggered by the same trigger and other triggers (Up to three), allowing for some puzzle complexity.
  6. It is all pressure plate type triggers.

I was originally trying to do it all with Bools. This did not work at all. I set them in the header and they did not carry over, nor did they switch from false or true when I asked them (kindly) to.

Instead I played with the TotalMassOfActor and the set TotalMass to open the door. I made three functions: Open, Close, Cancel TotalMassOfACtor. I did this because I did not know how to flip between them in the original function if it were possible to do.

After this it came down to if/else statements: The door will open if the close trigger is not over the set weight, otherwise it will do nothing, unless the Cancel trigger meets the requirements. The door will close if it meets the requirements, or stay closed and not open, unless the Cancel trigger requirements are met.

Thus I only needed two main if statements: One for open, plus its exceptions, and one for closed. The Cancel was dispersed between the two as necessary.

Then I placed all this in an else statement so that if the Original OpenDoor code is not ticked in the UE editor, this more complex code will run.

Take a Look:

[Update 2: Working Pressure Plates and Exact Weight Feature]

Challenges and Things Completed

I now have two functions completed and edited according to my needs:

  1. Pressure Plates: I have an actual Pressure Plate component that animates the actors if an object steps on it. Since I only exposed the Z (I could expose more for some interesting puzzles), it will only go up or down. Note that I said “up” as well. So even though it can animate the pressure plate pressure going down, it can now be a platform that rises up when enough weight is on it. I have yet to add audio to it, but a simple copy and paste from the old OpenDoor Component will do the trick.
  • This was originally only for aesthetic reasons because I could not stand the idea of having an invisible pressure plate. I wanted something, anything, that moved in order to indicate that something indeed had happened. I accidently set the z location the wrong way and my player actor went up… cool! Can I use this? Could I not expose the other axis to my advantage… later, keep on track!
    .
  • I also have an idea of creating an on/off weight switch that you can use (or not), where if you walk on it, it will go up (or down) but then go the opposite way if you step off of it then back on. I suspect I would have to drag the trigger box along with it? But how? The quick answer is not and simply make the trigger box big? Regardless, that is in the “Future Edition” category, and should be left there for the time being.
  1. Exact Weight Option: The OpenDoor component and the Pressure component include an “Exact Weight” Option. The designer may now choose if they want a certain pressure plate or door react only to the exact amount of weight present in the trigger.
  • I wanted it so that I could designate a very specific item, like a chess piece of a certain size, and if placed on the right square would do something, while nothing else would be able to. This will add more variety to the pressure plate and door puzzle.

My next step is I want to modify the Grabber. I find it rather unwieldy right now, with my cubes swinging around in a haphazard fashion.

Here is my progress so far:

UPDATE 3: 06/12/21

I have managed to overcome a few hurdles:

  1. I expanded my door and pressure plate triggers. I even broke some of them up into new components so that the code would not fight with each other. Some sequencing problems, like the interaction of the various means of rotation, were mostly fixed.

  2. Pitch: For some reason one can do a direct “GetActorRotation” with Yaw and Roll. But Pitch, no. It twitches like a mad man, and just as violent if your pawn runs into it. It results in an amusing jolt that launches your pawn into the air and far away. For a Short-term fix I simply limited the pitch to 89.9f and -89.9f, since at exactly 90f either way it will begin twitching. But by all means, use the twitch if you find an in-game use.
    @DanM Was kind enough to point me in the right direction utilizing a relative rotation instead. Something I will consider as an update.

  3. Floats: Beware trying to compare floats. You cannot do straight comparison. However, you can do a “close enough” one. FMath::IsNearlyEqual(Float 1, Float 2, Margin of error (ex. 0.01f)) saved me alot of headache and heart ache.

  4. Floating Rocks: Using my new and improved Pressure Plates, I have rocks that float (or rather stay still in the air, I have not actually created a bobbing up and down code), but when you go the right spot, the come down and create a path for you to walk on.

  5. All doors now have triggers, and I have a set of stairs that come out of the ground.

  6. Terminals: I am disregarding all in game terminals for now. If I want to complete this project in the near future if not this month, this has to go. Nice idea for later, not practical now.

  7. I have made an attempt to import a Blender model into UE with some success.

  8. Now I am working on Aesthetics, to give it a more complete look.

With regards to point 5 I now have a few more hurdles:

  1. Light: When I build my scene, the lighting on a few meshes do not actually show through. They have turned black. I have not figured out how to fix this as of yet, but that is on my to-do list. First things first, I want a basic, but eye appealing scene, flaws of no flaws.

  2. Fire: I places lights around some burnt logs of wood, but the lighting is now really working. This may be perhaps for the same reason why I cannot get some of my materials to light up in general.

  3. Blender: My blender assets of come through, but not as well as I would like. My models are producing many texture nullpoints and errors. Maybe this is behind some of my lighting issues for some reason. Regardless, I have not figured out how to properly export blender to UE, and thus far the course has not really delved deeply into that topic. I have done some superficial research, but nothing worth noting.

  4. Ball Issues: My ball pawn is not as attached as I want it to. That is, It can detach from the camera, and then roll of somewhere for some reason, But I can still trigger doors, but so can the ball if it decides to roll off.

Visuals:
Front:


Overview:

Doors and Water:

Further Back, Why is there a stove? Lets look:

Kitchen and “Liquid Grains” (Okay, I did not have a food asset pack, so I had to use what I had…):

Exporing the Kitchen:

Upper Level and Floating Blocks:

Watery Stairs rise from the muck:

Mid Upper Level, with computer pillars, comfy chairs on hard stone, with the main terminal sitting and insetting in gold.

Lower Development:

Floaty Blocks Video:

https://vimeo.com/562256459

Privacy & Terms