SlideShare a Scribd company logo
Dept. of Electronics Engineering
Construct 2 Physics
behavior
電子工程系電腦遊戲設計組
吳錫修
2014.5.4
物理特性
 Physics behavior賦予物件具備物理學性質,如密度、磨擦力、碰撞、
彈性等影響
 二個Physics behavior物體彼此會呈現物理世界中碰撞、磨擦、反
彈…
Wu, ShyiShiou2
Physics properties 1/5
用來調整physics行為參數
 Immovable
設為Yes,表示物體具有無限大的質量 (忽略物
件的Density值),此時物體將固定不動。預設
為No
 Collision mask
指定物體碰撞罩遮方式,有三種罩遮模式:
 Bounding box
使用外接矩形碰撞罩遮
 Circle
使用圓形碰撞罩遮
Wu, ShyiShiou3
Physics properties 2/5
 Use collision mask
使用物件的collision polygon (在Image/Animations編輯器中設定的碰
撞區),物件預設是以外接矩形做為collision polygon
Edit image工具
 Set collision polygon
建議不要超過8個邊
Wu, ShyiShiou4
Physics properties 3/5
 Prevent rotation
鎖定物體角度值,物體不會因碰撞而旋轉。預設為No
 Density
物體的密度值,預設為1
物體質量計算公式為密度乘以其碰撞罩遮面積。在遊戲中為物體設定
精準的密度值並不重要,反而是不同物體間的相對密度值有更顯著的
影響 (例如⼀個密度值6的物體,對密度值3的物體而言,有2倍的密度
值)
 Friction
摩擦係數,0表示無摩擦力,1表示最大摩擦力。預設為0.5
摩擦係數關係著物體碰觸在⼀起時是否容易移動物體
Wu, ShyiShiou5
Physics properties 4/5
 Elasticity
物體的彈性係數,0表示無反彈力,1表示具有最大彈性。預設為0.2
彈性係數影響高處物體掉落地面後的反彈情形
 Linear damping
線性阻尼係數,移動中物體逐漸趨緩的程度
0表示不減速,1表示最大減速。預設為0
 Angular damping
角度阻尼,旋轉中物體逐漸趨緩的程度
0表示不變慢,1表示最大減速。預設為0.01
Wu, ShyiShiou6
Physics properties 5/5
 Bullet
啟用快速移動物體之碰撞檢測功能。預設為No
啟用Bullet功能可能影響遊戲效能,除非物件移動太快,影響物理引
擎標準碰撞作業的準確性,不建議啟用
 Initial state
是否在⼀開始就啟用physics功能。預設為Enabled
如果沒啟用物理行為,其Physics behavior物體將可穿透本物體,有
如物體本身是透空不存在的
Wu, ShyiShiou7
Physics conditions 1/2
提供給事件表的事件條件
 Compare angular velocity
比對物體目前的角速度值,單位degrees/second
正值表示物體順時針旋轉,負值表示物體為逆時針旋轉
 Compare mass
比對物體的質量 (物體的碰撞多邊形面積乘以密度值)
 Compare velocity
比對物體目前的速度,單位pixels/second
可以就X軸方向速度、Y軸方向速度、或整體速度進行比對
Wu, ShyiShiou8
Physics conditions 2/2
 Is enabled
檢視物體的physics behavior是否為開啟狀態
 Is sleeping
檢視物體是否處於休眠狀態。當物體已有⼀段時間未移動或受干擾,
物理引擎就可以停止處理該物件
Wu, ShyiShiou9
Physics actions: Forces 1/2
事件表中與施力有關的actions
 Apply force
 Apply force at angle
 Apply force towards position
在物體施加外力,可以是某個角度、對著物體某⼀圖像參考點、朝向
某⼀定點、或指定X、Y軸分力方式
施力將使物體朝著施力方向產生加速
Wu, ShyiShiou10
Physics actions: Forces 2/2
 Apply impulse
 Apply impulse at angle
 Apply impulse towards position
對物體施加⼀個衝擊, 可以是某個角度、對著物體某⼀圖像參考點、
或指定X、Y軸分力方式
可以模擬物體被外物擊中效果,例如被蝙蝠襲擊
 Set velocity
設定物體X、Y軸分向速度 (單位pixels/second) 來變更物體目前的移
動速度
Wu, ShyiShiou11
Physics actions: Global settings 1/2
事件表中與全域設定有關的actions
 Enable/disable collisions
