Последние сообщения

Страницы: [1] 2 3 ... 10
1
Справочная информация / Re: Катсцены
« Последний ответ от ilufir Январь 21, 2019, 05:57:28 pm »

Планирую в 2019 наконец доделать максскрипт облегчения процесса анимирования(бета версия здесь) и релизнуть свой видеотуториал по катсценам, учитывающий все известные мне нюансы.


а что дает скрипт? видел, что можно включить режим IK, судя по скринам, но что-то интерфейс не очень интуитивный. Можно хотя бы краткое описание залить с парой слов о каждой кнопке?

2
Идеи / Re: Перевозка транспорта
« Последний ответ от xanser Январь 21, 2019, 03:30:51 pm »
Второй вариант похож, на то, что я ищу. Уменьшение вдое замедляет машину. В трафике машины до определенного момента не замечают изменений, пока не "оживут". Но я так и не понимаю, что хранится в этих параметрах трансмиссии. Если рассмотреть cTranmissionGear.h, то должно быть так:
Код: C++
  1.     float             m_fEngineAcceleration; // 0.1 to 10.0
  2.     float             m_fMaxGearVelocity; // 5.0 to 150.0
  3.     float             m_fMaxSpeed;
  4.     float             m_fMinGearVelocity;
  5.     float             m_fCurrentSpeed;

Кто-нибудь анализировал эти значения? У меня какая-то каша, не пойму закономерности. И они у меня не соответствуют комментариям из cTranmissionGear.h. Сложность в том, чтобы определить момент сцепки и отцепки, в которые нужно делить или умножать скорость на 2.

Код: C++
  1. m_fEngineAcceleration = 0.0006    // handling = 15.0
  2. m_fMaxGearVelocity = 0.788001    // handling = 120.0
  3. m_fMaxSpeed = 0.656667
Код: C++
  1. m_fEngineAcceleration = 0.0008    // handling = 10.0
  2. m_fMaxGearVelocity = 0.654667   // handling = 100.0
  3. m_fMaxSpeed = 0.545556
Код: C++
  1. m_fEngineAcceleration = 0.00144    // handling = 18.0
  2. m_fMaxGearVelocity = 0.964001    // handling = 150.0
  3. m_fMaxSpeed = 0.803334
3
Идеи / Re: Перевозка транспорта
« Последний ответ от kenking Январь 20, 2019, 12:05:21 pm »
Есть опкод
04BA: set_car 0@ speed_instantly 5.0
Код: C++
  1. case 0x4BA:
  2.       CRunningScript::CollectParameters(this + 16, 2);
  3.       car_04BA = CPool<CVehicle>::AtHandle(ScriptParams[0]);
  4.       x_04BA = *&ScriptParams[1] * 0.016666668;
  5.       y_04BA = x_04BA * car_04BA->vehicle.physical.entity.m_placement.matrix.at.z;
  6.       z_04BA = x_04BA * car_04BA->vehicle.physical.entity.m_placement.matrix.at.y;
  7.       car_04BA->vehicle.physical.m_vecMoveSpeed.x = x_04BA * car_04BA->vehicle.physical.entity.m_placement.matrix.at.x;
  8.       car_04BA->vehicle.physical.m_vecMoveSpeed.y = z_04BA;
  9.       car_04BA->vehicle.physical.m_vecMoveSpeed.z = y_04BA;
  10.       if ( car_04BA->vehicle.m_pHandlingData->uFlags & 0x20000 && !car_04BA->vehicle.m_nVehicleClass )
  11.         car_04BA->fNegSpeed = 1046562734;       // 0.22
  12.       result = 0;
  13.       break;

Когда-то yelmi писал скрипт на ручную коробку передач для SA. Посмотри скрипт.

Если сильно не заморачиваться, то можно регулировать максимальную скорость так:
Код: C++
  1. playerCar->m_pHandlingData->m_transmissionData.m_fMaxGearVelocity *= 0.5f; // уменьшаем при наличии прицепа
  2. playerCar->m_pHandlingData->m_transmissionData.m_fMaxGearVelocity *= 2.0f; // восстанавливаем, когда прицеп отцеплен или игрок не в этом авто
  3.  

Правда изменение коснётся всего транспорта этой модели, в трафике в том числе, но в трафике это не так заметно, а на авто игрока ощущается изменение.


4
Идеи / Re: Перевозка транспорта
« Последний ответ от xanser Январь 19, 2019, 08:19:17 pm »
Уточню свое пожелание - в трафике скорость устраивает, там и так все тащатся как черепахи. Хотелось бы снизить лимит максимальной скорости именно для игрока, например взять из хэндлинга и поделить пополам, имитируя тяжесть прицепа. Сам тягач не хотелось бы утяжелять, превращая в локомотив, который всех снесет. Кроме того set_heavy плохо влияет на отображение колес при мягкой подвеске, они проседают, создавая развал. Нормального способа вытащить скорость или ускорение из хэндлинга через поля класса я не нашел, может это хранится умноженное на какой-то коэффициент. Можно и как-то проще придумать, например ограничить скорость при наличии прицепа 40 км/ч, только как это лучше сделать?
5
Идеи / Re: Перевозка транспорта
« Последний ответ от kenking Январь 19, 2019, 05:46:52 pm »
Цитировать
Есть опкод 01EC: make_car $2159 very_heavy 1
Он делает авто тяжелее и медленнее. Но я его не ковырял, так что может там всё настолько запутанно
Там всё просто:
Код: C++
  1. case SET_CAR_HEAVY:
  2. CRunningScript::CollectParameters(this, &this->m_nIp, 2);
  3. vehicle_01EC = CPool<CVehicle>::AtHandle(CPools::ms_pVehiclePool, ScriptParams[0].m_nIntValue);
  4. if ( ScriptParams[1].m_nIntValue )
  5.     vehicle_01EC->physical.m_nMoveFlags = vehicle_01EC->physical.m_nMoveFlags & 0xFE | 1;
  6. else
  7.     vehicle_01EC->physical.m_nMoveFlags &= 0xFEu;
  8. result = 0;
  9. break;

