home *** CD-ROM | disk | FTP | other *** search
/ CyberMycha 2008 January / Cybermycha 1_2008.iso / DataPh~1.cab / _E27C03C8817040858840DA99A6492790 < prev   
Encoding:
Text File  |  2004-07-15  |  10.6 KB  |  300 lines

  1. ///////////////////////////////////////////////////////////////////////////////////////////////////
  2. // Reprezentacja tasmy ogrodzeniowej przy pomocy fizyki ODE
  3. // Ze skryptu korzysta ODEPhysicsTape.cpp
  4. ///////////////////////////////////////////////////////////////////////////////////////////////////
  5.  
  6. !include("ODEPhysics.def")
  7.  
  8. !TapeParams()
  9. !Mass(f)                                // masa ciala [kg]
  10. !WindFadeInOutDisableTimes(f,f,f)       // czasy wygasniecia sily wiatru dla tasmy (fade in, fade out, disable)
  11. !ForceDisableTime(f)                    // czas po ktorym fizyka zostanie bezwzglednie wylaczona
  12.  
  13. !BonesWeightDistribution()              // pozwala na ustalenie rozkladu masy
  14. !SetBoneWeight(s,i)                     // ustawia wzgledna mase danej kosci
  15.  
  16. !CollisionResponse()                    // ustawienie kolizji
  17. !SetResponse(s,s)                       // sposob reakcji na kolizje
  18. !SetResponseParam(s,f)                  // parametr reakcji na kolizje
  19.  
  20. !CollisionResponseOff()                 // wylaczenie kolizji
  21.  
  22. !Joints()
  23. !Set3DOFStops(s,f,f,f,f,f,f)            // ustawienie parametrow stopu w joincie z 3 stopniami swobody
  24. !Set2DOFStops(s,f,f,f,f)                // ustawienie parametrow stopu w joincie z 2 stopniami swobody
  25. !Set1DOFStops(s,f,f)                    // ustawienie parametrow stopu w joincie z 1 stopniem swobody
  26. !SetFrictionForce(s,f)                  // sila tarcia jointa - sila probujaca zatrzymac np. zgiecie reki
  27. !SetStopCFM(s,f)                        // parametr CFM w reakcji na osiagniecie stopu
  28. !SetStopERP(s,f)                        // parametr ERP w reakcji na osiagniecie stopu
  29. !SetCFM(s,f)                            // parametr CFM jointa
  30. !SetFudgeFactor(s,f)                    // parametr FudgeFactor - okreslajacy wspolczynnik zawrocenia jointa ze stopu
  31. !SetAnchorPosition(s,f,f,f,f,f,f)       // ustawia pozycje stawu (anchora jointa) na podstawie 2 wektorow odleglosci wzglednych od srodkow kosci
  32.  
  33. //-------------------------------------------------------------------------------
  34.  
  35. TapeParams()
  36. {
  37.     Mass(0.5)
  38.     WindFadeInOutDisableTimes(1, 4, 7)
  39.     ForceDisableTime(8)
  40. }
  41.  
  42. //-------------------------------------------------------------------------------
  43.  
  44. PhysicsParams()
  45. {
  46.     SetPhysicsSurfaceID(SRF_FLEXIBLE)
  47.     SetMaxVels(1700, 10)
  48.     SetCollisionDepthCompressor(0.7, 5)
  49.     SetAutoDisableVels(0.1, 0.1, 2)
  50.     SetAbsorbers(0.02, 0.005) 
  51.     SetWaterFloat(0.000000000000000001)
  52.     SetExtraGravity(0, 800, 0)
  53.     EnableMassPoint(1)
  54.     SetMaxWatchingTime(0.5)
  55.     SetAwakener(0)
  56. }
  57.  
  58. //-------------------------------------------------------------------------------
  59.  
  60. ContactParams("Terrain")
  61. {
  62.     ZeroFlags()
  63.     Mu(300)                  
  64.     
  65.     SetModeFlag("dContactSlip1")
  66.     SetModeFlag("dContactSlip2")
  67.     Slip1(0.1)                             
  68.     Slip2(0.1)                
  69.  
  70.     SetModeFlag("dContactSoftERP")
  71.     SetModeFlag("dContactSoftCFM")
  72.     SoftERP(0.45) 
  73.     SoftCFM(0.00001)
  74.  
  75.     Ignore(0)
  76. }
  77.  
  78. //-------------------------------------------------------------------------------
  79.  
  80. ContactParams("Trees")
  81. {
  82.     ZeroFlags()
  83.     Mu(10)                  
  84.     
  85.     SetModeFlag("dContactSlip1")
  86.     SetModeFlag("dContactSlip2")
  87.     Slip1(1)                             
  88.     Slip2(1)                
  89.  
  90.     SetModeFlag("dContactSoftERP")
  91.     SetModeFlag("dContactSoftCFM")
  92.     SoftERP(0.45) 
  93.     SoftCFM(0.00001)
  94.  
  95.     Ignore(0)
  96. }
  97.  
  98. //-------------------------------------------------------------------------------
  99.  
  100. ContactParams("NonODEObjects")
  101. {
  102.     ZeroFlags()
  103.     Mu(10)                  
  104.     
  105.     SetModeFlag("dContactSlip1")
  106.     SetModeFlag("dContactSlip2")
  107.     Slip1(1)                             
  108.     Slip2(1)                
  109.  
  110.     SetModeFlag("dContactSoftERP")
  111.     SetModeFlag("dContactSoftCFM")
  112.     SoftERP(0.45) 
  113.     SoftCFM(0.00001)
  114.  
  115.     Ignore(0)
  116. }
  117.  
  118. //-------------------------------------------------------------------------------
  119.  
  120. ContactParams("ODEObjects")
  121. {
  122.     ZeroFlags()
  123.     Mu(10)                  
  124.     
  125.     SetModeFlag("dContactSlip1")
  126.     SetModeFlag("dContactSlip2")
  127.     Slip1(1)                             
  128.     Slip2(1)                
  129.  
  130.     SetModeFlag("dContactSoftERP")
  131.     SetModeFlag("dContactSoftCFM")
  132.     SoftERP(0.45) 
  133.     SoftCFM(0.00001)
  134.  
  135.     Ignore(0)
  136. }
  137.  
  138. //-------------------------------------------------------------------------------
  139.  
  140. ContactParams("Water")
  141. {
  142. /*
  143.     ZeroFlags()
  144.     Mu(10)                  
  145.     
  146.     SetModeFlag("dContactSlip1")
  147.     SetModeFlag("dContactSlip2")
  148.     Slip1(1)                             
  149.     Slip2(1)                
  150.  
  151.     SetModeFlag("dContactSoftERP")
  152.     SetModeFlag("dContactSoftCFM")
  153.     SoftERP(0.45) 
  154.     SoftCFM(0.00001)
  155. */
  156.     Ignore(1)
  157. }
  158.  
  159. //-------------------------------------------------------------------------------
  160.  
  161. Joints()
  162. {
  163.     // parametry stopu
  164.     Set2DOFStops("BONE1 BONE2",     -0.20, 0.20,   -2.00, 2.00) 
  165.     Set2DOFStops("BONE2 BONE3",     -0.20, 0.20,   -2.00, 2.00) 
  166.     Set2DOFStops("BONE3 BONE4",     -0.20, 0.20,   -2.00, 2.00) 
  167.     Set2DOFStops("BONE4 BONE5",     -0.20, 0.20,   -2.00, 2.00) 
  168.     // Set2DOFStops("BONE5 BONE6",     -2.20, 2.20,   -2.00, 2.00) 
  169.     // Set2DOFStops("BONE6 BONE7",     -2.20, 2.20,   -2.00, 2.00) 
  170.     // Set2DOFStops("BONE7 BONE8",     -2.20, 2.20,   -2.00, 2.00) 
  171.     // Set2DOFStops("BONE8 BONE9",     -2.20, 2.20,   -2.00, 2.00) 
  172.     // Set2DOFStops("BONE9 BONE10",    -2.20, 2.20,   -2.00, 2.00) 
  173.  
  174.     // polozenie stawow
  175.     SetAnchorPosition("BONE1 BONE2",    0.50,  0.00,  0.00,     -0.50,  0.00,  0.00)
  176.     SetAnchorPosition("BONE2 BONE3",    0.50,  0.00,  0.00,     -0.50,  0.00,  0.00)
  177.     SetAnchorPosition("BONE3 BONE4",    0.50,  0.00,  0.00,     -0.50,  0.00,  0.00)
  178.     SetAnchorPosition("BONE4 BONE5",    0.50,  0.00,  0.00,     -0.50,  0.00,  0.00)
  179.     // SetAnchorPosition("BONE5 BONE6",    0.50,  0.00,  0.00,     -0.50,  0.00,  0.00)
  180.     // SetAnchorPosition("BONE6 BONE7",    0.50,  0.00,  0.00,     -0.50,  0.00,  0.00)
  181.     // SetAnchorPosition("BONE7 BONE8",    0.50,  0.00,  0.00,     -0.50,  0.00,  0.00)
  182.     // SetAnchorPosition("BONE8 BONE9",    0.50,  0.00,  0.00,     -0.50,  0.00,  0.00)
  183.     // SetAnchorPosition("BONE9 BONE10",    0.50,  0.00,  0.00,     -0.50,  0.00,  0.00)
  184.  
  185.     // sily tarcia stawow
  186.     SetFrictionForce("BONE1 BONE2",     0.04)
  187.     SetFrictionForce("BONE2 BONE3",     0.04)
  188.     SetFrictionForce("BONE3 BONE4",     0.04)
  189.     SetFrictionForce("BONE4 BONE5",     0.04)
  190.     // SetFrictionForce("BONE5 BONE6",     0.04)
  191.     // SetFrictionForce("BONE6 BONE7",     0.04)
  192.     // SetFrictionForce("BONE7 BONE8",     0.04)
  193.     // SetFrictionForce("BONE8 BONE9",     0.04)
  194.     // SetFrictionForce("BONE9 BONE10",     0.04)
  195.  
  196.     // wspolczynniki dopuszczalnych bledow stopow
  197.     SetStopERP("BONE1 BONE2",   0.01)
  198.     SetStopERP("BONE2 BONE3",   0.01)
  199.     SetStopERP("BONE3 BONE4",   0.01)
  200.     SetStopERP("BONE4 BONE5",   0.01)
  201.     // SetStopERP("BONE5 BONE6",   0.01)
  202.     // SetStopERP("BONE6 BONE7",   0.01)
  203.     // SetStopERP("BONE7 BONE8",   0.01)
  204.     // SetStopERP("BONE8 BONE9",   0.01)
  205.     // SetStopERP("BONE9 BONE10",   0.01)
  206.  
  207.     // wspolczynniki sprezystosci jointow po osiagnieciu stopow
  208.     SetStopCFM("BONE1 BONE2",   0.10001)
  209.     SetStopCFM("BONE2 BONE3",   0.10001)
  210.     SetStopCFM("BONE3 BONE4",   0.10001)
  211.     SetStopCFM("BONE4 BONE5",   0.10001)
  212.     // SetStopCFM("BONE5 BONE6",   0.10001)
  213.     // SetStopCFM("BONE6 BONE7",   0.10001)
  214.     // SetStopCFM("BONE7 BONE8",   0.10001)
  215.     // SetStopCFM("BONE8 BONE9",   0.10001)
  216.     // SetStopCFM("BONE9 BONE10",   0.10001)
  217.     
  218.     // wspolczynniki sprezystosci jointow
  219.     SetCFM("BONE1 BONE2",   0.1)
  220.     SetCFM("BONE2 BONE3",   0.1)
  221.     SetCFM("BONE3 BONE4",   0.1)
  222.     SetCFM("BONE4 BONE5",   0.1)
  223.     // SetCFM("BONE5 BONE6",   0.1)
  224.     // SetCFM("BONE6 BONE7",   0.1)
  225.     // SetCFM("BONE7 BONE8",   0.1)
  226.     // SetCFM("BONE8 BONE9",   0.1)
  227.     // SetCFM("BONE9 BONE10",   0.1)
  228.  
  229.     // wspolczynniki tlumienia sily oddalajacej od stopu (1 - brak tlumienia, 0.5 - sila zmniejszona dwukrotnie)
  230.     SetFudgeFactor("BONE1 BONE2",   0.9)
  231.     SetFudgeFactor("BONE2 BONE3",   0.9)
  232.     SetFudgeFactor("BONE3 BONE4",   0.9)
  233.     SetFudgeFactor("BONE4 BONE5",   0.9)
  234.     // SetFudgeFactor("BONE5 BONE6",   0.9)
  235.     // SetFudgeFactor("BONE6 BONE7",   0.9)
  236.     // SetFudgeFactor("BONE7 BONE8",   0.9)
  237.     // SetFudgeFactor("BONE8 BONE9",   0.9)
  238.     // SetFudgeFactor("BONE9 BONE10",   0.9)
  239. }
  240.  
  241. //-------------------------------------------------------------------------------
  242.  
  243. BonesWeightDistribution()
  244. {
  245.     // ustawiamy ratio masy uzywanych kosci
  246.     SetBoneWeight("Lip_Bone01",     4)             
  247.     SetBoneWeight("Lip_Bone02",     2)             
  248.     SetBoneWeight("Lip_Bone03",     1)             
  249.     SetBoneWeight("Lip_Bone04",     2)             
  250.     SetBoneWeight("Lip_Bone05",     4)                  // wersja 5 elementowa
  251.     // SetBoneWeight("Lip_Bone06",     1)             
  252.     // SetBoneWeight("Lip_Bone07",     1)             
  253.     // SetBoneWeight("Lip_Bone08",     1)             
  254.     // SetBoneWeight("Lip_Bone09",     1)             
  255.     // SetBoneWeight("Lip_Bone10",     1)             
  256. }
  257.  
  258. //-------------------------------------------------------------------------------
  259.  
  260. CollisionHandlerParams()
  261. {
  262.     SetType("NONE")
  263. }
  264.  
  265. //-------------------------------------------------------------------------------
  266.  
  267. CollisionSoundsParams()
  268. {
  269.     SetFreqMinMax(0.6, 1.5)
  270.     SetInterval(0.1)
  271.  
  272.     SetHitMinVolumeLinVel(30)
  273.     SetHitMaxVolumeLinVel(800)
  274.  
  275.     SetFrictionMinVolumeLinVel(2000)
  276.     SetFrictionMaxVolumeLinVel(5000)
  277.     SetFrictionDotThreshold(0.04)
  278.     
  279. //    SetHitSound(SRF_UNKNOWN, "Data/Sounds/collision/common/hit_default_XX.wav")
  280.  
  281. //    SetHitSound(SRF_WOOD,       "Data/Sounds/collision/common/hit_wood_XX.wav")
  282. //    SetHitSound(SRF_STONE,      "Data/Sounds/collision/common/hit_stone_XX.wav")
  283. //    SetHitSound(SRF_SNOW,       "Data/Sounds/collision/common/hit_snow_XX.wav")
  284. //    SetHitSound(SRF_MUD,        "Data/Sounds/collision/common/hit_mud_XX.wav")
  285. //    SetHitSound(SRF_FLESH,      "Data/Sounds/collision/common/hit_flesh_XX.wav")
  286. //    SetHitSound(SRF_GLASS,      "Data/Sounds/collision/common/hit_glass_XX.wav")
  287. //    SetHitSound(SRF_METAL,      "Data/Sounds/collision/common/hit_metal_XX.wav")
  288. //    SetHitSound(SRF_PLEXIGLASS, "Data/Sounds/collision/common/hit_plastic_XX.wav")
  289. //    SetHitSound(SRF_PLASTIC,    "Data/Sounds/collision/common/hit_plastic_XX.wav")
  290. //    SetHitSound(SRF_GROUND,     "Data/Sounds/collision/common/hit_ground_XX.wav")
  291. //    SetHitSound(SRF_GRASS,      "Data/Sounds/collision/common/hit_grass_XX.wav")
  292. //    SetHitSound(SRF_WATER,      "Data/Sounds/collision/common/hit_water_XX.wav")
  293. }
  294.  
  295. //-------------------------------------------------------------------------------
  296.  
  297.  
  298.  
  299.  
  300.