Houdini 散點(diǎn)到Unity中使用

簡(jiǎn)介: houdini 真是越用越好玩,最近在使用其散點(diǎn)功能做成 HDA 在 Unity 進(jìn)行物體散布的時(shí)候遇到了幾個(gè)卡點(diǎn),特此記錄一下
houdini版本: 2020.5

相關(guān)屬性

unity_instance: point 屬性,這個(gè)屬性的 string 值填充要散替換的物體的路徑
unity_material: point 屬性,這個(gè)屬性的 string 值填充要賦予的材質(zhì)路徑,在 unity 中使用 HDA 生成多邊形后就可以賦予這個(gè)屬性標(biāo)記的路徑的材質(zhì)
pscale: point 屬性,這個(gè)屬性可以設(shè)置縮放數(shù)值,用來(lái)控制實(shí)際撒點(diǎn)的物體的縮放屬性
orient: point屬性,這個(gè)屬性代表物體的旋轉(zhuǎn)屬性,可以用來(lái)控制物體的旋轉(zhuǎn)
collision_geo: point 屬性,這個(gè)屬性的 string 值填充要賦予碰撞體網(wǎng)格的路徑
heuassetpath: 這不是一個(gè)屬性,這個(gè)是在給 HDA 創(chuàng)建輸入?yún)?shù)時(shí),可以給 string 類型的參數(shù)加上這個(gè)標(biāo)簽,這樣這個(gè) string 參數(shù)在 untiy 里面就會(huì)以一個(gè) objectfield 的形式出現(xiàn),這樣就免去了手動(dòng)輸入物體路徑的麻煩,可以直接拖動(dòng)引用,他會(huì)自己獲取路徑

實(shí)際操作

  1. 根據(jù)輸入的數(shù)據(jù)或模型進(jìn)行散點(diǎn)
  2. 設(shè)置需要的 pscal 、orient、 unity_instance 屬性值
  3. 移除重復(fù)的點(diǎn)(可選,多次散點(diǎn)有可能會(huì)有挨得很近的點(diǎn))
  4. 導(dǎo)出 HDA

細(xì)節(jié)點(diǎn)

  1. 隨機(jī)大小,可以通過(guò)控制每個(gè)點(diǎn)的 pscale 屬性的值,來(lái)影響散布物體的大小

  2. 隨機(jī)朝向,可以通過(guò)控制每個(gè)點(diǎn)的 orient 屬性的值,來(lái)影響散布物體的旋轉(zhuǎn)

    • 這里注意,vex 的旋轉(zhuǎn)是以弧度為單位的,360度一圈可以表示為 2PI, 如果輸入的是角度值,則 輸入角度/180PI 即可。

    • 沒(méi)有設(shè)置正確的 orient,可能散布出來(lái)的物體都是躺著的。應(yīng)為坐標(biāo)系是不一樣的?;A(chǔ)代碼如下

      //可以將對(duì)其方向設(shè)置到 Y 方向,這個(gè)也是網(wǎng)上找到的,先做這么一次變換,至少可以保證,在Unity 內(nèi)模型是正常站真的
      @orient=quaternion(maketransform(@N,{0,1,0}));
      
  3. 旋轉(zhuǎn)用到的函數(shù)詳解

    • maketransform 這個(gè)是構(gòu)建一個(gè)變換矩陣,這里要注意他返回的是一個(gè)矩陣
    • quaternion 可以根據(jù)一個(gè)變換矩陣得到計(jì)算一個(gè)旋轉(zhuǎn)四元數(shù)
    • 制作隨機(jī)朝向的功能,可以使用如下代碼
        // 使用角度 和軸向進(jìn)行來(lái)創(chuàng)建一個(gè) 四元素的旋轉(zhuǎn)
        vector4 oldAngle=@orient;
        vector4 randomAngle=quaternion(angels,axis);
        @orient=qmultiply(oldAngle,randomAngle);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容