Lumberyard
Guía del usuario (Version 1.21)

Water Volume

Esta característica está en versión preliminar y está sujeta a cambios.

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.

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.

Predeterminada: 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 (Densidad)

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.

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

Especifica cuánto afectan las sombras al color de la niebla del agua.

Valor predeterminado: 0.5

Rango: de 0.0 a 1

Cap at Volume Depth

Determina si se representa la niebla cuando el jugador está bajo el volumen.

Valor predeterminado: False

Caustics

Habilitada

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

Afecta a la cantidad de efectos cáusticos que se representan.

Valor predeterminado: 1.0

Rango: de 0.0 a

Altura

Determina a qué distancia por encima de la superficie se representan los efectos cáusticos.

Valor predeterminado: 0.5

Rango: de 0.0 a

Avanzado

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 el editor Script Canvas.

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

Tipo: Flotante

Devolución

Ninguno

Capacidad de ejecución de script

GetSurfaceUScale

Devuelve cuánto extender en mosaico la textura de superficie en horizontal (eje U del mapa UV).

Parámetros

Ninguno

Devolución

Tipo: Flotante

Capacidad de ejecución de script

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

Tipo: Flotante

Devolución

Ninguno

Capacidad de ejecución de script

GetSurfaceVScale

Devuelve cuánto extender en mosaico la textura de superficie en vertical.

Parámetros

Ninguno

Devolución

Tipo: Flotante

Capacidad de ejecución de script

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

Tipo: Flotante

Devolución

Ninguno

Capacidad de ejecución de script

GetFogDensity

Devuelve la densidad de niebla en el volumen de agua.

Parámetros

Ninguno

Devolución

Tipo: Flotante

Capacidad de ejecución de script

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

Devolución

Ninguno

Capacidad de ejecución de script

GetFogColor

Devuelve el color de la niebla subacuática en el volumen. El parámetro FogColorMultiplier no afecta al valor devuelto.

Parámetros

Ninguno

Devolución

AZ::Color

Capacidad de ejecución de script

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

Tipo: Flotante

Devolución

Ninguno

Capacidad de ejecución de script

GetFogColorMultiplier

Devuelve el valor que se multiplicará por el parámetro FogColor antes de la representación.

Parámetros

Ninguno

Devolución

Tipo: flotante

Capacidad de ejecución de script

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 establecer el SunColor (Color del sol) en Time of Day Editor. Para volúmenes de agua en exteriores, use true. Para volúmenes de agua en interiores, use false.

Parámetros

Tipo: booleano

Devolución

Ninguno

Capacidad de ejecución de script

GetFogColorAffectedBySun

Devuelve si el sol afecta a la niebla subacuática en el volumen.

Parámetros

Ninguno

Devolución

Tipo: booleano

Capacidad de ejecución de script

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

Tipo: Flotante

Devolución

Ninguno

Capacidad de ejecución de script

Valores válidos

De 0.0 a 1.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

Devolución

Tipo: Flotante

Capacidad de ejecución de script

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

Tipo: booleano

Devolución

Ninguno

Capacidad de ejecución de script

GetCapFogAtVolumeDepth

Devuelve si el efecto de niebla subacuático se limita a la profundidad del volumen.

Parámetros

Ninguno

Devolución

Tipo: booleano

Capacidad de ejecución de script

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

Tipo: booleano

Devolución

Ninguno

Capacidad de ejecución de script

GetCausticsEnabled

Devuelve si el volumen de agua produce efectos cáusticos.

Parámetros

Ninguno

Devolución

Tipo: booleano

Capacidad de ejecución de script

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

Tipo: Flotante

Devolución

Ninguno

Capacidad de ejecución de script

GetCausticIntensity

Devuelve la intensidad de los efectos cáusticos para el volumen de agua.

Parámetros

Ninguno

Devolución

Tipo: Flotante

Capacidad de ejecución de script

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

Tipo: Flotante

Devolución

Ninguno

Capacidad de ejecución de script

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

Devolución

Tipo: Flotante

Capacidad de ejecución de script

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

Tipo: Flotante

Devolución

Ninguno

Capacidad de ejecución de script

GetCausticHeight

Devuelve la altura a la que se permite crear efectos cáusticos por encima de la superficie del agua.

Parámetros

Ninguno

Devolución

Tipo: Flotante

Capacidad de ejecución de script

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

Tipo: Flotante

Devolución

Ninguno

Capacidad de ejecución de script

GetSpillableVolume