預設情況下,所有的物體會相互碰撞。如果取消物體碰撞,該物體可
穿越其它物體
這項設定會影響物體的所有複本實體
 Set stepping iterations
設定物理引擎在計算物體速度和座標的疊代次數。預設值分別是8和3
數值越低,運行速度愈快,但精確性較低;較高的設定值可提供更逼
真物理模擬效果,但會降低效能
Wu, ShyiShiou12
Physics actions: Global settings 2/2
 Set stepping mode
選擇使用DT (增量時間,執行速度與幀率無關)或固定值做為物理時
間計步方式。預設是使用固定時間計步方式,保證每次模擬都有同樣
的結果
DT方式會根據遊戲幀率的調整時間計步值,因此相同的情境模擬執行
兩次,可能會產生不同的結果。注意,DT方式的最大時間計步被限制
在1/30(約33ms,相當於每秒30幀),以防止⻑時間計步可能導致
的不穩定性
 Set world gravity
設定遊戲世界重力值,會影響遊戲中的所有物體
預設遊戲世界重力為10 (方向向下)
Wu, ShyiShiou13
Physics actions: Joints
事件表中與物件關節設定有關的actions
 Create distance joint
將二個物體以指定的距離接合在⼀起,彷彿中間有⼀個連接桿
 Create revolute joint
 Create limited revolute joint
將二個物體以鉸鏈連在⼀起,就好像以針釘住⼀樣,他們可以自由旋
轉 。有限轉動關節則可限定旋轉角度,就像⼀個鐘攞
 Remove all joints
刪除物體的所有關節,會連帶影響關節連接的物體
Wu, ShyiShiou14
Physics actions: Torque
事件表中與力矩有關的actions
 Apply torque
 Apply torque towards angle
 Apply torque towards position
施加力矩(旋轉加速)到物體,可以直接施力或某⼀角度施力或朝向
指定座標
 Set angular velocity
設定物體角速度(旋轉速率),單位degrees/second
Wu, ShyiShiou15
Physics expressions 1/2
物件實體在Runtime時的Physics行為資料
 AngularVelocity
物體目前的角速度(旋轉速率),單位degrees/second
 CenterOfMassX、CenterOfMassY
物體目前的質量中心點位置,由物理引擎依據物件的collision mask
屬性計算而得,並不⼀定是在物體中間
 Mass
物體的質量,等於物件的ollision mask面積乘以物體density
 VelocityX、VelocityY
物體目前的速度值,單位pixels/second
Wu, ShyiShiou16
Physics expressions 2/2
 AngularDamping
物體的角度阻尼值
 Density
物體的密度值
 Elasticity
物體的彈力係數
 Friction
物體的摩差係數
 LinearDamping
物體的線性阻尼值
Wu, ShyiShiou17

More Related Content

More from 吳錫修 (ShyiShiou Wu)

Vuforia AR影片程式設計
Vuforia AR影片程式設計Vuforia AR影片程式設計
Vuforia AR影片程式設計
吳錫修 (ShyiShiou Wu)
 
micro:bit亮度感測應用
micro:bit亮度感測應用micro:bit亮度感測應用
micro:bit亮度感測應用
吳錫修 (ShyiShiou Wu)
 
Vuforia AR 同時追踨多張辨識圖
Vuforia AR同時追踨多張辨識圖Vuforia AR同時追踨多張辨識圖
Vuforia AR 同時追踨多張辨識圖
吳錫修 (ShyiShiou Wu)
 
micro:bit開關控制應用
micro:bit開關控制應用micro:bit開關控制應用
micro:bit開關控制應用
吳錫修 (ShyiShiou Wu)
 
Vuforia AR 應用程式設計入門
Vuforia AR應用程式設計入門Vuforia AR應用程式設計入門
Vuforia AR 應用程式設計入門
吳錫修 (ShyiShiou Wu)
 
Vuforia AR 應用程式準備作業
Vuforia AR應用程式準備作業Vuforia AR應用程式準備作業
Vuforia AR 應用程式準備作業
吳錫修 (ShyiShiou Wu)
 
micro:bit LED顯示控制
micro:bit LED顯示控制micro:bit LED顯示控制
micro:bit LED顯示控制
吳錫修 (ShyiShiou Wu)
 
IDE for micro:bit
IDE for micro:bitIDE for micro:bit
IDE for micro:bit
吳錫修 (ShyiShiou Wu)
 
