LV. 13
GP 11

RE:【心得】將物理化HDT-PE裝備轉成HDT-SMP到SE上使用

樓主 Xing sdde123123
GP20 BP-

3.書寫smp的流程(可以複製一遍再去修改)更新入門簡單版請到10樓

以下名詞都是我用google翻譯和加上本身理解所發想,若有3D建模專業,覺得我用的詞不夠精準,和誤解,請一定留言我,我會更改
也請一定要 開啟自己的 nif檔去對照寫

1.開頭檔宣告

請看底下留言(不知道為甚麼我放了這段宣告,文章都會被砍斷ORZ)

2.宣告地面碰撞體

<per-triangle-shape name="VirtualGround">               ----碰撞體Value的宣告----
<margin>0.5</margin>                                                   ---碰撞的距離-----       
<priority>-2147483648</priority>               ---- 優先度,介於[-2147483648, 2147483647](地板通常最低)--
<prenetration>10</prenetration>
<tag>ground</tag>                                  ----標籤(用來簡寫Value值例如VirtualGround縮寫成ground)----
</per-triangle-shape>


3.宣告剛體(就是不允許他亂動的骨骼節點)

打開 披風Cloak的BsTrishape   NPC 開頭那些 用來把身體的骨骼節點都鎖住
<bone name="NPC L Breast01"/>
<bone name="NPC R Breast01"/>
<bone name="NPC L Calf01"/>
<bone name="NPC R Calf01"/>
  <bone name="NPC L Thigh01"/>
<bone name="NPC R Thigh01"/>
<bone name="NPC L Breast"/>
<bone name="NPC R Breast"/>
<bone name="NPC R Calf [RClf]"/>
<bone name="NPC L Calf [LClf]"/>
  <bone name="NPC Spine [Spn0]"/>
<bone name="NPC Spine1 [Spn1]"/>
<bone name="NPC Spine2 [Spn2]"/>
<bone name="NPC Pelvis [Pelv]"/>
<bone name="NPC R Thigh [RThg]"/>
<bone name="NPC L Thigh [LThg]"/>
<bone name="NPC R Butt"/>
<bone name="NPC L Butt"/>
<bone name="NPC Belly"/>
<bone name="NPC Neck [Neck]"/>
<bone name="NPC Head [Head]"/>
<bone name="NPC R Clavicle [RClv]"/>
<bone name="NPC R UpperArm [RUar]"/>
<bone name="NPC R Forearm [RLar]"/>
<bone name="NPC R Hand [RHnd]"/>
<bone name="NPC R ForearmTwist1 [RLt1]"/>
<bone name="NPC R ForearmTwist2 [RLt2]"/>
<bone name="NPC R UpperarmTwist1 [RUt1]"/>
<bone name="NPC R UpperarmTwist2 [RUt2]"/>
<bone name="NPC L Clavicle [LClv]"/>
<bone name="NPC L UpperArm [LUar]"/>
<bone name="NPC L Forearm [LLar]"/>
<bone name="NPC L Hand [LHnd]"/>
<bone name="NPC L ForearmTwist1 [LLt1]"/>
<bone name="NPC L ForearmTwist2 [LLt2]"/>
<bone name="NPC L UpperarmTwist1 [LUt1]"/>
<bone name="NPC L UpperarmTwist2 [LUt2]"/>
<bone name="NPC L Pauldron"/>
<bone name="NPC R Pauldron"/>
(這我是自己偷懶所以直接複製貼上把所有身體骨骼鎖住,可以不必像我這樣)


4.身體碰撞體宣告(如果沒有可以不用宣告,例如耳環那些小物件不太需要和其他東西造成碰撞)

<per-triangle-shape name="body cloak">
<margin>1</margin>
<priority>0</priority>
<prenetration>2</prenetration>                      ----(這項只有per-triangle-shape能有,用處為
here was probably meant to be bullets "penetration" property原文照搬,我也不清楚是啥)----
<tag>body cloak</tag>
<no-collide-with-tag>body</no-collide-with-tag>             ----(表示不與標籤名XXX的產生碰撞)---
<no-collide-with-tag>body cloak</no-collide-with-tag>  ---(基本上碰撞體自身最好別有碰撞發生)---
<no-collide-with-tag>ground</no-collide-with-tag>
<no-collide-with-tag>body skirt</no-collide-with-tag>
</per-triangle-shape>
(SMP物理若沒有表明不和誰碰撞,默認為都可以碰撞)


