1. 程式人生 > >海水外掛Suimono 2.1的使用

海水外掛Suimono 2.1的使用

OVERVIEW & INSTALLATION

一、如何加入水模型:

1.將預製體“Suimono_Module”加入場景。

2.將預製體“Suimono_Surface”加入場景,這個是海面。

3.在“Suimono_Module”中的SceneCamera Object加入主攝像機

4. 在“Suimono_Module”中的Scene LightObject加入燈光。

 

5. 新增水下霧效:通過Component-->ImageEffects-->Suimono-->UnderwaterFX 在主攝像機上加上Suimono_UnderwaterFog指令碼

加上的效果:

 

不加的效果:

 

6.將預製體"shorelineObject"加入場景,作為海岸線
 

 

二、關於更新外掛的問題

因為兩個版本的結構可能會大不一樣,所以需要在更新新版本之前完全解除安裝舊版本,下面是如何完全解除安裝舊版本:

1.從場景中刪除Suimono Module 和 Suimono Surfaces。

2.從攝像機上刪除UnderwaterFX。

3. 進入Project Settings--> Tags and Layers 刪除所有關於Suimono-的層。

4.從工程中刪除Suimono的資料夾。

 

三、常見問題

1.材質丟失了

舊版本的Suimono在Unity 5.3+中會出現這個情況,需要更新版本(Asset Store或者http://tanukidigital.com/)。

2.如何關閉水的聲音效果

在Suimono Module下面的GENERAL SETTINGS不勾選Enable Sounds即可。

 

 

四、效能考慮

1.海面LOD選擇

Suimono 2.1有四種不同的水面網格(高、中、低、singlequad triangle levels)在Suimono Surfaces 下的Suimono_Object中能夠看到,比如你只需要一個小池塘,就可以適當選擇低層次的LOD。

2.

FEATURES IN-DEPTH

 

一、新增效果

將預製體fx_object加入你想要產生效果的物體下面做子物體

1.新增粒子效果

a. Particle Effect選擇你想要的效果

  Emit Number 一次釋放多少粒子效果

  ParticleSize 釋放出的粒子效果的大小

  EmissionSpeed 釋放的速度,數越小釋放越快

  DirectionalSpeed 在Y軸給粒子加一個特定的速度,0表示關閉

  EmitAt Surface是否不管粒子特效Y軸的位置,都允許在水面上釋放效果

  TintColor 改變粒子特效的顏色

  ClampRotation 粒子不進行旋轉,預設是釋放時的旋轉

  DistanceRange 粒子效果的啟用範圍

b.設定啟用條件

按下+ ADD NEW RULE加入條件:有的需要相應的值做約束,如Object Speed Is Greater Than,前面的減號可以刪除條件

2.新增聲音效果

a.選擇Audio Effect,切換為聲音效果的設定

  SelectAudio Sample 新增聲音原始檔

  AudioVolume Range 聲音的大小

  AudioPitch Range 聲音的音高中間是預設音高,越往右越高

  AudioRepeat Speed 聲音重複的速度

二、新增浮力

1.給物體新增預製體buoyancyObject作為其子物體,當然這個物體也需要加上剛體

2.調整buoyancyObject的中心為這個物體的中心,比如要加的是人,就加在人的肺部區域,

也可以通過Buoyancy Offset微調

3.設定垂直方向的力:可以通過修改BuoyancyStrength屬性或者剛體上的mass和drag來找到合適的效果

4. Inherit Force 受到波浪的橫向的力

  ForceAmount 數越大,力越大,物體移動越快

  ForceHeight Factor 是一個0-1的數

三、水下渲染

1.在預製體SUIMONO_Surface下的Underwater進行設定(Suimono_UnderwaterFog必須掛在攝像機上)

在SUIMONO_Module-->general settings-->Enable Underwater FX可以將其關閉

2.設定從水下上來打溼鏡頭的效果

在SUIMONO_Module-->general settings--> Enable Transition FX可以進行設定

開啟後的效果:

 

 

四、海岸線

1.在場景中加入預製體shorelineObject,將SuimonoSurface加入Attach ToSurface中

2.點選DebugMode可以看到海岸線的範圍,方便進行調整

3. Depth Range控制波浪在哪裡生成

  Shore Range控制泡沫在哪裡生成

 

Programming and Functions

 

1. Suimono Module

需要引入名稱空間  using Suimono.Core;才能使用

SuimonoModule moduleObject;

void Start () {

 moduleObject = GameObject.Find("SUIMONO_Module").gameObject.GetComponent<SuimonoModule>();

         }

2. public float SuimonoGetHeight( Vector3 position , string returnMode);

position是水面上一點在世界的座標

例子:

using UnityEngine;

using System.Collections;

using Suimono.Core;

public classNewBehaviourScript : MonoBehaviour {

    SuimonoModule moduleObject;

    Vector3 testPos;

    float waterHeight;

         void Start ()

    {

        testPos = this.transform.position;

        moduleObject = GameObject.Find("SUIMONO_Module").gameObject.GetComponent<SuimonoModule>();

        waterHeight =moduleObject.SuimonoGetHeight(testPos,"height");

    }        

}

height 波浪的高度

surfaceLevel

baseLevel

object depth 返回路過位置的深度

isOverWater 檢測所給的位置是否在水面上,1是0否

isAtSurface 檢測所給的位置是否在表面附近 1是0否

direction 水面流動的角度

speed 水流動的速度

wave height 返回一個浪的高度,1是最高浪 0是標準浪

transitionDepth 返回攝像機的過渡深度

underwaterEnabled 水下效果是否開啟,1是0否

causticsEnabled 焦散效果是否開啟, 1是0否

3. public float[ ] SuimonoGetHeightAll(Vector3 position );

和SuimonoGetHeight()類似是直接計算了所有的值

[0] = “height”

[1] = “surfaceLevel”

[2] = “baseLevel”

[3] = “object depth”

[4] = “isOverWater”

[5] = “isAtSurface”

[6] = “direction”

[7] = “speed”

[8] = “wave height”

[9] = “transitionDepth”

[10] = “underwaterEnabled”

[11] = “causticsEnabled”

4. public Vector2SuimonoConvertAngleToVector( float convertAngle );

把角度轉換為二維向量

float waterDirDegrees;

Vector3 testPosition;

Vector2 waterDirVector;

testPosition = this.transform.position;

waterDirDegrees = moduleObject.SuimonoGetHeight(testPosition,”height”);

waterDirVector =moduleObject.SuimonoConvertAngleToVector(waterDirDegrees);

5. public void SuimonoSetPreset( stringfoldername , string presetname );

初始化surfaceObject

6.設定攝像機

Transform useCamera;

void LateUpdate () {

if (moduleObject != null){

if (useCamera != null){

moduleObject.manualCamera = useCamera;

}

}

}

 

預製體及相關元件參考

 

Suimono Module

是一個必備的元件

其子物體_particle_effects執行後產生各種粒子效果

 

同樣的_sound_effects也產生各種聲音

 

GENERAL SETTINGS 前面已經有介紹了

ADVANCED WATER SETTINGS

  a. WaterTransparency 水的透明度

  b. Distance透明度的渲染只是距離攝像機一定的距離

 

Suimono Surface

 其子物體Suimono_ObjectScale來控制執行後海水的大小

 Mode有Simple / Advanced選擇,Simple顯示的選擇設定少

 

 GeneralSettings

    a.Surface Type 水面型別:Infinite 3DOcean(有Ocean Scale可以調節大小)、3D Waves、Flat Plane(平靜的水面,例如小池塘)

 

 WASESETTINGS

    a. Turbulence Amount 波浪的動盪數量

 

 WASTER SURFACE

    a.Overall Brightness 水面的亮度

    b.Overall Transparency 水面的透明度

    c.Edge Blend 岸邊的透明度

    d. Depth Absorption

    e. Shallow Absorption

    f. Refraction Amount 折射數量

    g. Chromatic Shift 色彩轉換

    Caustics Blend 與Caustics Color只有當mode的型別是Advanced時才能進行編輯

    h. Reflection Blur

 

FOAM SETTINGS

   a. Edge Foam 邊緣泡沫的多少

   b. Shoreline Wave Foam 海岸線上泡沫的多少

 

 

 

UNDERWATER

  Enable Underwater 是否使用水下效果

  Enable Debris 是否使用水下雜物效果

   FogSpread 水下的渾濁程度

 

PRESET MANAGER

   UsePreset File 使用預置檔案,可以在Suimono 2 - Water System 2 / resources中選擇

 

   Transitiona Preset 可以在指定的時間內進行過渡

     Deletea Preset 刪除的時候要謹慎,因為不能撤銷

shorelineObject

DebugMode可以看到海岸線的範圍

Depth Range 控制波浪在哪裡生成

Shore Range 控制泡沫在哪裡生成

注意:一定記得將SUIMONO_Surface拖進去
--------------------- 
作者:ElsaMJ 
來源:CSDN 
原文:https://blog.csdn.net/Root915/article/details/54670312 
版權宣告:本文為博主原創文章,轉載請附上博文連結!