Microbit 1 introduction
Microbit 1 introductionMicrobit 1 introduction
Microbit 1 introduction
吳錫修 (ShyiShiou Wu)
 
Arduino overview
Arduino overviewArduino overview
Arduino overview
吳錫修 (ShyiShiou Wu)
 
使用Makeblock App學習mBot程式設計
使用Makeblock App學習mBot程式設計使用Makeblock App學習mBot程式設計
使用Makeblock App學習mBot程式設計
吳錫修 (ShyiShiou Wu)
 
使用M部落App學習mBot程式設計
使用M部落App學習mBot程式設計使用M部落App學習mBot程式設計
使用M部落App學習mBot程式設計
吳錫修 (ShyiShiou Wu)
 
nodeMCU IOT教學03 - NodeMCU導論
nodeMCU IOT教學03 - NodeMCU導論nodeMCU IOT教學03 - NodeMCU導論
nodeMCU IOT教學03 - NodeMCU導論
吳錫修 (ShyiShiou Wu)
 
nodeMCU IOT教學02 - Lua語言
nodeMCU IOT教學02 - Lua語言nodeMCU IOT教學02 - Lua語言
nodeMCU IOT教學02 - Lua語言
吳錫修 (ShyiShiou Wu)
 
Unity遊戲程式設計 - 2D Platformer遊戲
Unity遊戲程式設計 - 2D Platformer遊戲Unity遊戲程式設計 - 2D Platformer遊戲
Unity遊戲程式設計 - 2D Platformer遊戲
吳錫修 (ShyiShiou Wu)
 
Unity遊戲程式設計 - 2D移動與碰撞處理II
Unity遊戲程式設計 - 2D移動與碰撞處理IIUnity遊戲程式設計 - 2D移動與碰撞處理II
Unity遊戲程式設計 - 2D移動與碰撞處理II
吳錫修 (ShyiShiou Wu)
 
Unity遊戲程式設計 - 2D運動與碰撞處理I
Unity遊戲程式設計 - 2D運動與碰撞處理IUnity遊戲程式設計 - 2D運動與碰撞處理I
Unity遊戲程式設計 - 2D運動與碰撞處理I
吳錫修 (ShyiShiou Wu)
 
Python與Ardinio整合應用
Python與Ardinio整合應用Python與Ardinio整合應用
Python與Ardinio整合應用
吳錫修 (ShyiShiou Wu)
 
mBlock積木式設計程式
mBlock積木式設計程式mBlock積木式設計程式
mBlock積木式設計程式
吳錫修 (ShyiShiou Wu)
 
Arduino程式除錯
Arduino程式除錯Arduino程式除錯
Arduino程式除錯
吳錫修 (ShyiShiou Wu)
 

More from 吳錫修 (ShyiShiou Wu) (20)

Vuforia AR影片程式設計
Vuforia AR影片程式設計Vuforia AR影片程式設計
Vuforia AR影片程式設計
 
micro:bit亮度感測應用
micro:bit亮度感測應用micro:bit亮度感測應用
micro:bit亮度感測應用
 
Vuforia AR 同時追踨多張辨識圖
Vuforia AR同時追踨多張辨識圖Vuforia AR同時追踨多張辨識圖
Vuforia AR 同時追踨多張辨識圖
 
micro:bit開關控制應用
micro:bit開關控制應用micro:bit開關控制應用
micro:bit開關控制應用
 
Vuforia AR 應用程式設計入門
Vuforia AR應用程式設計入門Vuforia AR應用程式設計入門
Vuforia AR 應用程式設計入門
 
Vuforia AR 應用程式準備作業
Vuforia AR應用程式準備作業Vuforia AR應用程式準備作業
Vuforia AR 應用程式準備作業
 
micro:bit LED顯示控制
micro:bit LED顯示控制micro:bit LED顯示控制
micro:bit LED顯示控制
 
IDE for micro:bit
IDE for micro:bitIDE for micro:bit
IDE for micro:bit
 
Microbit 1 introduction
Microbit 1 introductionMicrobit 1 introduction
Microbit 1 introduction
 
Arduino overview
Arduino overviewArduino overview
Arduino overview
 
使用Makeblock App學習mBot程式設計
使用Makeblock App學習mBot程式設計使用Makeblock App學習mBot程式設計
使用Makeblock App學習mBot程式設計
 
使用M部落App學習mBot程式設計
使用M部落App學習mBot程式設計使用M部落App學習mBot程式設計
使用M部落App學習mBot程式設計
 