5.宣告錨點(就像甩繩子一般你要抓住繩的一點才可以甩動)

打開 NPC 的NiNode 找到披風的特殊骨骼 錨點基本上是 XXXX01 或 XXX 1
<bone name="Cloak L 1"/>
<bone name="Cloak 1"/>
<bone name="Top LL 1"/>
<bone name="Colar L 1"/>
<bone name="Colar R 1"/>
<bone name="Top RR 1"/>
<bone name="Top RL 1"/>
<bone name="Top LR 1"/>
<bone name="SkirtBBone01"/>


6.給予物理骨骼的基本物理参数

<bone-default>                                               ----影響下面骨骼,不影響上面----
<mass>2</mass>                                                        -----質量---
<inertia x="20" y="20" z="20"/>                           ----貫量(通常我都沒改)---
<centerOfMassTransform>                   ----這我也不清楚,詳細請看以上網址,但也通常固定這樣的值----
  <basis x="0" y="0" z="0" w="1"/>
  <origin x="0" y="0" z="0"/>
</centerOfMassTransform>
<linearDamping>0.5</linearDamping>                  ---骨骼節點線性加速度介於(0.1)之間---
<angularDamping>0.5</angularDamping>             ---骨骼節點角加速度介於(0.1)之間---
<friction>0</friction>                                                   ---骨骼節點摩差係數---
<rollingFriction>0</rollingFriction>                             ---骨骼節點旋轉摩差係數---
<restitution>0</restitution>                                                  --反彈係數--
</bone-default>


7.物理骨骼描述(基本上下拉錨點就看的到)

<bone name="Cloak L 2"/>
<bone name="Cloak 2"/>
<bone name="Top LL 2"/>
<bone name="Colar L 2"/>
<bone name="Colar R 2"/>
<bone name="Top RR 2"/>
<bone name="Top RL 2"/>
<bone name="Top LR 2"/>
<bone name="SkirtBBone02"/>

<bone name="Cloak L 3"/>
<bone name="Cloak 3"/>
<bone name="Top LL 3"/>
<bone name="Top RR 3"/>
<bone name="SkirtBBone03"/>

<bone name="Cloak L 4"/>
<bone name="Cloak 4"/>
<bone name="Top LL 4"/>
<bone name="Top RR 4"/>

<bone name="Cloak L 5"/>
<bone name="Cloak 5"/>

<bone name="Cloak L 6"/>
<bone name="Cloak 6"/>

<bone name="Cloak L 7"/>
<bone name="Cloak 7"/>

<bone name="Cloak L 8"/>
<bone name="Cloak 8"/>
(一層一層往下宣告)


8.約定物理骨骼動態參數

<generic-constraint-default>                                                                       
    <frameInB>                                                     ----(A或B有時候不一定,還是看外國原文吧)-----
      <basis x="0" y="0" z="0" w="1"/>           ----(這數值我也不常看過有人改動,所以詳細還是看原文)---
      <origin x="0" y="0" z="0"/>
    </frameInB>
    <useLinearReferenceFrameA>false</useLinearReferenceFrameA>
    <linearLowerLimit x="0" y="0" z="0"/>               -----線性約定下界(詳細往下有說明)---
    <linearUpperLimit x="0" y="0" z="0"/>              -----線性約定上界(約定的下界不能大於上界)---
    <angularLowerLimit x="-0.1" y="-0.7" z="0"/>       -----旋轉約定下界(詳細往下有說明)---
    <angularUpperLimit x="0.1" y="0.7" z="0"/>          -----旋轉約定上界(詳細往下有說明)---
    <linearStiffness x="0" y="0" z="0"/>                              -----線性彈簧係數----
    <angularStiffness x="0" y="0" z="0"/>                            -----角彈簧係數----
    <linearDamping x="0" y="0" z="0"/>                             -----線性彈簧阻尼----
    <angularDamping x="0" y="0" z="0"/>                            -----彈簧阻尼----
    <linearEquilibrium x="0" y="0" z="0"/>
    <angularEquilibrium x="0" y="0" z="0"/>
  </generic-constraint-default>
