Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Water Volume
Esta función se encuentra enVista previay sujeto a cambios. |
Open 3D Engine (O3DE), el sucesor de Lumberyard, ya está disponible en Developer Preview. Descargar O3DE |
Puede utilizar el componente Water Volume para agregar masas de agua pequeñas o medianas en su nivel. Utilice las siguientes propiedades para ajustar el volumen de los atributos físicos del agua, su estética y sus interacciones complejas.
Para utilizar el componente Water Volume, debe habilitar la gema Water para su proyecto de juego y volver a compilar el proyecto. Para obtener más información, consulte Habilitación de gemas.
Temas
Propiedades del componente Water Volume
El componente Water Volume incluye las siguientes propiedades:
- Material
-
Especifica el material de agua que se ha de usar. El material debe tener agregado el sombreador Water (Agua).
- Minimum Spec
-
Establece la especificación de motor mínima para que el volumen realice la representación.
Valor predeterminado: Baja
- Surface U Scale
-
Especifica cuánto extender en mosaico la superficie del agua en el eje U.
Valor predeterminado:
1.0
Rango: de
0.0
a∞
(infinito) - Surface V Scale
-
Especifica cuánto extender en mosaico la superficie del agua en el eje V.
Valor predeterminado:
1.0
Rango: de
0.0
a∞
- View Distance Multiplier
-
Ajusta la distancia de vista máxima. El valor predeterminado es 1.0. Para especificar una vista de visualización máxima que sea un 10 % más profunda que el valor predeterminado, use 1,1.
Valor predeterminado:
1.0
Rango: de
0.0
a∞
Fog
- Density
-
Establece la densidad de la niebla del agua.
Valor predeterminado:
0.5
Rango: de
0.0
a∞
- Color
-
Establece el color de la niebla del agua.
Valor predeterminado: Azul intenso (RGB 0.005, 0,01, 0.02)
- Color Multiplier
-
Multiplica este valor por el parámetro Color para producir el color de niebla final.
Valor predeterminado:
1.0
Rango: de
0.0
a∞
- Color Affected by Sun
-
Determina si el color del cielo afecta al color de la niebla del agua. Esta propiedad es útil para los volúmenes de agua en exteriores.
Valor predeterminado: True
- Shadowing (Sombreado)
-
Especifica cuánto afectan las sombras al color de la niebla del agua.
Valor predeterminado:
0.5
Rango: de
0.0
a1
- Cap at Volume Depth
-
Determina si se representa la niebla cuando el jugador está bajo el volumen.
Valor predeterminado: Falso
Caustics
- Habilitado
-
Habilita efectos cáusticos del agua.
Valor predeterminado: True
- Intensity
-
Afecta a la luminosidad y la visibilidad de los efectos cáusticos.
Valor predeterminado:
1.0
Rango: de
0.0
a∞
- Tiling (Creación de mosaicos)
-
Afecta a la cantidad de efectos cáusticos que se representan.
Valor predeterminado:
1.0
Rango: de
0.0
a∞
- Height
-
Determina a qué distancia por encima de la superficie se representan los efectos cáusticos.
Valor predeterminado:
0.5
Rango: de
0.0
a∞
Advanced
- Spillable Volume
-
Especifica la cantidad de volumen que se puede derramar en un contenedor que aparece debajo.
Valor predeterminado:
0.0
Rango: de
0.0
a∞
- Volume Accuracy
-
Especifica la precisión del nivel de superficie del volumen derramado.
Valor predeterminado:
0.001
Rango: de
0.0
a∞
- Extrude Border
-
Especifica la cantidad del borde que agregar al volumen derramado.
Valor predeterminado:
0.0
Rango: de
0.0
a∞
- Convex Border
-
Determina si se ha de tener en cuenta el casco convexo del contenedor.
Valor predeterminado: false
- Object Size Limit
-
Establece el volumen mínimo que debe tener un objeto para afectar a la superficie del agua.
Valor predeterminado:
0.001
Rango: de
0.0
a∞
Simulación de ondas
- Surface Cell Size
-
Especifica el tamaño de las celdas de simulación de ondas.
Valor predeterminado:
0.0
Rango: de
0.0
a∞
- Velocidad
-
Especifica la velocidad a la que se mueve cada onda.
Valor predeterminado:
100.0
Rango: de
0.0
a∞
- Dampening
-
Especifica la cantidad de fuerza de humidificación que aplicar durante la simulación.
Valor predeterminado:
0.2
Rango: de
0.0
a∞
- Timestep
-
Especifica la frecuencia de los ciclos de simulación de ondas.
Valor predeterminado:
0.02
Rango: de
0.0
a∞
- Sleep Threshold
-
Establece la menor velocidad a la que una celda ha de estar en reposo.
Valor predeterminado:
0.01
Rango: de
0.0
a∞
- Depth Cell Size
-
Especifica el tamaño de la celda de profundidad.
Valor predeterminado:
8.0
Rango: de
0.0
a∞
- Height Limit
-
Establece las alturas máxima y mínima a las que puede deformarse la superficie.
Valor predeterminado:
7.0
Rango: de
0.0
a∞
- Force
-
Especifica la intensidad de la fuerza de la ola.
Valor predeterminado:
10.0
Rango: de
0.0
a∞
- Simulation Area Growth
-
Agrega espacio si la simulación del agua causa expansión.
Valor predeterminado:
0.0f
Rango: de
0.0
a∞
Interfaz de bus de solicitudes EBus
Utilice las siguientes funciones de solicitud con la interfaz EBus para comunicarse con otros componentes del videojuego. Puede utilizar este EBus para comunicar con una entidad con un componente Water Volume asociado. El EBus está disponible en el tiempo de juego y en la edición, y se puede obtener acceso a él desde C++, Lua y elScript CanvasEditor de .
Para obtener más información acerca del uso de la interfaz de bus de eventos (EBus), consulte Trabajo con el sistema de bus de eventos (EBus).
SetSurfaceUScale
Establece cuánto inclinar la superficie de la textura en horizontal (eje U del mapa UV). La textura de la superficie suele definirse como un mapeado topológico o de normales.
- Parámetros
-
Type: Float
- Return
-
Ninguno
- Capacidad de ejecución de script
-
Sí
GetSurfaceUScale
Devuelve cuánto extender en mosaico la textura de superficie en horizontal (eje U del mapa UV).
- Parámetros
-
Ninguno
- Return
-
Type: Float
- Capacidad de ejecución de script
-
Sí
SetSurfaceVScale
Devuelve cuánto extender en mosaico la textura de superficie en vertical (eje V del mapa UV). La textura de la superficie suele definirse como un mapeado topológico o de normales.
- Parámetros
-
Type: Float
- Return
-
Ninguno
- Capacidad de ejecución de script
-
Sí
GetSurfaceVScale
Devuelve cuánto extender en mosaico la textura de superficie en vertical.
- Parámetros
-
Ninguno
- Return
-
Type: Float
- Capacidad de ejecución de script
-
Sí
SetFogDensity
Especifica la densidad de la niebla subacuática en el volumen. Un valor bajo produce agua más transparente y un valor alto produce agua más turbia.
- Parámetros
-
Type: Float
- Return
-
Ninguno
- Capacidad de ejecución de script
-
Sí
GetFogDensity
Devuelve la densidad de niebla en el volumen de agua.
- Parámetros
-
Ninguno
- Return
-
Type: Float
- Capacidad de ejecución de script
-
Sí
SetFogColor
Especifica el color de la niebla subacuática en el volumen. El parámetro FogColorMultiplier modifica el color de la niebla antes de la representación.
- Parámetros
-
AZ::Color
- Return
-
Ninguno
- Capacidad de ejecución de script
-
Sí
GetFogColor
Devuelve el color de la niebla subacuática en el volumen. El parámetro FogColorMultiplier no afecta al valor devuelto.
- Parámetros
-
Ninguno
- Return
-
AZ::Color
- Capacidad de ejecución de script
-
Sí
SetFogColorMultiplier
Establece el valor que se multiplicará por el parámetro FogColor antes de la representación. Un valor más alto produce niebla subacuática con más brillo.
- Parámetros
-
Type: Float
- Return
-
Ninguno
- Capacidad de ejecución de script
-
Sí
GetFogColorMultiplier
Devuelve el valor que se multiplicará por el parámetro FogColor antes de la representación.
- Parámetros
-
Ninguno
- Return
-
Tipo: flotante
- Capacidad de ejecución de script
-
Sí
SetFogColorAffectedBySun
Especifica si el sol afecta a la niebla subacuática en el volumen. Si es true, el valor SunColor (Color del sol) afecta al color de la niebla. Puede fijar la opción deSuncoloren laEditor Time of Day. Para volúmenes de agua en exteriores, use true. Para volúmenes de agua en interiores, use false.
- Parámetros
-
Type: Booleano
- Return
-
Ninguno
- Capacidad de ejecución de script
-
Sí
GetFogColorAffectedBySun
Devuelve si el sol afecta a la niebla subacuática en el volumen.
- Parámetros
-
Ninguno
- Return
-
Type: Booleano
- Capacidad de ejecución de script
-
Sí
SetFogShadowing
Establece la intensidad de las sombras que caen sobre el volumen de agua. Si es 0.0, las sombras no afectarán al volumen de agua. Si es 1.0, una sombra oscura caerá sobre el volumen de agua. Debe definir r_FogShadowsWater
como 1 para que el parámetro tenga efecto.
- Parámetros
-
Type: Float
- Return
-
Ninguno
- Capacidad de ejecución de script
-
Sí
- Valores válidos
0.0
De a1.0
GetFogShadowing
Devuelve la intensidad de las sombras que caen sobre el volumen de agua. Los valores válidos son de 0,0 a 1,0. Sin embargo, esta propiedad devuelve el valor para el parámetro FogShadowing independientemente del rango válido.
- Parámetros
-
Ninguno
- Return
-
Type: Float
- Capacidad de ejecución de script
-
Sí
SetCapFogAtVolumeDepth
Especifica si el efecto de niebla subacuático se limita a la profundidad del volumen. Si es false, la niebla subacuática se representa independientemente de la distancia de la cámara bajo el volumen de agua.
- Parámetros
-
Type: Booleano
- Return
-
Ninguno
- Capacidad de ejecución de script
-
Sí
GetCapFogAtVolumeDepth
Devuelve si el efecto de niebla subacuático se limita a la profundidad del volumen.
- Parámetros
-
Ninguno
- Return
-
Type: Booleano
- Capacidad de ejecución de script
-
Sí
SetCausticsEnabled
Establece si el volumen de agua produce efectos cáusticos. Debe definir r_WaterVolumeCaustics
como 1 para que la configuración de efecto cáustico del agua tenga efecto. Para mostrar los efectos cáusticos, configure el volumen del agua en una altura del mundo de al menos 1.
- Parámetros
-
Type: Booleano
- Return
-
Ninguno
- Capacidad de ejecución de script
-
Sí
GetCausticsEnabled
Devuelve si el volumen de agua produce efectos cáusticos.
- Parámetros
-
Ninguno
- Return
-
Type: Booleano
- Capacidad de ejecución de script
-
Sí
SetCausticIntensity
Establece la intensidad de los efectos cáusticos para el volumen de agua. Esta propiedad se escala el mapeado de normales durante la representación al mapa de efectos cáusticos para producir un efecto cáustico más fuerte.
- Parámetros
-
Type: Float
- Return
-
Ninguno
- Capacidad de ejecución de script
-
Sí
GetCausticIntensity
Devuelve la intensidad de los efectos cáusticos para el volumen de agua.
- Parámetros
-
Ninguno
- Return
-
Type: Float
- Capacidad de ejecución de script
-
Sí
SetCausticTiling
Establece multiplicador para utilizarlo en la extensión en mosaico de los efectos cáusticos del volumen de agua. Este valor se multiplica por la extensión en mosaico que se aplica a las normales de la superficie. A continuación, puede escalar la extensión en mosaico de los efectos cáusticos por separado del material.
- Parámetros
-
Type: Float
- Return
-
Ninguno
- Capacidad de ejecución de script
-
Sí
GetCausticTiling
Devuelve el valor que se multiplica por la extensión en mosaico de las normales de la superficie durante la generación de los efectos cáusticos.
- Parámetros
-
Ninguno
- Return
-
Type: Float
- Capacidad de ejecución de script
-
Sí
SetCausticHeight
Establece la altura a la que se permite crear efectos cáusticos por encima de la superficie del agua. Si es 0.0, los efectos cáusticos solo se representan por debajo de la superficie del agua. Si utiliza un valor mayor que 0, los efectos cáusticos pueden aparecer en superficies cercanas que no están en el volumen del agua.
- Parámetros
-
Type: Float
- Return
-
Ninguno
- Capacidad de ejecución de script
-
Sí
GetCausticHeight
Devuelve la altura a la que se permite crear efectos cáusticos por encima de la superficie del agua.
- Parámetros
-
Ninguno
- Return
-
Type: Float
- Capacidad de ejecución de script
-
Sí
SetSpillableVolume
Establece cuánto volumen se puede derramar. Los volúmenes se pueden derramar en un contenedor, pero no en el terreno. Un valor más alto permite que se rellene una mayor parte del volumen del contenedor con agua. Si mayor que 0, el volumen de agua realiza un raycast en la geometría cercana e intenta derramarse en ella. La geometría debe tener una malla cóncava en un componente de malla.
- Parámetros
-
Type: Float
- Return
-
Ninguno
- Capacidad de ejecución de script
-
Sí
GetSpillableVolume
Devuelve cuánto volumen se puede derramar.
- Parámetros
-
Ninguno
- Return
-
Type: Float
- Capacidad de ejecución de script
-
Sí
SetVolumeAccuracy
Establece la precisión del nivel de agua para el volumen de agua derramado. El nivel del agua para el volumen derramado se calcula de forma iterativa hasta que el valor se encuentre dentro de la distancia al nivel del agua que espera el volumen del agua. Un valor más alto requiere más iteraciones para calcular el nivel del agua. Si el nivel del agua es 0.0, las iteraciones alcanzarán un límite codificado de 100 iteraciones.
- Parámetros
-
Type: Float
- Return
-
Ninguno
- Capacidad de ejecución de script
-
Sí
GetVolumeAccuracy
Devuelve la precisión del nivel de agua para el volumen de agua derramado.
- Parámetros
-
Ninguno
- Return
-
Type: Float
- Capacidad de ejecución de script
-
Sí
SetExtrudeBorder
Establece cuánto aumentar el borde del volumen de agua al derramarse. Si es 0, la simulación de onda podría causar que los bordes abiertos de la superficie de un volumen de agua fueran visibles. Esto es útil para la simulación de ondas.
- Parámetros
-
Type: Float
- Return
-
Ninguno
- Capacidad de ejecución de script
-
Sí
GetExtrudeBorder
Devuelve cuánto aumentar el borde del volumen de agua al derramarse.
- Parámetros
-
Ninguno
- Return
-
Type: Float
- Capacidad de ejecución de script
-
Sí
SetConvexBorder
Establece si el volumen de agua debería buscar un borde convexo al derramarse. Esto resulta útil si el volumen se derrama en un contenedor que tiene varios contornos. Dado que los volúmenes de agua no son compatibles con varios contornos, esta propiedad utiliza la lógica para descomponer el volumen en varios volúmenes que pueden encajar en el contenedor contorneado.
- Parámetros
-
Type: Booleano
- Return
-
Ninguno
- Capacidad de ejecución de script
-
Sí
GetConvexBorder
Establece si el volumen de agua debería buscar un borde convexo al derramarse.
- Parámetros
-
Ninguno
- Return
-
Type: Booleano
- Capacidad de ejecución de script
-
Sí
SetObjectSizeLimit
Establece el volumen mínimo que se necesita para que un objeto experimente desplazamiento de volumen. Los objetos que tienen un volumen menor que este valor no deformarán la superficie.
- Parámetros
-
Type: Float
- Return
-
Ninguno
- Capacidad de ejecución de script
-
Sí
GetObjectSizeLimit
Devuelve el volumen mínimo que se necesita para que un objeto experimente desplazamiento de volumen.
- Parámetros
-
Ninguno
- Return
-
Type: Float
- Capacidad de ejecución de script
-
Sí
SetWaveSurfaceCellSize
Establece el tamaño de cada celda de simulación de onda. El número de celdas de simulación de onda viene determinado por el tamaño del volumen y por el tamaño individual de las celdas. Esto afecta a la malla de la superficie del agua.
Un gran volumen de agua con un tamaño de celda pequeño produce un gran número de celdas y una malla de superficie grande y complicada. Este tipo de malla puede dificultar la evaluación de la simulación de onda, a no ser que ajuste otros parámetros.
Un volumen de agua pequeño con un tamaño de celda grande produce un pequeño número de celdas y una malla de superficie pequeña y sencilla.
Utilice la variable de consola p_draw_helpers a_g
para ver la malla de superficie teselada. Puede que tenga que acercar la cámara de la ventanilla del editor al volumen para que la malla se represente.
- Parámetros
-
Type: Float
- Return
-
Ninguno
- Capacidad de ejecución de script
-
Sí
GetWaveSurfaceCellSize
Devuelve el tamaño de cada celda de simulación de onda.
- Parámetros
-
Ninguno
- Return
-
Type: Float
- Capacidad de ejecución de script
-
Sí
SetWaveSpeed
Establece la rapidez con la que se mueven las ondas.
- Parámetros
-
Type: Float
- Return
-
Ninguno
- Capacidad de ejecución de script
-
Sí
GetWaveSpeed
Devuelve la rapidez con la que se mueven las ondas.
- Parámetros
-
Ninguno
- Return
-
Type: Float
- Capacidad de ejecución de script
-
Sí
SetWaveDampening
Establece cuánto amortiguar la simulación de ondas. Un valor más alto produce ondas que pierden velocidad con mayor rapidez.
- Parámetros
-
Type: Float
- Return
-
Ninguno
- Capacidad de ejecución de script
-
Sí
GetWaveDampening
Devuelve cuánto amortiguar la simulación de ondas.
- Parámetros
-
Ninguno
- Return
-
Type: Float
- Capacidad de ejecución de script
-
Sí
SetWaveTimestep
Establece la frecuencia del ciclo de la simulación de onda. Un valor más bajo produce ciclos de simulación frecuentes, con lo que se resuelven las simulaciones rápidamente.
- Parámetros
-
Type: Float
- Return
-
Ninguno
- Capacidad de ejecución de script
-
Sí
GetWaveTimestep
Devuelve la frecuencia del ciclo de la simulación de onda.
- Parámetros
-
Ninguno
- Return
-
Type: Float
- Capacidad de ejecución de script
-
Sí
SetWaveSleepThreshold
Establece la velocidad mínima necesaria para que una celda entre en reposo. Una celda se encontrará en reposo y dejará de aplicar fuerza a sus elementos cercanos cuando la velocidad llega a este umbral.
- Parámetros
-
Type: Float
- Return
-
Ninguno
- Capacidad de ejecución de script
-
Sí
GetWaveSleepThreshold
Devuelve la velocidad mínima necesaria para que una celda entre en reposo.
- Parámetros
-
Ninguno
- Return
-
Type: Float
- Capacidad de ejecución de script
-
Sí
SetWaveDepthCellSize
Establece el tamaño de cada celda de profundidad en una simulación de onda. El número de celdas de simulación de onda viene determinado por el tamaño del volumen y por el tamaño individual de las celdas. Un menor tamaño de celda produce más celdas de profundidad y una simulación de onda intensiva.
- Parámetros
-
Type: Float
- Return
-
Ninguno
- Capacidad de ejecución de script
-
Sí
GetWaveDepthCellSize
Devuelve el tamaño de cada celda de profundidad en una simulación de onda.
- Parámetros
-
Ninguno
- Return
-
Type: Float
- Capacidad de ejecución de script
-
Sí
SetWaveHeightLimit
Establece los límites de altura y profundidad para las ondas generadas. Un límite de altura de 3 implica que la celda se deforma hacia arriba tres unidades y hacia abajo tres unidades.
- Parámetros
-
Type: Float
- Return
-
Ninguno
- Capacidad de ejecución de script
-
Sí
GetWaveHeightLimit
Devuelve el límite de altura y profundidad de las ondas generadas.
- Parámetros
-
Ninguno
- Return
-
Type: Float
- Capacidad de ejecución de script
-
Sí
SetWaveForce
Establece la cantidad de fuerza que las celdas de simulación de ondas se aplican entre sí. Una fuerza de onda baja produce una alta resistencia entre celdas. Una fuerza de onda alta produce una menor resistencia y transmite más energía entre celdas. Una mayor transmisión de energía supone contar con ondas más grandes y pronunciadas.
- Parámetros
-
Type: Float
- Return
-
Ninguno
- Capacidad de ejecución de script
-
Sí
GetWaveForce
Devuelve la cantidad de fuerza que las celdas de simulación de ondas se aplican entre sí.
- Parámetros
-
Ninguno
- Return
-
Type: Float
- Capacidad de ejecución de script
-
Sí
SetWaveSimulationAreaGrowth
Establece el límite de tamaño para agregar a un área de simulación. Esto determina dónde se puede mover la simulación del volumen del agua y dónde puede crecer fuera del área definida inicialmente. Aumente la variable para agregar el límite de tamaño al área de simulación. La variable de consola p_draw_helpers a_gj
dibuja el área de simulación de la onda como un campo de altura en forma de tablero de ajedrez.
- Parámetros
-
Ninguno
- Return
-
Ninguno
- Capacidad de ejecución de script
-
Sí
GetWaveSimulationAreaGrowth
Devuelve el límite de tamaño para agregar a un área de simulación.
- Parámetros
-
Ninguno
- Return
-
Ninguno
- Capacidad de ejecución de script
-
Sí
Ejemplo de bus de solicitudes del componente Water Volume
function example:OnActivate
local waveForce = WaterVolumeComponentRequestBus.Event.GetWaveForce(self.entityId)
WaterVolumeComponentRequestBus.Event.SetWaveForce(self.entityId, waveForce * 10)
end
Configuración del volumen para derramar
Puede configurar volúmenes de agua para que se derramen en volúmenes de contenedores. Si el parámetro Spillable Volume (Volumen que se puede derramar) es un valor mayor que 0, el volumen realiza un raycast hacia abajo y busca un contenedor apto en el que derramarse. Esto incluye cualquier componente de malla con una concavidad. Un valor más alto del parámetro Spillable Volume (Volumen que se puede derramar) produce un nivel de agua más alto en el contenedor objetivo.
El volumen de agua derramada se comporta de una forma similar al volumen de agua de origen y puede simular ondas. El volumen derramado se calcula de forma iterativa y el parámetro Volume Accuracy (Precisión de volumen) determina la precisión del nivel del agua. Los volúmenes de agua derramados se calculan una vez y no deben incurrir en una penalización del desempeño por fotograma derivada del cálculo del volumen.
La imagen siguiente muestra el volumen de agua por encima de una masa que no permite el derrame.

La imagen siguiente muestra el volumen de agua derramando 100 unidades en la masa.

La imagen siguiente muestra el volumen de agua derramando 1000 unidades en la masa.

Configuración de la simulación de ondas
Puede utilizar la simulación de ondas para crear la apariencia de que la superficie del agua reacciona ante fuerzas físicas. Esta característica no simula las ondas del océano. Dado que la simulación de ondas es una tarea costosa, tenga en cuenta el impacto en el desempeño antes de habilitar esta característica.
Para habilitar la simulación de ondas en un volumen de agua, configure el parámetro Surface Cell Size (Tamaño de celda de superficie) en un valor superior a 0. Para los volúmenes de agua más pequeños, puede utilizar un valor de 2 o 3. Un valor de celda más pequeño produce más celdas y un tiempo de evaluación para la simulación más largo.
Incluso sin la simulación de ondas, el sombreador Water (Agua) deforma la malla de la superficie para hacer que el agua parezca estar en movimiento.
ejemplo
La imagen siguiente muestra un volumen de agua simple sin simulación de ondas.

ejemplo
La imagen siguiente muestra un volumen de agua con simulación de ondas.