Devuelve cuánto volumen se puede derramar.

Parámetros

Ninguno

Devolución

Tipo: Flotante

Capacidad de ejecución de script

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

Tipo: Flotante

Devolución

Ninguno

Capacidad de ejecución de script

GetVolumeAccuracy

Devuelve la precisión del nivel de agua para el volumen de agua derramado.

Parámetros

Ninguno

Devolución

Tipo: Flotante

Capacidad de ejecución de script

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

Tipo: Flotante

Devolución

Ninguno

Capacidad de ejecución de script

GetExtrudeBorder

Devuelve cuánto aumentar el borde del volumen de agua al derramarse.

Parámetros

Ninguno

Devolución

Tipo: Flotante

Capacidad de ejecución de script

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

Tipo: booleano

Devolución

Ninguno

Capacidad de ejecución de script

GetConvexBorder

Establece si el volumen de agua debería buscar un borde convexo al derramarse.

Parámetros

Ninguno

Devolución

Tipo: booleano

Capacidad de ejecución de script

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

Tipo: Flotante

Devolución

Ninguno

Capacidad de ejecución de script

GetObjectSizeLimit

Devuelve el volumen mínimo que se necesita para que un objeto experimente desplazamiento de volumen.

Parámetros

Ninguno

Devolución

Tipo: Flotante

Capacidad de ejecución de script

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

Tipo: Flotante

Devolución

Ninguno

Capacidad de ejecución de script

GetWaveSurfaceCellSize

Devuelve el tamaño de cada celda de simulación de onda.

Parámetros

Ninguno

Devolución

Tipo: Flotante

Capacidad de ejecución de script

SetWaveSpeed

Establece la rapidez con la que se mueven las ondas.

Parámetros

Tipo: Flotante

Devolución

Ninguno

Capacidad de ejecución de script

GetWaveSpeed

Devuelve la rapidez con la que se mueven las ondas.

Parámetros

Ninguno

Devolución

Tipo: Flotante

Capacidad de ejecución de script

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

Tipo: Flotante

Devolución

Ninguno

Capacidad de ejecución de script

GetWaveDampening

Devuelve cuánto amortiguar la simulación de ondas.

Parámetros

Ninguno

Devolución

Tipo: Flotante

Capacidad de ejecución de script

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

Tipo: Flotante

Devolución

Ninguno

Capacidad de ejecución de script

GetWaveTimestep

Devuelve la frecuencia del ciclo de la simulación de onda.

Parámetros

Ninguno

Devolución

Tipo: Flotante

Capacidad de ejecución de script

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

Tipo: Flotante

Devolución

Ninguno

Capacidad de ejecución de script

GetWaveSleepThreshold

Devuelve la velocidad mínima necesaria para que una celda entre en reposo.

Parámetros

Ninguno

Devolución

Tipo: Flotante

Capacidad de ejecución de script

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

Tipo: Flotante

Devolución

Ninguno

Capacidad de ejecución de script

GetWaveDepthCellSize

Devuelve el tamaño de cada celda de profundidad en una simulación de onda.

Parámetros

Ninguno

Devolución

Tipo: Flotante

Capacidad de ejecución de script

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

Tipo: Flotante

Devolución

Ninguno

Capacidad de ejecución de script

GetWaveHeightLimit

Devuelve el límite de altura y profundidad de las ondas generadas.

Parámetros

Ninguno

Devolución

Tipo: Flotante

Capacidad de ejecución de script

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

Tipo: Flotante

Devolución

Ninguno

Capacidad de ejecución de script

GetWaveForce

Devuelve la cantidad de fuerza que las celdas de simulación de ondas se aplican entre sí.

Parámetros

Ninguno

Devolución

Tipo: Flotante

Capacidad de ejecución de script

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

Devolución

Ninguno

Capacidad de ejecución de script

GetWaveSimulationAreaGrowth

Devuelve el límite de tamaño para agregar a un área de simulación.

Parámetros

Ninguno

Devolución

Ninguno

Capacidad de ejecución de script

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.


                Componente Water Volume de ejemplo con agua que no se derrama.

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


                Componente Water Volume de ejemplo con agua derramándose a un ritmo de 100 unidades en la piscina.

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


                Componente Water Volume de ejemplo con agua derramándose a un ritmo de 1000 unidades en la piscina.

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.


                 El componente Water Volume no tiene habilitada la simulación de olas.

ejemplo

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


                El componente Water Volume tiene habilitada la simulación de olas.