(我基本只改動線性和旋轉的約定上下界)
(且這大概是會明顯看得出影響的地方,有興趣請往下看)
1:增加搖動幅度: 請看到這兩行:
<linearLowerLimit x=“0” y=“-5” z=“-10”/>
<linearUpperLimit x=“0” y=“2” z= “10”/>
Lower(下界)中z軸的負值越大,向上搖動的幅度越大
Upper(上界)中z軸的正值越大,向下搖動的幅度越大
2:增加搖動彈性: 請注意這三行:
<linearStiffness x=“246.74” y=“246.74” z=“246.74”/>
<linearDamping x=“0.4674” y=“0.4674” z=“0.4674”/>
<linearBounce x =“0.2” y=“0.4” z=“0.7”/>
Stiffness中值越大代表彈性越大(彈簧越硬),但是相對的搖動的幅度會減小——玩過彈簧都知道彈簧越硬,雖然彈性越強,但是相同的力彈性形變越小Damping中值越大,在運動過程中的運動衰減越厲害,damping值越小,搖得越久,請不要設為0,不然一搖就不會停
Bounce中值代表越界回彈時速度的倍率
3:調整搖動的起始位置: 請注意這一項:
<linearEquilibrium x=“0” y=“-5” z=“-6”/ >
坐標參考修改幅度時的坐標:
x代表左右,y代表前後,z代表上下,同時因為父子級設定的關係,在這裡,z的值越小,胸越挺(胸的搖動起始位置越高),y的值越小胸越突出(胸的搖動初始位置越前)某種程度上這兩個參數可以增大R量
以上節錄(9DAM 伊佐那社 大)


9.約定物理骨骼描述(訣竅就是從錨點開始一個一個把骨骼連接起來)

<constraint-group>
<generic-constraint bodyA="Cloak L 2" bodyB="Cloak L 1"/>
<generic-constraint bodyA="Cloak L 3" bodyB="Cloak L 2"/>
<generic-constraint bodyA="Cloak L 4" bodyB="Cloak L 3"/>
<generic-constraint bodyA="Cloak L 5" bodyB="Cloak L 4"/>
<generic-constraint bodyA="Cloak L 6" bodyB="Cloak L 5"/>
<generic-constraint bodyA="Cloak L 7" bodyB="Cloak L 6"/>
  <generic-constraint bodyA="Cloak L 8" bodyB="Cloak L 7"/>
</constraint-group>

<constraint-group>
<generic-constraint bodyA="Cloak 2" bodyB="Cloak 1"/>
<generic-constraint bodyA="Cloak 3" bodyB="Cloak 2"/>
<generic-constraint bodyA="Cloak 4" bodyB="Cloak 3"/>
<generic-constraint bodyA="Cloak 5" bodyB="Cloak 4"/>
<generic-constraint bodyA="Cloak 6" bodyB="Cloak 5"/>
<generic-constraint bodyA="Cloak 7" bodyB="Cloak 6"/>
    <generic-constraint bodyA="Cloak 8" bodyB="Cloak 7"/>
</constraint-group>

<constraint-group>
<generic-constraint bodyA="Top LL 2" bodyB="Top LL 1"/>
<generic-constraint bodyA="Top LL 3" bodyB="Top LL 2"/>
<generic-constraint bodyA="Top LL 4" bodyB="Top LL 3"/>
</constraint-group>

<constraint-group>
<generic-constraint bodyA="Top RR 2" bodyB="Top RR 1"/>
<generic-constraint bodyA="Top RR 3" bodyB="Top RR 2"/>
<generic-constraint bodyA="Top RR 4" bodyB="Top RR 3"/>
</constraint-group>

<constraint-group>
<generic-constraint bodyA="SkirtBBone02" bodyB="SkirtBBone01"/>
<generic-constraint bodyA="SkirtBBone03" bodyB="SkirtBBone02"/>
</constraint-group>

