Fixed NinjaSnowWar assets to use 1m world unit.
Added GetDistanceToWall() function to NavigationMesh. NavigationMesh code cleanup.
This commit is contained in:
Родитель
342db6f72b
Коммит
379d786da4
Двоичные данные
Bin/Data/Models/Jack.mdl
Двоичные данные
Bin/Data/Models/Jack.mdl
Двоичный файл не отображается.
Двоичные данные
Bin/Data/Models/Level.mdl
Двоичные данные
Bin/Data/Models/Level.mdl
Двоичный файл не отображается.
Двоичные данные
Bin/Data/Models/Ninja.mdl
Двоичные данные
Bin/Data/Models/Ninja.mdl
Двоичный файл не отображается.
Двоичные данные
Bin/Data/Models/Ninja_Attack1.ani
Двоичные данные
Bin/Data/Models/Ninja_Attack1.ani
Двоичный файл не отображается.
Двоичные данные
Bin/Data/Models/Ninja_Attack2.ani
Двоичные данные
Bin/Data/Models/Ninja_Attack2.ani
Двоичный файл не отображается.
Двоичные данные
Bin/Data/Models/Ninja_Attack3.ani
Двоичные данные
Bin/Data/Models/Ninja_Attack3.ani
Двоичный файл не отображается.
Двоичные данные
Bin/Data/Models/Ninja_Backflip.ani
Двоичные данные
Bin/Data/Models/Ninja_Backflip.ani
Двоичный файл не отображается.
Двоичные данные
Bin/Data/Models/Ninja_Block.ani
Двоичные данные
Bin/Data/Models/Ninja_Block.ani
Двоичный файл не отображается.
Двоичные данные
Bin/Data/Models/Ninja_Climb.ani
Двоичные данные
Bin/Data/Models/Ninja_Climb.ani
Двоичный файл не отображается.
Двоичные данные
Bin/Data/Models/Ninja_Crouch.ani
Двоичные данные
Bin/Data/Models/Ninja_Crouch.ani
Двоичный файл не отображается.
Двоичные данные
Bin/Data/Models/Ninja_Death1.ani
Двоичные данные
Bin/Data/Models/Ninja_Death1.ani
Двоичный файл не отображается.
Двоичные данные
Bin/Data/Models/Ninja_Death2.ani
Двоичные данные
Bin/Data/Models/Ninja_Death2.ani
Двоичный файл не отображается.
Двоичные данные
Bin/Data/Models/Ninja_HighJump.ani
Двоичные данные
Bin/Data/Models/Ninja_HighJump.ani
Двоичный файл не отображается.
Двоичные данные
Bin/Data/Models/Ninja_Idle1.ani
Двоичные данные
Bin/Data/Models/Ninja_Idle1.ani
Двоичный файл не отображается.
Двоичные данные
Bin/Data/Models/Ninja_Idle2.ani
Двоичные данные
Bin/Data/Models/Ninja_Idle2.ani
Двоичный файл не отображается.
Двоичные данные
Bin/Data/Models/Ninja_Idle3.ani
Двоичные данные
Bin/Data/Models/Ninja_Idle3.ani
Двоичный файл не отображается.
Двоичные данные
Bin/Data/Models/Ninja_Jump.ani
Двоичные данные
Bin/Data/Models/Ninja_Jump.ani
Двоичный файл не отображается.
Двоичные данные
Bin/Data/Models/Ninja_JumpNoHeight.ani
Двоичные данные
Bin/Data/Models/Ninja_JumpNoHeight.ani
Двоичный файл не отображается.
Двоичные данные
Bin/Data/Models/Ninja_Kick.ani
Двоичные данные
Bin/Data/Models/Ninja_Kick.ani
Двоичный файл не отображается.
Двоичные данные
Bin/Data/Models/Ninja_SideKick.ani
Двоичные данные
Bin/Data/Models/Ninja_SideKick.ani
Двоичный файл не отображается.
Двоичные данные
Bin/Data/Models/Ninja_Spin.ani
Двоичные данные
Bin/Data/Models/Ninja_Spin.ani
Двоичный файл не отображается.
Двоичные данные
Bin/Data/Models/Ninja_Stealth.ani
Двоичные данные
Bin/Data/Models/Ninja_Stealth.ani
Двоичный файл не отображается.
Двоичные данные
Bin/Data/Models/Ninja_Walk.ani
Двоичные данные
Bin/Data/Models/Ninja_Walk.ani
Двоичный файл не отображается.
Двоичные данные
Bin/Data/Models/Potion.mdl
Двоичные данные
Bin/Data/Models/Potion.mdl
Двоичный файл не отображается.
Двоичные данные
Bin/Data/Models/SnowBall.mdl
Двоичные данные
Bin/Data/Models/SnowBall.mdl
Двоичный файл не отображается.
Двоичные данные
Bin/Data/Models/SnowCrate.mdl
Двоичные данные
Bin/Data/Models/SnowCrate.mdl
Двоичный файл не отображается.
|
@ -16,7 +16,7 @@
|
|||
<attribute name="Light Type" type="Enum" value="Point" />
|
||||
<attribute name="Color" value="2 2 2 1" />
|
||||
<attribute name="Specular Intensity" value="0" />
|
||||
<attribute name="Range" value="500" />
|
||||
<attribute name="Range" value="5" />
|
||||
<attribute name="Spot FOV" value="30" />
|
||||
<attribute name="Spot Aspect Ratio" value="1" />
|
||||
<attribute name="Attenuation Texture" value="Texture2D;Textures/RampWide.png" />
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<node id="2">
|
||||
<attribute name="Name" value="Ninja" />
|
||||
<attribute name="Position" value="0 10 20" />
|
||||
<attribute name="Position" value="0 0 0" />
|
||||
<attribute name="Rotation" value="1 0 0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
|
@ -15,21 +15,21 @@
|
|||
</component>
|
||||
<component type="NetworkPriority" id="16777217">
|
||||
<attribute name="Base Priority" value="110" />
|
||||
<attribute name="Distance Factor" value="0.02" />
|
||||
<attribute name="Distance Factor" value="2" />
|
||||
<attribute name="Minimum Priority" value="50" />
|
||||
<attribute name="Always Update Owner" value="true" />
|
||||
</component>
|
||||
<component type="CollisionShape" id="4">
|
||||
<attribute name="Shape Type" value="Capsule" />
|
||||
<attribute name="Size" value="70 180 70" />
|
||||
<attribute name="Size" value="0.7 1.8 0.7" />
|
||||
<attribute name="Offset Position" value="0 0 0" />
|
||||
<attribute name="Offset Rotation" value="1 0 0 0" />
|
||||
<attribute name="Collision Margin" value="1" />
|
||||
<attribute name="Collision Margin" value="0.01" />
|
||||
<attribute name="Model" value="Model;" />
|
||||
<attribute name="LOD Level" value="0" />
|
||||
</component>
|
||||
<component type="RigidBody" id="5">
|
||||
<attribute name="Physics Position" value="0 10 20" />
|
||||
<attribute name="Physics Position" value="0 0 0" />
|
||||
<attribute name="Physics Rotation" value="1 0 0 0" />
|
||||
<attribute name="Mass" value="80" />
|
||||
<attribute name="Friction" value="0.5" />
|
||||
|
@ -40,7 +40,7 @@
|
|||
<attribute name="Angular Factor" value="0 0 0" />
|
||||
<attribute name="Linear Damping" value="0" />
|
||||
<attribute name="Angular Damping" value="0" />
|
||||
<attribute name="Linear Rest Threshold" value="0.8" />
|
||||
<attribute name="Linear Rest Threshold" value="0.01" />
|
||||
<attribute name="Angular Rest Threshold" value="1" />
|
||||
<attribute name="Collision Layer" value="1" />
|
||||
<attribute name="Collision Mask" value="3" />
|
||||
|
@ -51,7 +51,7 @@
|
|||
</component>
|
||||
<node id="3">
|
||||
<attribute name="Name" value="" />
|
||||
<attribute name="Position" value="0 -90 0" />
|
||||
<attribute name="Position" value="0 -0.9 0" />
|
||||
<attribute name="Rotation" value="1 0 0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
|
@ -61,7 +61,7 @@
|
|||
<attribute name="Is Occluder" value="false" />
|
||||
<attribute name="Can Be Occluded" value="true" />
|
||||
<attribute name="Cast Shadows" value="true" />
|
||||
<attribute name="Draw Distance" value="15000" />
|
||||
<attribute name="Draw Distance" value="0" />
|
||||
<attribute name="Shadow Distance" value="0" />
|
||||
<attribute name="LOD Bias" value="1" />
|
||||
<attribute name="Animation LOD Bias" value="1" />
|
||||
|
@ -114,201 +114,5 @@
|
|||
<attribute name="Delayed Method Calls" value="0" />
|
||||
<attribute name="Script Data" value="" />
|
||||
</component>
|
||||
<node id="16777216">
|
||||
<attribute name="Name" value="Joint1" />
|
||||
<attribute name="Position" value="0.185046 0.51196 -0" />
|
||||
<attribute name="Rotation" value="1 -0 -0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
<node id="16777217">
|
||||
<attribute name="Name" value="Joint2" />
|
||||
<attribute name="Position" value="0 108.105 1.56659" />
|
||||
<attribute name="Rotation" value="1 -0 -0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
<node id="16777218">
|
||||
<attribute name="Name" value="Joint3" />
|
||||
<attribute name="Position" value="0.421854 9.67481 1.0444" />
|
||||
<attribute name="Rotation" value="1 -0 -0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
<node id="16777219">
|
||||
<attribute name="Name" value="Joint4" />
|
||||
<attribute name="Position" value="0.421854 8.41288 3.72529e-007" />
|
||||
<attribute name="Rotation" value="1 -0 -0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
<node id="16777220">
|
||||
<attribute name="Name" value="Joint5" />
|
||||
<attribute name="Position" value="-0.843709 17.1516 1.02305" />
|
||||
<attribute name="Rotation" value="1 -0 -0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
<node id="16777221">
|
||||
<attribute name="Name" value="Joint6" />
|
||||
<attribute name="Position" value="3.72529e-008 19.7703 -2.61099" />
|
||||
<attribute name="Rotation" value="1 -0 -0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
<node id="16777222">
|
||||
<attribute name="Name" value="Joint7" />
|
||||
<attribute name="Position" value="0 4.74305 1.0444" />
|
||||
<attribute name="Rotation" value="1 -0 -0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
<node id="16777223">
|
||||
<attribute name="Name" value="Joint8" />
|
||||
<attribute name="Position" value="-0.185046 9.18524 3.08366" />
|
||||
<attribute name="Rotation" value="1 -0 -0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
</node>
|
||||
</node>
|
||||
<node id="16777224">
|
||||
<attribute name="Name" value="Joint9" />
|
||||
<attribute name="Position" value="14.3431 -3.65739 -6.76722" />
|
||||
<attribute name="Rotation" value="1 -0 -0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
<node id="16777225">
|
||||
<attribute name="Name" value="Joint10" />
|
||||
<attribute name="Position" value="5.90596 -2.02329 -0" />
|
||||
<attribute name="Rotation" value="1 -0 -0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
<node id="16777226">
|
||||
<attribute name="Name" value="Joint11" />
|
||||
<attribute name="Position" value="3.37483 -29.4451 5.74418" />
|
||||
<attribute name="Rotation" value="1 -0 -0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
<node id="16777227">
|
||||
<attribute name="Name" value="Joint12" />
|
||||
<attribute name="Position" value="1.33815 -28.6038 3.13318" />
|
||||
<attribute name="Rotation" value="1 -0 -0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
<node id="16777228">
|
||||
<attribute name="Name" value="Joint13" />
|
||||
<attribute name="Position" value="0.136921 -6.24266 3.42546" />
|
||||
<attribute name="Rotation" value="1 -0 -0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
<node id="16777229">
|
||||
<attribute name="Name" value="Joint29" />
|
||||
<attribute name="Position" value="-0.0284957 -5.80133 76.0905" />
|
||||
<attribute name="Rotation" value="1 -0 -0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node id="16777230">
|
||||
<attribute name="Name" value="Joint14" />
|
||||
<attribute name="Position" value="-14.3431 -3.69103 -6.76722" />
|
||||
<attribute name="Rotation" value="1 -0 -0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
<node id="16777231">
|
||||
<attribute name="Name" value="Joint15" />
|
||||
<attribute name="Position" value="-7.17153 -2.10322 -0" />
|
||||
<attribute name="Rotation" value="1 -0 -0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
<node id="16777232">
|
||||
<attribute name="Name" value="Joint16" />
|
||||
<attribute name="Position" value="-2.53113 -28.6038 5.74418" />
|
||||
<attribute name="Rotation" value="1 -0 -0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
<node id="16777233">
|
||||
<attribute name="Name" value="Joint17" />
|
||||
<attribute name="Position" value="-1.68742 -30.2864 3.13318" />
|
||||
<attribute name="Rotation" value="1 -0 -0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node id="16777234">
|
||||
<attribute name="Name" value="Joint18" />
|
||||
<attribute name="Position" value="9.70265 -8.41289 2.08879" />
|
||||
<attribute name="Rotation" value="1 -0 -0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
<node id="16777235">
|
||||
<attribute name="Name" value="Joint19" />
|
||||
<attribute name="Position" value="2.95298 -43.747 -1.56659" />
|
||||
<attribute name="Rotation" value="1 -0 -0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
<node id="16777236">
|
||||
<attribute name="Name" value="Joint20" />
|
||||
<attribute name="Position" value="-0.843709 -46.1989 -11.34" />
|
||||
<attribute name="Rotation" value="1 -0 -0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
<node id="16777237">
|
||||
<attribute name="Name" value="Joint21" />
|
||||
<attribute name="Position" value="1.43906 -9.37045 13.1049" />
|
||||
<attribute name="Rotation" value="1 -0 -0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
<node id="16777238">
|
||||
<attribute name="Name" value="Joint22" />
|
||||
<attribute name="Position" value="0.421854 -0.438055 7.61888" />
|
||||
<attribute name="Rotation" value="1 -0 -0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node id="16777239">
|
||||
<attribute name="Name" value="Joint23" />
|
||||
<attribute name="Position" value="-8.85894 -8.41289 2.08879" />
|
||||
<attribute name="Rotation" value="1 -0 -0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
<node id="16777240">
|
||||
<attribute name="Name" value="Joint24" />
|
||||
<attribute name="Position" value="-3.37484 -43.3263 -1.56659" />
|
||||
<attribute name="Rotation" value="1 -0 -0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
<node id="16777241">
|
||||
<attribute name="Name" value="Joint25" />
|
||||
<attribute name="Position" value="-0.843709 -46.6195 -11.34" />
|
||||
<attribute name="Rotation" value="1 -0 -0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
<node id="16777242">
|
||||
<attribute name="Name" value="Joint26" />
|
||||
<attribute name="Position" value="-0.557851 -9.7911 13.1049" />
|
||||
<attribute name="Rotation" value="1 -0 -0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
<node id="16777243">
|
||||
<attribute name="Name" value="Joint27" />
|
||||
<attribute name="Position" value="0 -0.017411 7.61888" />
|
||||
<attribute name="Rotation" value="1 -0 -0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<node id="3">
|
||||
<attribute name="Name" value="Potion" />
|
||||
<attribute name="Position" value="0 10 20" />
|
||||
<attribute name="Position" value="0 0 0" />
|
||||
<attribute name="Rotation" value="1 0 0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
|
@ -15,7 +15,7 @@
|
|||
</component>
|
||||
<component type="NetworkPriority" id="16777218">
|
||||
<attribute name="Base Priority" value="100" />
|
||||
<attribute name="Distance Factor" value="0.04" />
|
||||
<attribute name="Distance Factor" value="4" />
|
||||
<attribute name="Minimum Priority" value="15" />
|
||||
<attribute name="Always Update Owner" value="true" />
|
||||
</component>
|
||||
|
@ -25,7 +25,7 @@
|
|||
<attribute name="Is Occluder" value="false" />
|
||||
<attribute name="Can Be Occluded" value="true" />
|
||||
<attribute name="Cast Shadows" value="true" />
|
||||
<attribute name="Draw Distance" value="15000" />
|
||||
<attribute name="Draw Distance" value="0" />
|
||||
<attribute name="Shadow Distance" value="0" />
|
||||
<attribute name="LOD Bias" value="1" />
|
||||
<attribute name="Max Lights" value="0" />
|
||||
|
@ -36,15 +36,15 @@
|
|||
</component>
|
||||
<component type="CollisionShape" id="8">
|
||||
<attribute name="Shape Type" value="Box" />
|
||||
<attribute name="Size" value="20 40 20" />
|
||||
<attribute name="Size" value="0.2 0.4 0.2" />
|
||||
<attribute name="Offset Position" value="0 0 0" />
|
||||
<attribute name="Offset Rotation" value="1 0 0 0" />
|
||||
<attribute name="Collision Margin" value="1" />
|
||||
<attribute name="Collision Margin" value="0.01" />
|
||||
<attribute name="Model" value="Model;" />
|
||||
<attribute name="LOD Level" value="0" />
|
||||
</component>
|
||||
<component type="RigidBody" id="9">
|
||||
<attribute name="Physics Position" value="0 10 20" />
|
||||
<attribute name="Physics Position" value="0 0 0" />
|
||||
<attribute name="Physics Rotation" value="1 0 0 0" />
|
||||
<attribute name="Mass" value="10" />
|
||||
<attribute name="Friction" value="0.5" />
|
||||
|
@ -55,7 +55,7 @@
|
|||
<attribute name="Angular Factor" value="1 1 1" />
|
||||
<attribute name="Linear Damping" value="0" />
|
||||
<attribute name="Angular Damping" value="0" />
|
||||
<attribute name="Linear Rest Threshold" value="0.8" />
|
||||
<attribute name="Linear Rest Threshold" value="0.01" />
|
||||
<attribute name="Angular Rest Threshold" value="1" />
|
||||
<attribute name="Collision Layer" value="1" />
|
||||
<attribute name="Collision Mask" value="3" />
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<node id="2">
|
||||
<attribute name="Name" value="SnowBall" />
|
||||
<attribute name="Position" value="0 10 20" />
|
||||
<attribute name="Position" value="0 0 0" />
|
||||
<attribute name="Rotation" value="1 0 0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
|
@ -15,7 +15,7 @@
|
|||
</component>
|
||||
<component type="NetworkPriority" id="16777217">
|
||||
<attribute name="Base Priority" value="100" />
|
||||
<attribute name="Distance Factor" value="0.02" />
|
||||
<attribute name="Distance Factor" value="2" />
|
||||
<attribute name="Minimum Priority" value="25" />
|
||||
<attribute name="Always Update Owner" value="true" />
|
||||
</component>
|
||||
|
@ -25,7 +25,7 @@
|
|||
<attribute name="Is Occluder" value="false" />
|
||||
<attribute name="Can Be Occluded" value="true" />
|
||||
<attribute name="Cast Shadows" value="true" />
|
||||
<attribute name="Draw Distance" value="7500" />
|
||||
<attribute name="Draw Distance" value="75" />
|
||||
<attribute name="Shadow Distance" value="0" />
|
||||
<attribute name="LOD Bias" value="1" />
|
||||
<attribute name="Max Lights" value="0" />
|
||||
|
@ -36,15 +36,15 @@
|
|||
</component>
|
||||
<component type="CollisionShape" id="5">
|
||||
<attribute name="Shape Type" value="Box" />
|
||||
<attribute name="Size" value="15 15 15" />
|
||||
<attribute name="Size" value="0.15 0.15 0.15" />
|
||||
<attribute name="Offset Position" value="0 0 0" />
|
||||
<attribute name="Offset Rotation" value="1 0 0 0" />
|
||||
<attribute name="Model" value="Model;" />
|
||||
<attribute name="LOD Level" value="0" />
|
||||
<attribute name="Collision Margin" value="1" />
|
||||
<attribute name="Collision Margin" value="0.01" />
|
||||
</component>
|
||||
<component type="RigidBody" id="6">
|
||||
<attribute name="Physics Position" value="0 10 20" />
|
||||
<attribute name="Physics Position" value="0 0 0" />
|
||||
<attribute name="Physics Rotation" value="1 0 0 0" />
|
||||
<attribute name="Mass" value="10" />
|
||||
<attribute name="Friction" value="0.75" />
|
||||
|
@ -55,12 +55,12 @@
|
|||
<attribute name="Angular Factor" value="1 1 1" />
|
||||
<attribute name="Linear Damping" value="0" />
|
||||
<attribute name="Angular Damping" value="0" />
|
||||
<attribute name="Linear Rest Threshold" value="0.8" />
|
||||
<attribute name="Linear Rest Threshold" value="0.0" />
|
||||
<attribute name="Angular Rest Threshold" value="1" />
|
||||
<attribute name="Collision Layer" value="1" />
|
||||
<attribute name="Collision Mask" value="3" />
|
||||
<attribute name="CCD Radius" value="5" />
|
||||
<attribute name="CCD Motion Threshold" value="15" />
|
||||
<attribute name="CCD Radius" value="0.05" />
|
||||
<attribute name="CCD Motion Threshold" value="0.15" />
|
||||
<attribute name="Collision Event Mode" value="When Active" />
|
||||
<attribute name="Use Gravity" value="true" />
|
||||
<attribute name="Is Kinematic" value="false" />
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<node id="3">
|
||||
<attribute name="Name" value="SnowCrate" />
|
||||
<attribute name="Position" value="0 10 20" />
|
||||
<attribute name="Position" value="0 0 0" />
|
||||
<attribute name="Rotation" value="1 0 0 0" />
|
||||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
|
@ -15,7 +15,7 @@
|
|||
</component>
|
||||
<component type="NetworkPriority" id="16777220">
|
||||
<attribute name="Base Priority" value="100" />
|
||||
<attribute name="Distance Factor" value="0.04" />
|
||||
<attribute name="Distance Factor" value="4" />
|
||||
<attribute name="Minimum Priority" value="15" />
|
||||
<attribute name="Always Update Owner" value="true" />
|
||||
</component>
|
||||
|
@ -25,7 +25,7 @@
|
|||
<attribute name="Is Occluder" value="false" />
|
||||
<attribute name="Can Be Occluded" value="true" />
|
||||
<attribute name="Cast Shadows" value="true" />
|
||||
<attribute name="Draw Distance" value="15000" />
|
||||
<attribute name="Draw Distance" value="0" />
|
||||
<attribute name="Shadow Distance" value="0" />
|
||||
<attribute name="LOD Bias" value="1" />
|
||||
<attribute name="Max Lights" value="0" />
|
||||
|
@ -36,15 +36,15 @@
|
|||
</component>
|
||||
<component type="CollisionShape" id="12">
|
||||
<attribute name="Shape Type" value="Box" />
|
||||
<attribute name="Size" value="80 80 80" />
|
||||
<attribute name="Size" value="0.8 0.8 0.8" />
|
||||
<attribute name="Offset Position" value="0 0 0" />
|
||||
<attribute name="Offset Rotation" value="1 0 0 0" />
|
||||
<attribute name="Collision Margin" value="1" />
|
||||
<attribute name="Collision Margin" value="0.01" />
|
||||
<attribute name="Model" value="Model;" />
|
||||
<attribute name="LOD Level" value="0" />
|
||||
</component>
|
||||
<component type="RigidBody" id="13">
|
||||
<attribute name="Physics Position" value="0 10 20" />
|
||||
<attribute name="Physics Position" value="0 0 0" />
|
||||
<attribute name="Physics Rotation" value="1 0 0 0" />
|
||||
<attribute name="Mass" value="200" />
|
||||
<attribute name="Friction" value="0.5" />
|
||||
|
@ -55,7 +55,7 @@
|
|||
<attribute name="Angular Factor" value="1 1 1" />
|
||||
<attribute name="Linear Damping" value="0" />
|
||||
<attribute name="Angular Damping" value="0" />
|
||||
<attribute name="Linear Rest Threshold" value="0.8" />
|
||||
<attribute name="Linear Rest Threshold" value="0.01" />
|
||||
<attribute name="Angular Rest Threshold" value="1" />
|
||||
<attribute name="Collision Layer" value="2" />
|
||||
<attribute name="Collision Mask" value="3" />
|
||||
|
|
|
@ -9,12 +9,12 @@
|
|||
<sorting enable="true" />
|
||||
<rotationspeed min="-60" max="60" />
|
||||
<direction min="-0.15 1 -0.15" max="0.15 1 0.15" />
|
||||
<velocity min="100" max="130" />
|
||||
<particlesize min="20 20" max="30 30" />
|
||||
<velocity min="1" max="1.3" />
|
||||
<particlesize min="0.2 0.2" max="0.3 0.3" />
|
||||
<sizedelta add="0" mul="1.3" />
|
||||
<timetolive value="4" />
|
||||
<constantforce value="0.0 -20 0.0" />
|
||||
<colorfade color="0.2 0.2 0.2 0.0" time="0.0" />
|
||||
<colorfade color="0.2 0.2 0.2 1.0" time="0.25" />
|
||||
<colorfade color="0.6 0.6 0.6 0.0" time="4.0" />
|
||||
<constantforce value="0 -0.2 0" />
|
||||
<colorfade color="0.2 0.2 0.2 0" time="0.0" />
|
||||
<colorfade color="0.2 0.2 0.2 1" time="0.25" />
|
||||
<colorfade color="0.6 0.6 0.6 0" time="4.0" />
|
||||
</particleemitter>
|
||||
|
|
|
@ -7,10 +7,10 @@
|
|||
<interval value="0.02" />
|
||||
<sorting enable="true" />
|
||||
<direction min="-1 0 -1" max="1 1 1" />
|
||||
<velocity min="50" max="100" />
|
||||
<particlesize value="25 25" />
|
||||
<velocity min="0.5" max="1" />
|
||||
<particlesize value="0.25 0.25" />
|
||||
<timetolive value="0.5" />
|
||||
<constantforce value="0.0 -200 0.0" />
|
||||
<colorfade color="0.35 0.35 0.5 1.0" time="0.0" />
|
||||
<colorfade color="0.0 0.0 0.0 1.0" time="0.5" />
|
||||
<constantforce value="0 -2 0" />
|
||||
<colorfade color="0.35 0.35 0.5 1" time="0.0" />
|
||||
<colorfade color="0 0 0 1" time="0.5" />
|
||||
</particleemitter>
|
||||
|
|
|
@ -3,16 +3,16 @@
|
|||
<updateinvisible enable="true" />
|
||||
<numparticles value="10" />
|
||||
<emittertype value="box" />
|
||||
<emittersize value="30 30 30" />
|
||||
<emittersize value="0.3 0.3 0.3" />
|
||||
<activetime value="0.2" />
|
||||
<inactivetime value="0" />
|
||||
<interval value="0.02" />
|
||||
<sorting enable="true" />
|
||||
<direction min="-1 0.5 -1" max="1 1 1" />
|
||||
<velocity min="200" max="300" />
|
||||
<particlesize value="60 60" />
|
||||
<velocity min="2" max="3" />
|
||||
<particlesize value="0.6 0.6" />
|
||||
<timetolive value="0.5" />
|
||||
<constantforce value="0.0 -400 0.0" />
|
||||
<colorfade color="0.35 0.35 0.5 1.0" time="0.0" />
|
||||
<colorfade color="0.0 0.0 0.0 1.0" time="0.5" />
|
||||
<constantforce value="0.0 -4 0.0" />
|
||||
<colorfade color="0.35 0.35 0.5 1" time="0.0" />
|
||||
<colorfade color="0 0 0 1" time="0.5" />
|
||||
</particleemitter>
|
||||
|
|
|
@ -7,10 +7,10 @@
|
|||
<interval value="0.02" />
|
||||
<sorting enable="true" />
|
||||
<direction min="-1 0 -1" max="1 1 1" />
|
||||
<velocity min="50" max="100" />
|
||||
<particlesize value="25 25" />
|
||||
<velocity min="0.5" max="1" />
|
||||
<particlesize value="0.25 0.25" />
|
||||
<timetolive value="0.5" />
|
||||
<constantforce value="0.0 -200 0.0" />
|
||||
<colorfade color="0.1 0.1 0.2 1.0" time="0.0" />
|
||||
<colorfade color="0.0 0.0 0.0 1.0" time="0.5" />
|
||||
<constantforce value="0 -2 0" />
|
||||
<colorfade color="0.1 0.1 0.2 1" time="0.0" />
|
||||
<colorfade color="0 0 0 1" time="0.5" />
|
||||
</particleemitter>
|
||||
|
|
|
@ -13,12 +13,12 @@
|
|||
<attribute name="Variables" />
|
||||
<attribute name="Variable Names" value="" />
|
||||
<component type="Octree" id="16777216">
|
||||
<attribute name="Bounding Box Min" value="-20000 -20000 -20000" />
|
||||
<attribute name="Bounding Box Max" value="20000 20000 20000" />
|
||||
<attribute name="Bounding Box Min" value="-200 -200 -200" />
|
||||
<attribute name="Bounding Box Max" value="200 200 200" />
|
||||
<attribute name="Number of Levels" value="7" />
|
||||
</component>
|
||||
<component type="PhysicsWorld" id="16777217">
|
||||
<attribute name="Gravity" value="0 -981 0" />
|
||||
<attribute name="Gravity" value="0 -9.81 0" />
|
||||
<attribute name="Physics FPS" value="100" />
|
||||
<attribute name="Net Max Angular Vel." value="100" />
|
||||
<attribute name="Interpolation" value="true" />
|
||||
|
@ -31,12 +31,12 @@
|
|||
<attribute name="Scale" value="1 1 1" />
|
||||
<attribute name="Variables" />
|
||||
<component type="Zone" id="4">
|
||||
<attribute name="Bounding Box Min" value="-100000 -100000 -100000" />
|
||||
<attribute name="Bounding Box Max" value="100000 100000 100000" />
|
||||
<attribute name="Bounding Box Min" value="-1000 -1000 -1000" />
|
||||
<attribute name="Bounding Box Max" value="1000 1000 1000" />
|
||||
<attribute name="Ambient Color" value="0.2 0.2 0.7 1" />
|
||||
<attribute name="Fog Color" value="0.2 0.2 0.7 1" />
|
||||
<attribute name="Fog Start" value="5000" />
|
||||
<attribute name="Fog End" value="15000" />
|
||||
<attribute name="Fog Start" value="50" />
|
||||
<attribute name="Fog End" value="150" />
|
||||
<attribute name="Override Mode" value="false" />
|
||||
<attribute name="Ambient Gradient" value="false" />
|
||||
<attribute name="Priority" value="0" />
|
||||
|
@ -72,10 +72,10 @@
|
|||
<attribute name="Focus To Scene" value="true" />
|
||||
<attribute name="Non-uniform View" value="true" />
|
||||
<attribute name="Auto-Reduce Size" value="true" />
|
||||
<attribute name="CSM Splits" value="1000 2000 5000 0" />
|
||||
<attribute name="CSM Splits" value="10 20 50 0" />
|
||||
<attribute name="CSM Fade Start" value="0.8" />
|
||||
<attribute name="View Size Quantize" value="25" />
|
||||
<attribute name="View Size Minimum" value="500" />
|
||||
<attribute name="View Size Quantize" value="1" />
|
||||
<attribute name="View Size Minimum" value="5" />
|
||||
<attribute name="Depth Constant Bias" value="0.00025" />
|
||||
<attribute name="Depth Slope Bias" value="0.001" />
|
||||
<attribute name="Near/Farclip Ratio" value="0.002" />
|
||||
|
@ -109,7 +109,7 @@
|
|||
<attribute name="Size" value="1 1 1" />
|
||||
<attribute name="Offset Position" value="0 0 0" />
|
||||
<attribute name="Offset Rotation" value="1 0 0 0" />
|
||||
<attribute name="Collision Margin" value="1" />
|
||||
<attribute name="Collision Margin" value="0.01" />
|
||||
<attribute name="Model" value="Model;Models/Level.mdl" />
|
||||
<attribute name="LOD Level" value="0" />
|
||||
</component>
|
||||
|
@ -137,9 +137,9 @@
|
|||
</node>
|
||||
<node id="16777219">
|
||||
<attribute name="Name" value="Sky" />
|
||||
<attribute name="Position" value="0 3000 0" />
|
||||
<attribute name="Position" value="0 30 0" />
|
||||
<attribute name="Rotation" value="1 0 0 0" />
|
||||
<attribute name="Scale" value="30000 1 30000" />
|
||||
<attribute name="Scale" value="300 1 300" />
|
||||
<attribute name="Variables" />
|
||||
<component type="Skybox" id="16777222">
|
||||
<attribute name="Model" value="Model;Models/CloudPlane.mdl" />
|
||||
|
|
|
@ -14,9 +14,9 @@ const float touchSensitivity = 2.0;
|
|||
const float joySensitivity = 0.5;
|
||||
const float joyMoveDeadZone = 0.333;
|
||||
const float joyLookDeadZone = 0.05;
|
||||
const float cameraMinDist = 25;
|
||||
const float cameraMaxDist = 500;
|
||||
const float cameraSafetyDist = 30;
|
||||
const float cameraMinDist = 0.25;
|
||||
const float cameraMaxDist = 5;
|
||||
const float cameraSafetyDist = 0.3;
|
||||
const int initialMaxEnemies = 5;
|
||||
const int finalMaxEnemies = 25;
|
||||
const int maxPowerups = 5;
|
||||
|
@ -24,7 +24,7 @@ const int incrementEach = 10;
|
|||
const int playerHealth = 20;
|
||||
const float enemySpawnRate = 1;
|
||||
const float powerupSpawnRate = 15;
|
||||
const float spawnAreaSize = 500;
|
||||
const float spawnAreaSize = 5;
|
||||
|
||||
Scene@ gameScene;
|
||||
Node@ gameCameraNode;
|
||||
|
@ -114,7 +114,7 @@ void InitAudio()
|
|||
{
|
||||
Sound@ musicFile = cache.GetResource("Sound", "Music/Ninja Gods.ogg");
|
||||
musicFile.looped = true;
|
||||
|
||||
|
||||
// Note: the non-positional sound source component need to be attached to a node to become effective
|
||||
// Due to networked mode clearing the scene on connect, do not attach to the scene itself
|
||||
musicNode = Node();
|
||||
|
@ -151,7 +151,7 @@ void InitScene()
|
|||
return;
|
||||
|
||||
gameScene.LoadXML(cache.GetFile("Scenes/NinjaSnowWar.xml"));
|
||||
|
||||
|
||||
// On mobile devices render the shadowmap first
|
||||
if (GetPlatform() == "Android" || GetPlatform() == "iOS")
|
||||
renderer.reuseShadowMaps = false;
|
||||
|
@ -193,11 +193,11 @@ void CreateCamera()
|
|||
{
|
||||
// Note: the camera is not in the scene
|
||||
gameCameraNode = Node();
|
||||
gameCameraNode.position = Vector3(0, 200, -1000);
|
||||
gameCameraNode.position = Vector3(0, 2, -10);
|
||||
|
||||
gameCamera = gameCameraNode.CreateComponent("Camera");
|
||||
gameCamera.nearClip = 50.0;
|
||||
gameCamera.farClip = 16000.0;
|
||||
gameCamera.nearClip = 0.5;
|
||||
gameCamera.farClip = 160;
|
||||
|
||||
if (!engine.headless)
|
||||
{
|
||||
|
@ -318,9 +318,9 @@ void SpawnPlayer(Connection@ connection)
|
|||
{
|
||||
Vector3 spawnPosition;
|
||||
if (singlePlayer)
|
||||
spawnPosition = Vector3(0, 90, 0);
|
||||
spawnPosition = Vector3(0, 0.9, 0);
|
||||
else
|
||||
spawnPosition = Vector3(Random(spawnAreaSize) - spawnAreaSize * 0.5, 90, Random(spawnAreaSize) - spawnAreaSize);
|
||||
spawnPosition = Vector3(Random(spawnAreaSize) - spawnAreaSize * 0.5, 0.9, Random(spawnAreaSize) - spawnAreaSize);
|
||||
|
||||
Node@ playerNode = SpawnObject(spawnPosition, Quaternion(), "Ninja");
|
||||
// Set owner connection. Owned nodes are always updated to the owner at full frequency
|
||||
|
@ -481,13 +481,13 @@ void HandleKeyDown(StringHash eventType, VariantMap& eventData)
|
|||
|
||||
if (key == KEY_F1)
|
||||
console.Toggle();
|
||||
|
||||
|
||||
if (key == KEY_F2)
|
||||
debugHud.ToggleAll();
|
||||
|
||||
|
||||
if (key == KEY_F3)
|
||||
drawDebug = !drawDebug;
|
||||
|
||||
|
||||
if (key == KEY_F4)
|
||||
drawOctreeDebug = !drawOctreeDebug;
|
||||
|
||||
|
@ -614,7 +614,7 @@ void HandleUpdateHiscores(StringHash eventType, VariantMap& eventData)
|
|||
String allHiscores;
|
||||
for (uint i = 0; i < hiscores.length; ++i)
|
||||
allHiscores += hiscores[i].name + " " + hiscores[i].score + "\n";
|
||||
hiscoreText.text = allHiscores;
|
||||
hiscoreText.text = allHiscores;
|
||||
}
|
||||
|
||||
void HandleNetworkUpdateSent()
|
||||
|
@ -781,11 +781,11 @@ void SpawnObjects(float timeStep)
|
|||
|
||||
if (numPowerups < maxPowerups)
|
||||
{
|
||||
const float maxOffset = 4000;
|
||||
float xOffset = Random(maxOffset * 2.0f) - maxOffset;
|
||||
float zOffset = Random(maxOffset * 2.0f) - maxOffset;
|
||||
const float maxOffset = 40;
|
||||
float xOffset = Random(maxOffset * 2.0) - maxOffset;
|
||||
float zOffset = Random(maxOffset * 2.0) - maxOffset;
|
||||
|
||||
SpawnObject(Vector3(xOffset, 5000, zOffset), Quaternion(), "SnowCrate");
|
||||
SpawnObject(Vector3(xOffset, 50, zOffset), Quaternion(), "SnowCrate");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -794,7 +794,7 @@ void SpawnObjects(float timeStep)
|
|||
if (enemySpawnTimer > enemySpawnRate)
|
||||
{
|
||||
enemySpawnTimer = 0;
|
||||
int numEnemies = 0;
|
||||
int numEnemies = 0;
|
||||
Array<Node@> ninjaNodes = gameScene.GetChildrenWithScript("Ninja", true);
|
||||
for (uint i = 0; i < ninjaNodes.length; ++i)
|
||||
{
|
||||
|
@ -805,21 +805,21 @@ void SpawnObjects(float timeStep)
|
|||
|
||||
if (numEnemies < maxEnemies)
|
||||
{
|
||||
const float maxOffset = 4000;
|
||||
const float maxOffset = 40;
|
||||
float offset = Random(maxOffset * 2.0) - maxOffset;
|
||||
// Random north/east/south/west direction
|
||||
int dir = RandomInt() & 3;
|
||||
dir *= 90;
|
||||
Quaternion rotation(0, dir, 0);
|
||||
|
||||
Node@ enemyNode = SpawnObject(rotation * Vector3(offset, 1000, -12000), rotation, "Ninja");
|
||||
Node@ enemyNode = SpawnObject(rotation * Vector3(offset, 10, -120), rotation, "Ninja");
|
||||
|
||||
// Initialize variables
|
||||
Ninja@ enemyNinja = cast<Ninja>(enemyNode.scriptObject);
|
||||
enemyNinja.side = SIDE_ENEMY;
|
||||
@enemyNinja.controller = AIController();
|
||||
RigidBody@ enemyBody = enemyNode.GetComponent("RigidBody");
|
||||
enemyBody.linearVelocity = rotation * Vector3(0, 1000, 3000);
|
||||
enemyBody.linearVelocity = rotation * Vector3(0, 10, 30);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -862,7 +862,7 @@ void UpdateControls()
|
|||
playerControls.yaw += touchSensitivity * gameCamera.fov / graphics.height * touch.delta.x;
|
||||
playerControls.pitch += touchSensitivity * gameCamera.fov / graphics.height * touch.delta.y;
|
||||
}
|
||||
|
||||
|
||||
if (touch.touchID == moveTouchID)
|
||||
{
|
||||
int relX = touch.position.x - touchButtonSize / 2;
|
||||
|
@ -877,11 +877,11 @@ void UpdateControls()
|
|||
playerControls.Set(CTRL_RIGHT, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (fireTouchID >= 0)
|
||||
playerControls.Set(CTRL_FIRE, true);
|
||||
}
|
||||
|
||||
|
||||
if (input.numJoysticks > 0)
|
||||
{
|
||||
JoystickState@ joystick = input.joysticks[0];
|
||||
|
@ -898,7 +898,7 @@ void UpdateControls()
|
|||
if (joystick.buttonDown[5])
|
||||
playerControls.Set(CTRL_FIRE, true);
|
||||
}
|
||||
|
||||
|
||||
if (joystick.numHats > 0)
|
||||
{
|
||||
if (joystick.hatPosition[0] & HAT_LEFT != 0)
|
||||
|
@ -925,7 +925,7 @@ void UpdateControls()
|
|||
{
|
||||
float lookX = joystick.axisPosition[joystick.numAxes - 2];
|
||||
float lookY = joystick.axisPosition[joystick.numAxes - 1];
|
||||
|
||||
|
||||
if (lookX < -joyLookDeadZone)
|
||||
playerControls.yaw -= joySensitivity * lookX * lookX;
|
||||
if (lookX > joyLookDeadZone)
|
||||
|
@ -1027,7 +1027,7 @@ void UpdateCamera()
|
|||
|
||||
Vector3 pos = playerNode.position;
|
||||
Quaternion dir;
|
||||
|
||||
|
||||
// Make controls seem more immediate by forcing the current mouse yaw into player ninja's Y-axis rotation
|
||||
if (playerNode.vars["Health"].GetInt() > 0)
|
||||
playerNode.rotation = Quaternion(0, playerControls.yaw, 0);
|
||||
|
@ -1035,7 +1035,7 @@ void UpdateCamera()
|
|||
dir = dir * Quaternion(playerNode.rotation.yaw, Vector3(0, 1, 0));
|
||||
dir = dir * Quaternion(playerControls.pitch, Vector3(1, 0, 0));
|
||||
|
||||
Vector3 aimPoint = pos + Vector3(0, 100, 0);
|
||||
Vector3 aimPoint = pos + Vector3(0, 1, 0);
|
||||
Vector3 minDist = aimPoint + dir * Vector3(0, 0, -cameraMinDist);
|
||||
Vector3 maxDist = aimPoint + dir * Vector3(0, 0, -cameraMaxDist);
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
const float initialAggression = 0.0020;
|
||||
const float initialPrediction = 3000;
|
||||
const float initialPrediction = 30;
|
||||
const float initialAimSpeed = 10;
|
||||
const float deltaAggression = 0.000025;
|
||||
const float deltaPrediction = -15;
|
||||
const float deltaPrediction = -0.15;
|
||||
const float deltaAimSpeed = 0.30;
|
||||
const float maxAggression = 0.01;
|
||||
const float maxPrediction = 2000;
|
||||
const float maxPrediction = 20;
|
||||
const float maxAimSpeed = 40;
|
||||
|
||||
float aiAggression = initialAggression;
|
||||
|
@ -72,19 +72,19 @@ class AIController
|
|||
float deltaY = 0.0f;
|
||||
|
||||
// Aim from own head to target's feet
|
||||
Vector3 ownPos(ownNode.position + Vector3(0, 90, 0));
|
||||
Vector3 targetPos(targetNode.position + Vector3(0, -90, 0));
|
||||
Vector3 ownPos(ownNode.position + Vector3(0, 0.9, 0));
|
||||
Vector3 targetPos(targetNode.position + Vector3(0, -0.9, 0));
|
||||
float distance = (targetPos - ownPos).length;
|
||||
|
||||
// Use prediction according to target distance & estimated snowball speed
|
||||
Vector3 currentAim(ownNinja.GetAim() * Vector3(0, 0, 1));
|
||||
float predictDistance = distance;
|
||||
if (predictDistance > 5000) predictDistance = 5000;
|
||||
if (predictDistance > 50) predictDistance = 50;
|
||||
Vector3 predictedPos = targetPos + targetBody.linearVelocity * predictDistance / aiPrediction;
|
||||
Vector3 targetAim = (predictedPos - ownPos);
|
||||
|
||||
// Add distance/height compensation
|
||||
float compensation = Max(targetAim.length - 1500, 0);
|
||||
float compensation = Max(targetAim.length - 15, 0);
|
||||
targetAim += Vector3(0, 0.6, 0) * compensation;
|
||||
|
||||
// X-aiming
|
||||
|
@ -106,7 +106,7 @@ class AIController
|
|||
ownNinja.controls.pitch += 0.1 * deltaY;
|
||||
|
||||
// Firing? if close enough and relatively correct aim
|
||||
if ((distance < 2500) && (currentAim.DotProduct(targetAim) > 0.75))
|
||||
if ((distance < 25) && (currentAim.DotProduct(targetAim) > 0.75))
|
||||
{
|
||||
if (Random(1.0) < aiAggression)
|
||||
ownNinja.controls.Set(CTRL_FIRE, true);
|
||||
|
@ -120,9 +120,9 @@ class AIController
|
|||
ownNinja.controls.Set(CTRL_UP|CTRL_DOWN|CTRL_LEFT|CTRL_RIGHT, false);
|
||||
|
||||
// Far distance: go forward
|
||||
if (distance > 3000)
|
||||
if (distance > 30)
|
||||
ownNinja.controls.Set(CTRL_UP, true);
|
||||
else if (distance > 600)
|
||||
else if (distance > 6)
|
||||
{
|
||||
// Medium distance: random strafing, predominantly forward
|
||||
float v = Random(1.0);
|
||||
|
@ -163,14 +163,14 @@ class AIController
|
|||
ownNinja.dirChangeTime -= timeStep;
|
||||
if (ownNinja.dirChangeTime <= 0)
|
||||
{
|
||||
ownNinja.dirChangeTime = 1.0 + Random(2.0);
|
||||
ownNinja.controls.yaw += 0.1 * (Random(600.0) - 300.0);
|
||||
ownNinja.dirChangeTime = 1 + Random(2);
|
||||
ownNinja.controls.yaw += 0.1 * (Random(600) - 300);
|
||||
}
|
||||
if (ownNinja.isSliding)
|
||||
ownNinja.controls.yaw += 0.2;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void GetNewTarget(Node@ ownNode)
|
||||
{
|
||||
newTargetTimer = 0;
|
||||
|
|
|
@ -74,7 +74,7 @@ class GameObject : ScriptObject
|
|||
SoundSource3D@ source = node.CreateComponent("SoundSource3D");
|
||||
Sound@ sound = cache.GetResource("Sound", soundName);
|
||||
|
||||
source.SetDistanceAttenuation(200, 5000, 1);
|
||||
source.SetDistanceAttenuation(2, 50, 1);
|
||||
source.Play(sound);
|
||||
source.autoRemove = true;
|
||||
}
|
||||
|
|
|
@ -4,12 +4,12 @@
|
|||
const int LAYER_MOVE = 0;
|
||||
const int LAYER_ATTACK = 1;
|
||||
|
||||
const float ninjaMoveForce = 2500;
|
||||
const float ninjaAirMoveForce = 100;
|
||||
const float ninjaMoveForce = 25;
|
||||
const float ninjaAirMoveForce = 1;
|
||||
const float ninjaDampingForce = 5;
|
||||
const float ninjaJumpForce = 45000;
|
||||
const Vector3 ninjaThrowVelocity(0, 425, 2000);
|
||||
const Vector3 ninjaThrowPosition(0, 20, 100);
|
||||
const float ninjaJumpForce = 450;
|
||||
const Vector3 ninjaThrowVelocity(0, 4.25, 20);
|
||||
const Vector3 ninjaThrowPosition(0, 0.2, 1);
|
||||
const float ninjaThrowDelay = 0.1;
|
||||
const float ninjaCorpseDuration = 3;
|
||||
const int ninjaPoints = 250;
|
||||
|
@ -177,7 +177,7 @@ class Ninja : GameObject
|
|||
if (okToJump && inAirTime < 0.1f)
|
||||
{
|
||||
// Lift slightly off the ground for better animation
|
||||
body.position = body.position + Vector3(0, 3, 0);
|
||||
body.position = body.position + Vector3(0, 0.03, 0);
|
||||
body.ApplyImpulse(Vector3(0, ninjaJumpForce, 0));
|
||||
inAirTime = 1.0f;
|
||||
animCtrl.PlayExclusive("Models/Ninja_JumpNoHeight.ani", LAYER_MOVE, false, 0.1);
|
||||
|
@ -293,7 +293,7 @@ class Ninja : GameObject
|
|||
animCtrl.PlayExclusive("Models/Ninja_Death1.ani", LAYER_MOVE, false, 0.2);
|
||||
animCtrl.SetSpeed("Models/Ninja_Death1.ani", 0.5);
|
||||
if ((deathTime >= 0.3) && (deathTime < 0.8))
|
||||
modelNode.Translate(Vector3(0, 0, 425 * timeStep));
|
||||
modelNode.Translate(Vector3(0, 0, 4.25 * timeStep));
|
||||
}
|
||||
else if (deathDir > 0)
|
||||
{
|
||||
|
@ -302,20 +302,20 @@ class Ninja : GameObject
|
|||
animCtrl.PlayExclusive("Models/Ninja_Death2.ani", LAYER_MOVE, false, 0.2);
|
||||
animCtrl.SetSpeed("Models/Ninja_Death2.ani", 0.5);
|
||||
if ((deathTime >= 0.4) && (deathTime < 0.8))
|
||||
modelNode.Translate(Vector3(0, 0, -425 * timeStep));
|
||||
modelNode.Translate(Vector3(0, 0, -4.25 * timeStep));
|
||||
}
|
||||
|
||||
// Create smokecloud just before vanishing
|
||||
if ((deathTime > (ninjaCorpseDuration - 1)) && (!smoke))
|
||||
{
|
||||
SpawnParticleEffect(node.position + Vector3(0, -40, 0), "Particle/Smoke.xml", 8);
|
||||
SpawnParticleEffect(node.position + Vector3(0, -0.4, 0), "Particle/Smoke.xml", 8);
|
||||
smoke = true;
|
||||
}
|
||||
|
||||
if (deathTime > ninjaCorpseDuration)
|
||||
{
|
||||
SpawnObject(node.position + Vector3(0, -50, 0), Quaternion(), "LightFlash");
|
||||
SpawnSound(node.position + Vector3(0, -50, 0), "Sounds/BigExplosion.wav", 2);
|
||||
SpawnObject(node.position + Vector3(0, -0.5, 0), Quaternion(), "LightFlash");
|
||||
SpawnSound(node.position + Vector3(0, -0.5, 0), "Sounds/BigExplosion.wav", 2);
|
||||
node.Remove();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
#include "Scripts/NinjaSnowWar/GameObject.as"
|
||||
|
||||
const int potionHealAmount = 5;
|
||||
const float potionMass = 10;
|
||||
const float potionFriction = 0.5;
|
||||
const float potionDrawDistance = 15000;
|
||||
|
||||
class Potion : GameObject
|
||||
{
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#include "Scripts/NinjaSnowWar/GameObject.as"
|
||||
|
||||
const float snowballMinHitSpeed = 100;
|
||||
const float snowballMinHitSpeed = 1;
|
||||
const float snowballDampingForce = 20;
|
||||
const float snowballDuration = 5;
|
||||
const float snowballGroundHitDuration = 1;
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
#include "Scripts/NinjaSnowWar/GameObject.as"
|
||||
|
||||
|
||||
const int snowcrateHealth = 5;
|
||||
const float snowcrateMass = 200;
|
||||
const float snowcrateFriction = 0.35;
|
||||
const float snowcrateDrawDistance = 15000;
|
||||
const int snowcratePoints = 250;
|
||||
|
||||
class SnowCrate : GameObject
|
||||
|
|
|
@ -5475,6 +5475,7 @@ Methods:<br>
|
|||
- Vector3[]@ FindPath(const Vector3&, const Vector3&, const Vector3& arg2 = Vector3 ( 1.0 , 1.0 , 1.0 ))
|
||||
- Vector3 GetRandomPoint()
|
||||
- Vector3 GetRandomPointInCircle(const Vector3&, float, const Vector3& arg2 = Vector3 ( 1.0 , 1.0 , 1.0 ))
|
||||
- float GetDistanceToWall(const Vector3&, float, const Vector3& arg2 = Vector3 ( 1.0 , 1.0 , 1.0 ))
|
||||
- Vector3 Raycast(const Vector3&, const Vector3&, const Vector3& arg2 = Vector3 ( 1.0 , 1.0 , 1.0 ))
|
||||
|
||||
Properties:<br>
|
||||
|
|
|
@ -50,6 +50,7 @@ void RegisterNavigationMesh(asIScriptEngine* engine)
|
|||
engine->RegisterObjectMethod("NavigationMesh", "Array<Vector3>@ FindPath(const Vector3&in, const Vector3&in, const Vector3&in extents = Vector3(1.0, 1.0, 1.0))", asFUNCTION(NavigationMeshFindPath), asCALL_CDECL_OBJLAST);
|
||||
engine->RegisterObjectMethod("NavigationMesh", "Vector3 GetRandomPoint()", asMETHOD(NavigationMesh, GetRandomPoint), asCALL_THISCALL);
|
||||
engine->RegisterObjectMethod("NavigationMesh", "Vector3 GetRandomPointInCircle(const Vector3&in, float, const Vector3&in extents = Vector3(1.0, 1.0, 1.0))", asMETHOD(NavigationMesh, GetRandomPointInCircle), asCALL_THISCALL);
|
||||
engine->RegisterObjectMethod("NavigationMesh", "float GetDistanceToWall(const Vector3&in, float, const Vector3&in extents = Vector3(1.0, 1.0, 1.0))", asMETHOD(NavigationMesh, GetDistanceToWall), asCALL_THISCALL);
|
||||
engine->RegisterObjectMethod("NavigationMesh", "Vector3 Raycast(const Vector3&in, const Vector3&in, const Vector3&in extents = Vector3(1.0, 1.0, 1.0))", asMETHOD(NavigationMesh, Raycast), asCALL_THISCALL);
|
||||
engine->RegisterObjectMethod("NavigationMesh", "void set_tileSize(int)", asMETHOD(NavigationMesh, SetTileSize), asCALL_THISCALL);
|
||||
engine->RegisterObjectMethod("NavigationMesh", "int get_tileSize() const", asMETHOD(NavigationMesh, GetTileSize), asCALL_THISCALL);
|
||||
|
|
|
@ -417,15 +417,9 @@ void NavigationMesh::FindPath(PODVector<Vector3>& dest, const Vector3& start, co
|
|||
|
||||
dest.Clear();
|
||||
|
||||
if (!navMesh_ || !node_)
|
||||
if (!InitializeQuery())
|
||||
return;
|
||||
|
||||
if (!navMeshQuery_)
|
||||
{
|
||||
if (!InitializeQuery())
|
||||
return;
|
||||
}
|
||||
|
||||
// Navigation data is in local space. Transform path points from world to local
|
||||
const Matrix3x4& transform = node_->GetWorldTransform();
|
||||
Matrix3x4 inverse = transform.Inverse();
|
||||
|
@ -465,15 +459,9 @@ void NavigationMesh::FindPath(PODVector<Vector3>& dest, const Vector3& start, co
|
|||
|
||||
Vector3 NavigationMesh::GetRandomPoint()
|
||||
{
|
||||
if (!navMesh_ || !node_)
|
||||
if (!InitializeQuery())
|
||||
return Vector3::ZERO;
|
||||
|
||||
if (!navMeshQuery_)
|
||||
{
|
||||
if (!InitializeQuery())
|
||||
return Vector3::ZERO;
|
||||
}
|
||||
|
||||
dtPolyRef polyRef;
|
||||
Vector3 point(Vector3::ZERO);
|
||||
|
||||
|
@ -484,14 +472,8 @@ Vector3 NavigationMesh::GetRandomPoint()
|
|||
|
||||
Vector3 NavigationMesh::GetRandomPointInCircle(const Vector3& center, float radius, const Vector3& extents)
|
||||
{
|
||||
if (!navMesh_ || !node_)
|
||||
return Vector3::ZERO;
|
||||
|
||||
if (!navMeshQuery_)
|
||||
{
|
||||
if (!InitializeQuery())
|
||||
return Vector3::ZERO;
|
||||
}
|
||||
if (!InitializeQuery())
|
||||
return center;
|
||||
|
||||
const Matrix3x4& transform = node_->GetWorldTransform();
|
||||
Matrix3x4 inverse = transform.Inverse();
|
||||
|
@ -510,21 +492,32 @@ Vector3 NavigationMesh::GetRandomPointInCircle(const Vector3& center, float radi
|
|||
return transform * point;
|
||||
}
|
||||
|
||||
BoundingBox NavigationMesh::GetWorldBoundingBox() const
|
||||
float NavigationMesh::GetDistanceToWall(const Vector3& point, float radius, const Vector3& extents)
|
||||
{
|
||||
return node_ ? boundingBox_.Transformed(node_->GetWorldTransform()) : boundingBox_;
|
||||
if (!InitializeQuery())
|
||||
return radius;
|
||||
|
||||
const Matrix3x4& transform = node_->GetWorldTransform();
|
||||
Matrix3x4 inverse = transform.Inverse();
|
||||
Vector3 localPoint = inverse * point;
|
||||
|
||||
dtPolyRef startRef;
|
||||
navMeshQuery_->findNearestPoly(&localPoint.x_, &extents.x_, queryFilter_, &startRef, 0);
|
||||
if (!startRef)
|
||||
return radius;
|
||||
|
||||
float hitDist = radius;
|
||||
Vector3 hitPos;
|
||||
Vector3 hitNormal;
|
||||
|
||||
navMeshQuery_->findDistanceToWall(startRef, &localPoint.x_, radius, queryFilter_, &hitDist, &hitPos.x_, &hitNormal.x_);
|
||||
return hitDist;
|
||||
}
|
||||
|
||||
Vector3 NavigationMesh::Raycast(const Vector3& start, const Vector3& end, const Vector3& extents)
|
||||
{
|
||||
if (!navMesh_ || !node_)
|
||||
return Vector3::ZERO;
|
||||
|
||||
if (!navMeshQuery_)
|
||||
{
|
||||
if (!InitializeQuery())
|
||||
return Vector3::ZERO;
|
||||
}
|
||||
if (!InitializeQuery())
|
||||
return end;
|
||||
|
||||
const Matrix3x4& transform = node_->GetWorldTransform();
|
||||
Matrix3x4 inverse = transform.Inverse();
|
||||
|
@ -535,7 +528,7 @@ Vector3 NavigationMesh::Raycast(const Vector3& start, const Vector3& end, const
|
|||
dtPolyRef startRef;
|
||||
navMeshQuery_->findNearestPoly(&localStart.x_, &extents.x_, queryFilter_, &startRef, 0);
|
||||
if (!startRef)
|
||||
return start;
|
||||
return end;
|
||||
|
||||
Vector3 localHitNormal;
|
||||
float t;
|
||||
|
@ -548,6 +541,11 @@ Vector3 NavigationMesh::Raycast(const Vector3& start, const Vector3& end, const
|
|||
return start.Lerp(end, t);
|
||||
}
|
||||
|
||||
BoundingBox NavigationMesh::GetWorldBoundingBox() const
|
||||
{
|
||||
return node_ ? boundingBox_.Transformed(node_->GetWorldTransform()) : boundingBox_;
|
||||
}
|
||||
|
||||
void NavigationMesh::SetNavigationDataAttr(PODVector<unsigned char> data)
|
||||
{
|
||||
ReleaseNavigationMesh();
|
||||
|
@ -1082,6 +1080,12 @@ bool NavigationMesh::BuildTile(Vector<NavigationGeometryInfo>& geometryList, int
|
|||
|
||||
bool NavigationMesh::InitializeQuery()
|
||||
{
|
||||
if (!navMesh_ || !node_)
|
||||
return false;
|
||||
|
||||
if (navMeshQuery_)
|
||||
return true;
|
||||
|
||||
navMeshQuery_ = dtAllocNavMeshQuery();
|
||||
if (!navMeshQuery_)
|
||||
{
|
||||
|
|
|
@ -98,14 +98,17 @@ public:
|
|||
bool Build();
|
||||
/// Rebuild part of the navigation mesh contained by the world-space bounding box. Return true if successful.
|
||||
bool Build(const BoundingBox& boundingBox);
|
||||
/// Find a path between world space points. Return non-empty list of points if successful.
|
||||
/// Find a path between world space points. Return non-empty list of points if successful. Extents specifies how far off the navigation mesh the points can be.
|
||||
void FindPath(PODVector<Vector3>& dest, const Vector3& start, const Vector3& end, const Vector3& extents = Vector3::ONE);
|
||||
/// Return a random point on the navigation mesh.
|
||||
Vector3 GetRandomPoint();
|
||||
/// Return a random point on the navigation mesh within a circle. The circle radius is only a guideline and in practice the returned point may be further away.
|
||||
Vector3 GetRandomPointInCircle(const Vector3& center, float radius, const Vector3& extents = Vector3::ONE);
|
||||
/// Return distance to wall from a point. Maximum search radius must be specified.
|
||||
float GetDistanceToWall(const Vector3& point, float radius, const Vector3& extents = Vector3::ONE);
|
||||
/// Perform a walkability raycast on the navigation mesh between start and end and return the point where a wall was hit, or the end point if no walls.
|
||||
Vector3 Raycast(const Vector3& start, const Vector3& end, const Vector3& extents = Vector3::ONE);
|
||||
|
||||
/// Return tile size.
|
||||
int GetTileSize() const { return tileSize_; }
|
||||
/// Return cell size.
|
||||
|
@ -157,7 +160,7 @@ private:
|
|||
void AddTriMeshGeometry(NavigationBuildData& build, Geometry* geometry, const Matrix3x4& transform);
|
||||
/// Build one tile of the navigation mesh. Return true if successful.
|
||||
bool BuildTile(Vector<NavigationGeometryInfo>& geometryList, int x, int z);
|
||||
/// Initialize navigation mesh query. Return true if successful.
|
||||
/// Ensure that the navigation mesh query is initialized. Return true if successful.
|
||||
bool InitializeQuery();
|
||||
/// Release the navigation mesh and the query.
|
||||
void ReleaseNavigationMesh();
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1,395 +1,219 @@
|
|||
<mesh>
|
||||
<sharedgeometry vertexcount="43">
|
||||
<vertexbuffer positions="true">
|
||||
<vertex>
|
||||
<position x="-8.14129e-007" y="7.78255" z="0" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-1.05468e-006" y="5.50309" z="-5.50309" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-3.89127" y="5.50309" z="-3.89127" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-8.14129e-007" y="7.78255" z="0" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-5.50309" y="5.50309" z="4.76837e-007" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-8.14129e-007" y="7.78255" z="0" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-3.89127" y="5.50309" z="3.89127" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-8.14129e-007" y="7.78255" z="0" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-9.24857e-008" y="5.50309" z="5.50309" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-8.14129e-007" y="7.78255" z="0" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="3.89127" y="5.50309" z="3.89127" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-8.14129e-007" y="7.78255" z="0" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="5.50309" y="5.50309" z="-9.53674e-007" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-8.14129e-007" y="7.78255" z="0" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="3.89127" y="5.50309" z="-3.89127" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-8.14129e-007" y="7.78255" z="0" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-1.05468e-006" y="5.50309" z="-5.50309" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-1.15431e-006" y="-1.32064e-006" z="-7.78255" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-5.50309" y="-1.32064e-006" z="-5.50309" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-7.78255" y="-1.32064e-006" z="4.76837e-007" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-5.50309" y="-1.32064e-006" z="5.50309" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="2.06429e-007" y="-1.32064e-006" z="7.78255" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="5.50309" y="-1.32064e-006" z="5.50309" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="7.78255" y="-1.32064e-006" z="-1.43051e-006" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="5.50309" y="-1.32064e-006" z="-5.50309" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-1.15431e-006" y="-1.32064e-006" z="-7.78255" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-1.05468e-006" y="-5.50309" z="-5.50309" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-3.89127" y="-5.50309" z="-3.89127" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-5.50309" y="-5.50309" z="4.76837e-007" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-3.89127" y="-5.50309" z="3.89127" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-9.24857e-008" y="-5.50309" z="5.50309" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="3.89127" y="-5.50309" z="3.89127" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="5.50309" y="-5.50309" z="-9.53674e-007" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="3.89127" y="-5.50309" z="-3.89127" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-1.05468e-006" y="-5.50309" z="-5.50309" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-8.14129e-007" y="-7.78255" z="0" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-8.14129e-007" y="-7.78255" z="0" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-8.14129e-007" y="-7.78255" z="0" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-8.14129e-007" y="-7.78255" z="0" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-8.14129e-007" y="-7.78255" z="0" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-8.14129e-007" y="-7.78255" z="0" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-8.14129e-007" y="-7.78255" z="0" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-8.14129e-007" y="-7.78255" z="0" />
|
||||
</vertex>
|
||||
</vertexbuffer>
|
||||
<vertexbuffer normals="true">
|
||||
<vertexbuffer positions="true" normals="true" texture_coord_dimensions_0="2" texture_coords="1">
|
||||
<vertex>
|
||||
<position x="-8.14129e-009" y="0.0778255" z="0" />
|
||||
<normal x="1.24561e-008" y="1" z="4.82766e-009" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="-6.29517e-008" y="0.663004" z="-0.748616" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="-0.529351" y="0.663004" z="-0.529351" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="1.24561e-008" y="1" z="4.82766e-009" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="-0.748616" y="0.663004" z="5.90012e-008" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="1.24561e-008" y="1" z="4.82766e-009" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="-0.529351" y="0.663004" z="0.529351" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="1.24561e-008" y="1" z="4.82766e-009" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="6.61524e-008" y="0.663004" z="0.748616" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="1.24561e-008" y="1" z="4.82766e-009" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="0.529351" y="0.663004" z="0.529351" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="1.24561e-008" y="1" z="4.82766e-009" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="0.748616" y="0.663004" z="-1.30831e-007" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="1.24561e-008" y="1" z="4.82766e-009" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="0.529351" y="0.663004" z="-0.529351" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="1.24561e-008" y="1" z="4.82766e-009" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="-6.29517e-008" y="0.663004" z="-0.748616" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="-7.86402e-008" y="-2.00383e-008" z="-1" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="-0.707107" y="-2.55673e-008" z="-0.707107" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="-1" y="-4.58419e-008" z="3.02157e-008" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="-0.707107" y="-6.42067e-008" z="0.707107" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="1.39237e-007" y="-4.3916e-008" z="1" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="0.707107" y="-5.6427e-008" z="0.707107" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="1" y="-4.67345e-008" z="-1.86218e-007" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="0.707107" y="-5.42558e-008" z="-0.707107" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="-7.86402e-008" y="-2.00383e-008" z="-1" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="-1.51967e-009" y="-0.663004" z="-0.748616" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="-0.529351" y="-0.663004" z="-0.529351" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="-0.748616" y="-0.663004" z="7.85525e-008" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="-0.529351" y="-0.663004" z="0.529351" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="1.0339e-007" y="-0.663004" z="0.748616" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="0.529351" y="-0.663004" z="0.529351" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="0.748616" y="-0.663004" z="-1.52719e-007" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="0.529351" y="-0.663004" z="-0.529351" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="-1.51967e-009" y="-0.663004" z="-0.748616" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="1.54826e-008" y="-1" z="1.26314e-008" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="1.54826e-008" y="-1" z="1.26314e-008" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="1.54826e-008" y="-1" z="1.26314e-008" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="1.54826e-008" y="-1" z="1.26314e-008" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="1.54826e-008" y="-1" z="1.26314e-008" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="1.54826e-008" y="-1" z="1.26314e-008" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="1.54826e-008" y="-1" z="1.26314e-008" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<normal x="1.54826e-008" y="-1" z="1.26314e-008" />
|
||||
</vertex>
|
||||
</vertexbuffer>
|
||||
<vertexbuffer texture_coord_dimensions_0="2" texture_coords="1">
|
||||
<vertex>
|
||||
<texcoord u="0" v="0" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-1.05468e-008" y="0.0550309" z="-0.0550309" />
|
||||
<normal x="-6.29517e-008" y="0.663004" z="-0.748616" />
|
||||
<texcoord u="0" v="0.25" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-0.0389127" y="0.0550309" z="-0.0389127" />
|
||||
<normal x="-0.529351" y="0.663004" z="-0.529351" />
|
||||
<texcoord u="0.125" v="0.25" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-8.14129e-009" y="0.0778255" z="0" />
|
||||
<normal x="1.24561e-008" y="1" z="4.82766e-009" />
|
||||
<texcoord u="0.125" v="0" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-0.0550309" y="0.0550309" z="4.76837e-009" />
|
||||
<normal x="-0.748616" y="0.663004" z="5.90012e-008" />
|
||||
<texcoord u="0.25" v="0.25" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-8.14129e-009" y="0.0778255" z="0" />
|
||||
<normal x="1.24561e-008" y="1" z="4.82766e-009" />
|
||||
<texcoord u="0.25" v="0" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-0.0389127" y="0.0550309" z="0.0389127" />
|
||||
<normal x="-0.529351" y="0.663004" z="0.529351" />
|
||||
<texcoord u="0.375" v="0.25" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-8.14129e-009" y="0.0778255" z="0" />
|
||||
<normal x="1.24561e-008" y="1" z="4.82766e-009" />
|
||||
<texcoord u="0.375" v="0" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-9.24857e-010" y="0.0550309" z="0.0550309" />
|
||||
<normal x="6.61524e-008" y="0.663004" z="0.748616" />
|
||||
<texcoord u="0.5" v="0.25" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-8.14129e-009" y="0.0778255" z="0" />
|
||||
<normal x="1.24561e-008" y="1" z="4.82766e-009" />
|
||||
<texcoord u="0.5" v="0" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="0.0389127" y="0.0550309" z="0.0389127" />
|
||||
<normal x="0.529351" y="0.663004" z="0.529351" />
|
||||
<texcoord u="0.625" v="0.25" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-8.14129e-009" y="0.0778255" z="0" />
|
||||
<normal x="1.24561e-008" y="1" z="4.82766e-009" />
|
||||
<texcoord u="0.625" v="0" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="0.0550309" y="0.0550309" z="-9.53674e-009" />
|
||||
<normal x="0.748616" y="0.663004" z="-1.30831e-007" />
|
||||
<texcoord u="0.75" v="0.25" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-8.14129e-009" y="0.0778255" z="0" />
|
||||
<normal x="1.24561e-008" y="1" z="4.82766e-009" />
|
||||
<texcoord u="0.75" v="0" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="0.0389127" y="0.0550309" z="-0.0389127" />
|
||||
<normal x="0.529351" y="0.663004" z="-0.529351" />
|
||||
<texcoord u="0.875" v="0.25" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-8.14129e-009" y="0.0778255" z="0" />
|
||||
<normal x="1.24561e-008" y="1" z="4.82766e-009" />
|
||||
<texcoord u="0.875" v="0" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-1.05468e-008" y="0.0550309" z="-0.0550309" />
|
||||
<normal x="-6.29517e-008" y="0.663004" z="-0.748616" />
|
||||
<texcoord u="1" v="0.25" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-1.15431e-008" y="-1.32064e-008" z="-0.0778255" />
|
||||
<normal x="-7.86402e-008" y="-2.00383e-008" z="-1" />
|
||||
<texcoord u="0" v="0.5" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-0.0550309" y="-1.32064e-008" z="-0.0550309" />
|
||||
<normal x="-0.707107" y="-2.55673e-008" z="-0.707107" />
|
||||
<texcoord u="0.125" v="0.5" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-0.0778255" y="-1.32064e-008" z="4.76837e-009" />
|
||||
<normal x="-1" y="-4.58419e-008" z="3.02157e-008" />
|
||||
<texcoord u="0.25" v="0.5" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-0.0550309" y="-1.32064e-008" z="0.0550309" />
|
||||
<normal x="-0.707107" y="-6.42067e-008" z="0.707107" />
|
||||
<texcoord u="0.375" v="0.5" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="2.06429e-009" y="-1.32064e-008" z="0.0778255" />
|
||||
<normal x="1.39237e-007" y="-4.3916e-008" z="1" />
|
||||
<texcoord u="0.5" v="0.5" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="0.0550309" y="-1.32064e-008" z="0.0550309" />
|
||||
<normal x="0.707107" y="-5.6427e-008" z="0.707107" />
|
||||
<texcoord u="0.625" v="0.5" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="0.0778255" y="-1.32064e-008" z="-1.43051e-008" />
|
||||
<normal x="1" y="-4.67345e-008" z="-1.86218e-007" />
|
||||
<texcoord u="0.75" v="0.5" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="0.0550309" y="-1.32064e-008" z="-0.0550309" />
|
||||
<normal x="0.707107" y="-5.42558e-008" z="-0.707107" />
|
||||
<texcoord u="0.875" v="0.5" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-1.15431e-008" y="-1.32064e-008" z="-0.0778255" />
|
||||
<normal x="-7.86402e-008" y="-2.00383e-008" z="-1" />
|
||||
<texcoord u="1" v="0.5" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-1.05468e-008" y="-0.0550309" z="-0.0550309" />
|
||||
<normal x="-1.51967e-009" y="-0.663004" z="-0.748616" />
|
||||
<texcoord u="0" v="0.75" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-0.0389127" y="-0.0550309" z="-0.0389127" />
|
||||
<normal x="-0.529351" y="-0.663004" z="-0.529351" />
|
||||
<texcoord u="0.125" v="0.75" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-0.0550309" y="-0.0550309" z="4.76837e-009" />
|
||||
<normal x="-0.748616" y="-0.663004" z="7.85525e-008" />
|
||||
<texcoord u="0.25" v="0.75" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-0.0389127" y="-0.0550309" z="0.0389127" />
|
||||
<normal x="-0.529351" y="-0.663004" z="0.529351" />
|
||||
<texcoord u="0.375" v="0.75" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-9.24857e-010" y="-0.0550309" z="0.0550309" />
|
||||
<normal x="1.0339e-007" y="-0.663004" z="0.748616" />
|
||||
<texcoord u="0.5" v="0.75" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="0.0389127" y="-0.0550309" z="0.0389127" />
|
||||
<normal x="0.529351" y="-0.663004" z="0.529351" />
|
||||
<texcoord u="0.625" v="0.75" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="0.0550309" y="-0.0550309" z="-9.53674e-009" />
|
||||
<normal x="0.748616" y="-0.663004" z="-1.52719e-007" />
|
||||
<texcoord u="0.75" v="0.75" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="0.0389127" y="-0.0550309" z="-0.0389127" />
|
||||
<normal x="0.529351" y="-0.663004" z="-0.529351" />
|
||||
<texcoord u="0.875" v="0.75" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-1.05468e-008" y="-0.0550309" z="-0.0550309" />
|
||||
<normal x="-1.51967e-009" y="-0.663004" z="-0.748616" />
|
||||
<texcoord u="1" v="0.75" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-8.14129e-009" y="-0.0778255" z="0" />
|
||||
<normal x="1.54826e-008" y="-1" z="1.26314e-008" />
|
||||
<texcoord u="0" v="1" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-8.14129e-009" y="-0.0778255" z="0" />
|
||||
<normal x="1.54826e-008" y="-1" z="1.26314e-008" />
|
||||
<texcoord u="0.125" v="1" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-8.14129e-009" y="-0.0778255" z="0" />
|
||||
<normal x="1.54826e-008" y="-1" z="1.26314e-008" />
|
||||
<texcoord u="0.25" v="1" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-8.14129e-009" y="-0.0778255" z="0" />
|
||||
<normal x="1.54826e-008" y="-1" z="1.26314e-008" />
|
||||
<texcoord u="0.375" v="1" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-8.14129e-009" y="-0.0778255" z="0" />
|
||||
<normal x="1.54826e-008" y="-1" z="1.26314e-008" />
|
||||
<texcoord u="0.5" v="1" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-8.14129e-009" y="-0.0778255" z="0" />
|
||||
<normal x="1.54826e-008" y="-1" z="1.26314e-008" />
|
||||
<texcoord u="0.625" v="1" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-8.14129e-009" y="-0.0778255" z="0" />
|
||||
<normal x="1.54826e-008" y="-1" z="1.26314e-008" />
|
||||
<texcoord u="0.75" v="1" />
|
||||
</vertex>
|
||||
<vertex>
|
||||
<position x="-8.14129e-009" y="-0.0778255" z="0" />
|
||||
<normal x="1.54826e-008" y="-1" z="1.26314e-008" />
|
||||
<texcoord u="0.875" v="1" />
|
||||
</vertex>
|
||||
</vertexbuffer>
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Загрузка…
Ссылка в новой задаче