Locomotion проблема

Программирование на Юнити.

Locomotion проблема

Сообщение coalguru 21 фев 2010, 15:02

При анимации нескольких разных персонажей системой locomotion - столкнулся с проблемой. Персонажи стоят и ходят на полусогнутых ножках - причем часто колени гнутся вбок. Эффект небольшой но реалистичности не прибавляет.

Возможно какую то из настроек нужно подправить? Никто ли не сталкивался?
coalguru
UNец
 
Сообщения: 3
Зарегистрирован: 15 фев 2010, 02:52

Re: Locomotion проблема

Сообщение bibika 06 июн 2010, 23:53

Может быть в скрипте LegController в подразделе Legs в настройках Hip , Ankle установленые несоответствующие кости!
bibika
UNIт
 
Сообщения: 71
Зарегистрирован: 22 апр 2010, 22:19
  • ICQ

Re: Locomotion проблема

Сообщение Neodrop 07 июн 2010, 00:07

Вот, на картинке отмечены нужные кости. Если использовать Antares, там есть модуль Biped Finder (это он кости зелёным подсвечивает на скрине.), с ним будет куда проще настроить всё это дело.
P.S. Чёрт... Совсем забыл - этот модуль в текущей версии Антареса ещё не подсвечивает кости.. На неделе выложу обновление.
У вас нет доступа для просмотра вложений в этом сообщении.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Locomotion проблема

Сообщение bibika 01 июл 2010, 00:45

А у меня такая проблема когда стояла [unity 3D] 2.6.1 все скрипты к Locomotion работали нормально, но когда стал делать в [unity 3D] 2.5 то при копировании в проект скриптов из дэмки 3rdPersonShooter то [unity 3D] выкидывает ошибку
Assets/Character Controller Scripts/NormalCharacterMotor.cs(65,39): error CS0308: The non-generic method `GetComponent' cannot be used with type arguments
в чём дело?? не пойму..(((что это значит что локомушн можно делать только на 2.6.1 версии?
bibika
UNIт
 
Сообщения: 71
Зарегистрирован: 22 апр 2010, 22:19
  • ICQ

Re: Locomotion проблема

Сообщение Neodrop 01 июл 2010, 12:06

Это значит что там использованы методы, которых нет в 2.5
Исправить - пять минут, если голова на месте.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Locomotion проблема

Сообщение bibika 02 июл 2010, 19:21

Я так понимаю ошибка с методом Get Component.... вот только мне самомоу не допереть что тут делать надо со скриптом..((
в (c#) не силён больше в (js).... Не могли бы вы мне дать наводку...?)))
А вот скрипт...что в нём исправить...?
Синтаксис:
  1. using UnityEngine; 
  2. using System.Collections; 
  3.  
  4. [RequireComponent(typeof(CharacterController))] 
  5. public class NormalCharacterMotor : CharacterMotor { 
  6.  
  7. public float maxRotationSpeed = 270; 
  8.  
  9. private bool firstframe = true; 
  10.  
  11. private void UpdateFacingDirection() { 
  12. // Calculate which way character should be facing 
  13. float facingWeight = desiredFacingDirection.magnitude; 
  14. Vector3 combinedFacingDirection = ( 
  15. transform.rotation * desiredMovementDirection * (1-facingWeight) 
  16. + desiredFacingDirection * facingWeight 
  17. ); 
  18. combinedFacingDirection = Util.ProjectOntoPlane(combinedFacingDirection, transform.up); 
  19. combinedFacingDirection = alignCorrection * combinedFacingDirection; 
  20.  
  21. if (combinedFacingDirection.sqrMagnitude > 0.01f) { 
  22. Vector3 newForward = Util.ConstantSlerp( 
  23. transform.forward, 
  24. combinedFacingDirection, 
  25. maxRotationSpeed*Time.deltaTime 
  26. ); 
  27. newForward = Util.ProjectOntoPlane(newForward, transform.up); 
  28. //Debug.DrawLine(transform.position, transform.position+newForward, Color.yellow); 
  29. Quaternion q = new Quaternion(); 
  30. q.SetLookRotation(newForward, transform.up); 
  31. transform.rotation = q; 
  32.  
  33. private void UpdateVelocity() { 
  34. CharacterController controller = GetComponent(typeof(CharacterController)) as CharacterController; 
  35. Vector3 velocity = controller.velocity; 
  36. if (firstframe) { 
  37. velocity = Vector3.zero; 
  38. firstframe = false; 
  39. if (grounded) velocity = Util.ProjectOntoPlane(velocity, transform.up); 
  40.  
  41. // Calculate how fast we should be moving 
  42. Vector3 movement = velocity; 
  43. //bool hasJumped = false; 
  44. jumping = false; 
  45. if (grounded) { 
  46. // Apply a force that attempts to reach our target velocity 
  47. Vector3 velocityChange = (desiredVelocity - velocity); 
  48. if (velocityChange.magnitude > maxVelocityChange) { 
  49. velocityChange = velocityChange.normalized * maxVelocityChange; 
  50. movement += velocityChange; 
  51.  
  52. // Jump 
  53. if (canJump && Input.GetButton("Jump")) { 
  54. movement += transform.up * Mathf.Sqrt(2 * jumpHeight * gravity); 
  55. //hasJumped = true; 
  56. jumping = true; 
  57.  
  58. float maxVerticalVelocity = 1.0f; 
  59. AlignmentTracker at = GetComponent<AlignmentTracker>(); 
  60. if (Mathf.Abs(at.velocitySmoothed.y) > maxVerticalVelocity) { 
  61. movement *= Mathf.Max(0.0f, Mathf.Abs(maxVerticalVelocity / at.velocitySmoothed.y)); 
  62.  
  63. // Apply downwards gravity 
  64. movement += transform.up * -gravity * Time.deltaTime; 
  65.  
  66. if (jumping) { 
  67. movement -= transform.up * -gravity * Time.deltaTime / 2; 
  68.  
  69.  
  70. // Apply movement 
  71. CollisionFlags flags = controller.Move(movement * Time.deltaTime); 
  72. grounded = (flags & CollisionFlags.CollidedBelow) != 0; 
  73.  
  74. // Update is called once per frame 
  75. void Update () { 
  76. if (Time.deltaTime == 0 || Time.timeScale == 0) 
  77. return; 
  78.  
  79. UpdateFacingDirection(); 
  80.  
  81. UpdateVelocity(); 
bibika
UNIт
 
Сообщения: 71
Зарегистрирован: 22 апр 2010, 22:19
  • ICQ


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7