<constraint-group>
<generic-constraint bodyA="Colar L 2" bodyB="Colar L 1"/>
</constraint-group>

<constraint-group>
<generic-constraint bodyA="Colar R 2" bodyB="Colar R 1"/>
</constraint-group>

<constraint-group>
<generic-constraint bodyA="Top RL 2" bodyB="Top RL 1"/>
</constraint-group>

<constraint-group>
<generic-constraint bodyA="Top LR 2" bodyB="Top LR 1"/>
</constraint-group>


10.其他碰撞體宣告(per-vertex-shape)

(披風,頭髮裙子這類主要想讓他們產生碰撞的)
<per-vertex-shape name="cloak">
<margin>1</margin>                             -----在每個骨骼節點生成的碰撞球的半徑大小,不可超過2.5-----
<priority>1</priority>                                                    -----優先度-----
<tag>cloak</tag>
<no-collide-with-tag>cloak</no-collide-with-tag>         ---(基本上碰撞體自身最好別有碰撞發生)---
<no-collide-with-tag>hair</no-collide-with-tag>
<no-collide-with-tag>body</no-collide-with-tag>
<no-collide-with-tag>body skirt</no-collide-with-tag>
(----這些weight-threshold bone看看就好我也是不太清楚,但沒加影響好像也不大------)
<weight-threshold bone="Cloak 1">1</weight-threshold>       
<weight-threshold bone="Top LL 1">1</weight-threshold>
<weight-threshold bone="Top LR 1">1</weight-threshold>
<weight-threshold bone="Cloak L 1">1</weight-threshold>
<weight-threshold bone="Colar L 1">1</weight-threshold>
<weight-threshold bone="Colar R 1">1</weight-threshold>
<weight-threshold bone="Top RR 1">1</weight-threshold>
<weight-threshold bone="Top RL 1">1</weight-threshold>
<weight-threshold bone="Cloak 2">0.5</weight-threshold>
<weight-threshold bone="Cloak 3">0.5</weight-threshold>
<weight-threshold bone="Cloak 4">0.5</weight-threshold>
<weight-threshold bone="Cloak 5">0.5</weight-threshold>
<weight-threshold bone="Cloak 6">0.5</weight-threshold>
<weight-threshold bone="Cloak 7">0.5</weight-threshold>
<weight-threshold bone="Cloak 8">0.5</weight-threshold>
<weight-threshold bone="Cloak L 2">0.5</weight-threshold>
<weight-threshold bone="Cloak L 3">0.5</weight-threshold>
<weight-threshold bone="Cloak L 4">0.5</weight-threshold>
<weight-threshold bone="Cloak L 5">0.5</weight-threshold>
<weight-threshold bone="Cloak L 6">0.5</weight-threshold>
<weight-threshold bone="Cloak L 7">0.5</weight-threshold>
<weight-threshold bone="Cloak L 8">0.5</weight-threshold>
<weight-threshold bone="Top LL 2">0.5</weight-threshold>
<weight-threshold bone="Top LL 3">0.5</weight-threshold>
<weight-threshold bone="Top LL 4">0.5</weight-threshold>
<weight-threshold bone="Top RR 2">0.5</weight-threshold>
<weight-threshold bone="Top RR 3">0.5</weight-threshold>
<weight-threshold bone="Top RR 4">0.5</weight-threshold>
<weight-threshold bone="Top LR 2">0.5</weight-threshold>
<weight-threshold bone="Top RL 2">0.5</weight-threshold>
<weight-threshold bone="Colar L 2">0.5</weight-threshold>
<weight-threshold bone="Colar R 2">0.5</weight-threshold>
</per-vertex-shape>


11.結尾(恭喜!!!才怪,要進遊戲除錯了XDDD)

</system>

辛苦各位看到這邊,如果有問題歡迎加入,上古群來一起討論https://discord.gg/54PaGaj
這邊就放一些 成效給大家看
群裡也會放出一些我改動的裝備
然後還是希望能點燃有想研究裝備MOD的熱情,(其實是我也想當伸手黨)
謝謝各位
20
-
未登入的勇者,要加入討論嗎?
板務人員:

2851 筆精華,02/06 更新
一個月內新增 3
歡迎加入共同維護。


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】