nodeMCU IOT教學03 - NodeMCU導論
nodeMCU IOT教學03 - NodeMCU導論nodeMCU IOT教學03 - NodeMCU導論
nodeMCU IOT教學03 - NodeMCU導論
 
nodeMCU IOT教學02 - Lua語言
nodeMCU IOT教學02 - Lua語言nodeMCU IOT教學02 - Lua語言
nodeMCU IOT教學02 - Lua語言
 
Unity遊戲程式設計 - 2D Platformer遊戲
Unity遊戲程式設計 - 2D Platformer遊戲Unity遊戲程式設計 - 2D Platformer遊戲
Unity遊戲程式設計 - 2D Platformer遊戲
 
Unity遊戲程式設計 - 2D移動與碰撞處理II
Unity遊戲程式設計 - 2D移動與碰撞處理IIUnity遊戲程式設計 - 2D移動與碰撞處理II
Unity遊戲程式設計 - 2D移動與碰撞處理II
 
Unity遊戲程式設計 - 2D運動與碰撞處理I
Unity遊戲程式設計 - 2D運動與碰撞處理IUnity遊戲程式設計 - 2D運動與碰撞處理I
Unity遊戲程式設計 - 2D運動與碰撞處理I
 
Python與Ardinio整合應用
Python與Ardinio整合應用Python與Ardinio整合應用
Python與Ardinio整合應用
 
mBlock積木式設計程式
mBlock積木式設計程式mBlock積木式設計程式
mBlock積木式設計程式
 
Arduino程式除錯
Arduino程式除錯Arduino程式除錯
Arduino程式除錯
 

