Rotating water
I want to try and make some gravity confusing map. My goal is to make a little room with water on the floor and rotate the entire room including the water so it is on the ceiling. I have been trying to do this but if I make a func_brush out of my water it doesn't work anymore.
What can I do to reach my goal or is this impossible?
Don't think there's other way...
change of plans then..tnx for the replies
It could be possible sir,
BenVlodgi wrote:
shouldn't water stay at the bottom anyway?
Yes, I meant 2 rooms, one with the water at the bottom of course; the worldportals at the ceiling of both rooms and connected. This way there could be the 'illusion' of water at the ceiling. The rotation effect is the difficult part, maybe this idea should be changed...
EDIT
I thought of a solution for the rotation effect
It can be faked with a point_viewcontrol tied to a func_door_rotating (or maybe a func_rotating) this way:
- You have the "normal" room (brushes, props, details, and whatever water at the bottom)
-
You have the 2 alternate rooms connected by worldportals. These rooms should be like this:
-
room 1 is half the 'normal' room of point 1, for example the upper half, but turned 180 degrees (what's on the ceiling in the normal room will be here at the floor level)
- room 2 is the bottom half of the 'normal' room of point 1, and of course it keeps the orientation.
-
each of these 2 rooms will have a linked_portal_door at their ceilings linked together, and their width and height values will be the size of the rooms' ceiling.
-
A point_viewcontrol entity at the entry to the normal room or wherever. This will be triggered as soon as the player enters the room and will become the player's eyes. It will also be triggered the func_door_rotating that the viewcontrol is tied to and the player "will see" the room rotating 180 degrees.
-
The player, in the meantime the rotation is having place, could be teleported to the fake couple of rooms. Specifically to the one which is now the bottom part, that is, room 1. This way the player will be in a room where he'll see at the floor level all stuff of first "normal" room's ceiling, and above him there will be water, the water of the "normal" room

NOTE: the point_viewcontrol can only be parented to certain entities; I haven't tried the func_door_rotating but I tried a func_door and it works. In the case of any issue, try parenting the viewcontrol to the func_door and then this latter one to the func_door_rotating* 
||> josepezdj wrote:
BenVlodgi wrote:
shouldn't water stay at the bottom anyway?
Yes, I meant 2 rooms, one with the water at the bottom of course; the worldportals at the ceiling of both rooms and connected. This way there could be the 'illusion' of water at the ceiling. The rotation effect is the difficult part, maybe this idea should be changed...
EDIT
I thought of a solution for the rotation effectIt can be faked with a point_viewcontrol tied to a func_door_rotating (or maybe a func_rotating) this way:
- You have the "normal" room (brushes, props, details, and whatever water at the bottom)
You have the 2 alternate rooms connected by worldportals. These rooms should be like this:
room 1 is half the 'normal' room of point 1, for example the upper half, but turned 180 degrees (what's on the ceiling in the normal room will be here at the floor level)
- room 2 is the bottom half of the 'normal' room of point 1, and of course it keeps the orientation.
each of these 2 rooms will have a linked_portal_door at their ceilings linked together, and their width and height values will be the size of the rooms' ceiling.
A point_viewcontrol entity at the entry to the normal room or wherever. This will be triggered as soon as the player enters the room and will become the player's eyes. It will also be triggered the func_door_rotating that the viewcontrol is tied to and the player "will see" the room rotating 180 degrees.
The player, in the meantime the rotation is having place, could be teleported to the fake couple of rooms. Specifically to the one which is now the bottom part, that is, room 1. This way the player will be in a room where he'll see at the floor level all stuff of first "normal" room's ceiling, and above him there will be water, the water of the "normal" room
NOTE: the point_viewcontrol can only be parented to certain entities; I haven't tried the func_door_rotating but I tried a func_door and it works. In the case of any issue, try parenting the viewcontrol to the func_door and then this latter one to the func_door_rotating*
||Thank you for the detailed description. I might try this out somewhere this week. I'm also having another problem when compiling the map if my water is on the ground:
error: material WATER/WATER_WELL_BENEATH doesn't have a $bottommaterialThis is a transparent water texture and I don't know how to get this one fixed and the texture appears black in the map.
LOL
Check one of the simple stock water textures:
Water
{
$forceexpensive 1
$normalmap "liquids/water_river_normal_sharp"
$flowmap "liquids/toxic_rep_flowmapr"
$flow_normaluvscale 160.0
$flow_worlduvscale 4
$flow_timeintervalinseconds 0.63
$flow_uvscrolldistance 0.1
$flow_bumpstrength 1.0
$flow_noise_texture "liquids/water_noise"
$flow_noise_scale 0.00082
$flow_debug 0
$basetexture "liquids/toxicslime_color"
$color_flow_uvscale 276
$color_flow_timeintervalinseconds 4.0
$color_flow_uvscrolldistance 0.11
$color_flow_lerpexp 0.98
$color_flow_displacebynormalstrength 0.007
$reflecttexture _rt_WaterReflection
$reflectamount "0.1"
$reflecttint "{ 190 205 205 }"
$reflectskyboxonly 0
$reflectonlymarkedentities 1
$abovewater 1
$bottommaterial "nature/toxicslime002a_beneath"
$fogenable 1
$fogstart 0
$fogend 100
$lightmapwaterfog 1
$fogcolor "{ 58 35 20 }"
$flashlighttint 1
"%compilewater" 1
"%tooltexture" "nature/water_frame01_normal"
$surfaceprop slime
}
There's a line with that parameter:
$bottommaterial "nature/toxicslime002a_beneath"
It's a required one. Put that same one: it's the typical browny fluid you see when you fall into the goo (that's the bottom material, the one that you see underneath the water surface when you sink in
)
Anyway, what's the rest of the content in your .vmt water material? There are required parameters... try to tweak a stock one so you don't miss any.
EDIT: Fixed everything myself for now 
- First of all, you have all of them into a packed file called pak01_dir.vpk located into portal 2/portal2 folder.
- That kind of files can be opened using GCFScape... Look into materials/nature (there you'll find all "toxicslimes" you see into your texture browser)
- You can extract the files you want from the .vpk file into a folder of your choice by right-clicking and then "Extract"
The func_door workaround doesn't work either.
Hmmm... let's check step by step:
-
I assume you can see what the point_viewcontrol shows if you don't parent it to anything, right?
-
Have you set anything to "look at" in the point_viewcontrol entity's properties? If not, add an info_target enmtity, name it and make the viewcontrol look at it.
-
Also let me know what flags are checked and which ones are not in the viewcontrol. Unchecked "Start at player" and "Follow player". Check "Freeze player" (you can still teleport him but he won't be able to break the sequenze you're creating).
-
Check how your func_rotating is working. For example, texture it (instead of using nodraw or invisible textures) so you can see what it does. Also try parenting a simple brush to it in order to trace its movement.
So thank you for the tip.
Now, when I run in the trigger, the screen got 'teleported' to the point_viewcontrol. Is it possible to make this smoother in any way?