т.е.
Код: C++
  1. vehicle->m_nMoveFlags.bHeavy = 1;

UPD:
Это я для gta3 разобрал опкод. Для VC так:
Код: C++
  1. case 0x1EC:
  2.       CRunningScript::CollectParameters(this + 16, 2);
  3.       vehicle_01EC = CPool_CVehicle_CAutomobile_GetAt(ScriptParams[0]);
  4.       if ( ScriptParams[1] )
  5.       {
  6.         vehicle_01EC->physical.m_nMoveFlags = vehicle_01EC->physical.m_nMoveFlags & 0xFE | 1;
  7.         vehicle_01EC->physical.m_fMass = 3.0 * vehicle_01EC->m_pHandlingData->m_fMass;
  8.         turnMass_01EC = 5.0 * vehicle_01EC->m_pHandlingData->m_fTurnMass;
  9.       }
  10.       else
  11.       {
  12.         vehicle_01EC->physical.m_nMoveFlags &= 0xFEu;
  13.         vehicle_01EC->physical.m_fMass = vehicle_01EC->m_pHandlingData->m_fMass;
  14.         turnMass_01EC = vehicle_01EC->m_pHandlingData->m_fTurnMass;
  15.       }
  16.       vehicle_01EC->physical.m_fTurnMass = turnMass_01EC;
  17.       result = 0;
  18.       break;

т.е. как раз масса изменяется

Код: C++
  1. vehicle->m_nMoveFlags.bHeavy = 1;
  2. vehicle->m_fMass = vehicle->m_pHandlingData->m_fMass * 3.0f;
  3. vehicle->m_fTurnMass = vehicle->m_pHandlingData->m_fTurnMass * 5.0f;
6
Идеи / Re: Перевозка транспорта
« Последний ответ от Shagg_E Январь 19, 2019, 03:34:58 pm »
Есть идеи, как снизить скорость и ускорение тягача при движении с прицепом, ориентируясь на его настройки из handling.cfg?
Есть опкод
01EC: make_car $2159 very_heavy 1Он делает авто тяжелее и медленнее. Но я его не ковырял, так что может там всё настолько запутанно, что проще будет ограничить скорость, как написал kenking.

А если изменить значение массы тягача - это же должно повлиять на скорость и ускорение?
К сожалению, в ВС авто может весить 100 тонн и ездить, как болид "Формулы 1"...
7
Идеи / Re: Перевозка транспорта
« Последний ответ от kenking Январь 19, 2019, 11:55:26 am »
Имеется ввиду тягач с прицепом в трафике? Всё же решил добавить в трафик движение с прицепами? Это хорошо. Я добавил в трафик спавн двойных прицепов. В трафике встречается авто без прицепа, с одним прицепом и с двумя прицепами.
https://youtu.be/BaMZC1XafMc

Скорость тягача я не ограничивал, но может и есть смысл задуматься об этом.

Если рассмотреть опкод на максимальную скорость авто в трафике, то:
Код: C++
  1. case SET_CAR_CRUISE_SPEED:
  2. CRunningScript::CollectParameters(this, &this->m_nIp, 2);
  3. vehicle_00AD = CPool<CVehicle>::AtHandle(CPools::ms_pVehiclePool, ScriptParams[0].m_nIntValue);
  4. vehicle_00AD->m_autoPilot.m_nCruiseSpeed = ScriptParams[1].m_fFloatValue;
  5. maxSpeed_00AD = 60.0 * vehicle_00AD->m_pHandlingData->m_transmissionData.m_fMaxSpeed;
  6. if ( vehicle_00AD->m_autoPilot.m_nCruiseSpeed >= maxSpeed_00AD )
  7.     maxSpeed_00AD = vehicle_00AD->m_autoPilot.m_nCruiseSpeed;
  8. vehicle_00AD->m_autoPilot.m_nCruiseSpeed = maxSpeed_00AD;
  9. return 0;


Если не заморачиваться с данными из handling, то можно просто для всех тягачей с прицепами сделать так:
Код: C++
  1. vehicle->m_autoPilot.m_nCruiseSpeed = 5.0f;

А если изменить значение массы тягача - это же должно повлиять на скорость и ускорение?
8
Идеи / Re: Перевозка транспорта
« Последний ответ от xanser Январь 19, 2019, 08:14:23 am »
Есть идеи, как снизить скорость и ускорение тягача при движении с прицепом, ориентируясь на его настройки из handling.cfg?
9
Справочная информация / Re: Катсцены
« Последний ответ от ilufir Январь 15, 2019, 08:56:18 pm »
и удалять ключи стоп

Ты про ключи позиции(те, что красные)?
В инструкции Andræs есть пункт по конверту в FBX анимацию(для конвертов аним biped<->bones).


не, там пришлось вообще все ключи удалять, из-за проблем с осями
10
Справочная информация / Re: Катсцены
« Последний ответ от Shagg_E Январь 15, 2019, 04:53:06 am »
и удалять ключи стоп

Ты про ключи позиции(те, что красные)?
В инструкции Andræs есть пункт по конверту в FBX анимацию(для конвертов аним biped<->bones).
Страницы: [1] 2 3 ... 10