Construct 2 Physics behavior

  • 1. Dept. of Electronics Engineering Construct 2 Physics behavior 電子工程系電腦遊戲設計組 吳錫修 2014.5.4
  • 2. 物理特性  Physics behavior賦予物件具備物理學性質,如密度、磨擦力、碰撞、 彈性等影響  二個Physics behavior物體彼此會呈現物理世界中碰撞、磨擦、反 彈… Wu, ShyiShiou2
  • 3. Physics properties 1/5 用來調整physics行為參數  Immovable 設為Yes,表示物體具有無限大的質量 (忽略物 件的Density值),此時物體將固定不動。預設 為No  Collision mask 指定物體碰撞罩遮方式,有三種罩遮模式:  Bounding box 使用外接矩形碰撞罩遮  Circle 使用圓形碰撞罩遮 Wu, ShyiShiou3
  • 4. Physics properties 2/5  Use collision mask 使用物件的collision polygon (在Image/Animations編輯器中設定的碰 撞區),物件預設是以外接矩形做為collision polygon Edit image工具  Set collision polygon 建議不要超過8個邊 Wu, ShyiShiou4
  • 5. Physics properties 3/5  Prevent rotation 鎖定物體角度值,物體不會因碰撞而旋轉。預設為No  Density 物體的密度值,預設為1 物體質量計算公式為密度乘以其碰撞罩遮面積。在遊戲中為物體設定 精準的密度值並不重要,反而是不同物體間的相對密度值有更顯著的 影響 (例如⼀個密度值6的物體,對密度值3的物體而言,有2倍的密度 值)  Friction 摩擦係數,0表示無摩擦力,1表示最大摩擦力。預設為0.5 摩擦係數關係著物體碰觸在⼀起時是否容易移動物體 Wu, ShyiShiou5
  • 6. Physics properties 4/5  Elasticity 物體的彈性係數,0表示無反彈力,1表示具有最大彈性。預設為0.2 彈性係數影響高處物體掉落地面後的反彈情形  Linear damping 線性阻尼係數,移動中物體逐漸趨緩的程度 0表示不減速,1表示最大減速。預設為0  Angular damping 角度阻尼,旋轉中物體逐漸趨緩的程度 0表示不變慢,1表示最大減速。預設為0.01 Wu, ShyiShiou6
  • 7. Physics properties 5/5  Bullet 啟用快速移動物體之碰撞檢測功能。預設為No 啟用Bullet功能可能影響遊戲效能,除非物件移動太快,影響物理引 擎標準碰撞作業的準確性,不建議啟用  Initial state 是否在⼀開始就啟用physics功能。預設為Enabled 如果沒啟用物理行為,其Physics behavior物體將可穿透本物體,有 如物體本身是透空不存在的 Wu, ShyiShiou7
  • 8. Physics conditions 1/2 提供給事件表的事件條件  Compare angular velocity 比對物體目前的角速度值,單位degrees/second 正值表示物體順時針旋轉,負值表示物體為逆時針旋轉  Compare mass 比對物體的質量 (物體的碰撞多邊形面積乘以密度值)  Compare velocity 比對物體目前的速度,單位pixels/second 可以就X軸方向速度、Y軸方向速度、或整體速度進行比對 Wu, ShyiShiou8
  • 9. Physics conditions 2/2  Is enabled 檢視物體的physics behavior是否為開啟狀態  Is sleeping 檢視物體是否處於休眠狀態。當物體已有⼀段時間未移動或受干擾, 物理引擎就可以停止處理該物件 Wu, ShyiShiou9
  • 10. Physics actions: Forces 1/2 事件表中與施力有關的actions  Apply force  Apply force at angle  Apply force towards position 在物體施加外力,可以是某個角度、對著物體某⼀圖像參考點、朝向 某⼀定點、或指定X、Y軸分力方式 施力將使物體朝著施力方向產生加速 Wu, ShyiShiou10
  • 11. Physics actions: Forces 2/2  Apply impulse  Apply impulse at angle  Apply impulse towards position 對物體施加⼀個衝擊, 可以是某個角度、對著物體某⼀圖像參考點、 或指定X、Y軸分力方式 可以模擬物體被外物擊中效果,例如被蝙蝠襲擊  Set velocity 設定物體X、Y軸分向速度 (單位pixels/second) 來變更物體目前的移 動速度 Wu, ShyiShiou11
  • 12. Physics actions: Global settings 1/2 事件表中與全域設定有關的actions  Enable/disable collisions 預設情況下,所有的物體會相互碰撞。如果取消物體碰撞,該物體可 穿越其它物體 這項設定會影響物體的所有複本實體  Set stepping iterations 設定物理引擎在計算物體速度和座標的疊代次數。預設值分別是8和3 數值越低,運行速度愈快,但精確性較低;較高的設定值可提供更逼 真物理模擬效果,但會降低效能 Wu, ShyiShiou12
  • 13. Physics actions: Global settings 2/2  Set stepping mode 選擇使用DT (增量時間,執行速度與幀率無關)或固定值做為物理時 間計步方式。預設是使用固定時間計步方式,保證每次模擬都有同樣 的結果 DT方式會根據遊戲幀率的調整時間計步值,因此相同的情境模擬執行 兩次,可能會產生不同的結果。注意,DT方式的最大時間計步被限制 在1/30(約33ms,相當於每秒30幀),以防止⻑時間計步可能導致 的不穩定性  Set world gravity 設定遊戲世界重力值,會影響遊戲中的所有物體 預設遊戲世界重力為10 (方向向下) Wu, ShyiShiou13
  • 14. Physics actions: Joints 事件表中與物件關節設定有關的actions  Create distance joint 將二個物體以指定的距離接合在⼀起,彷彿中間有⼀個連接桿  Create revolute joint  Create limited revolute joint 將二個物體以鉸鏈連在⼀起,就好像以針釘住⼀樣,他們可以自由旋 轉 。有限轉動關節則可限定旋轉角度,就像⼀個鐘攞  Remove all joints 刪除物體的所有關節,會連帶影響關節連接的物體 Wu, ShyiShiou14
  • 15. Physics actions: Torque 事件表中與力矩有關的actions  Apply torque  Apply torque towards angle  Apply torque towards position 施加力矩(旋轉加速)到物體,可以直接施力或某⼀角度施力或朝向 指定座標  Set angular velocity 設定物體角速度(旋轉速率),單位degrees/second Wu, ShyiShiou15
  • 16. Physics expressions 1/2 物件實體在Runtime時的Physics行為資料  AngularVelocity 物體目前的角速度(旋轉速率),單位degrees/second  CenterOfMassX、CenterOfMassY 物體目前的質量中心點位置,由物理引擎依據物件的collision mask 屬性計算而得,並不⼀定是在物體中間  Mass 物體的質量,等於物件的ollision mask面積乘以物體density  VelocityX、VelocityY 物體目前的速度值,單位pixels/second Wu, ShyiShiou16
  • 17. Physics expressions 2/2  AngularDamping 物體的角度阻尼值  Density 物體的密度值  Elasticity 物體的彈力係數  Friction 物體的摩差係數  LinearDamping 物體的線性阻尼值 Wu, ShyiShiou17