Информация: Уважаемые посетители! В течение нескольких месяцев на форуме существовала проблема с регистрацией новых пользователей, о которой администрации стало известно недавно. Если вы ранее пытались зарегистрироваться на форуме, но не получили на ваш e-mail письмо с ссылкой для подтверждения регистрации, просим вас зарегистрироваться повторно. Приносим извинения за доставленные неудобства. Если вы все еще испытываете проблемы с регистрацией на форуме, обратитесь за помощью на e-mail: mr.angelo@railroadsim.net

Трамвай КТМ-5 (71-605) и модификации

Разработка и эксплуатация подвижного состава

Трамвай КТМ-5 (71-605) и модификации

Сообщение радиомастер » 31.12.2017, 18:59

Изображение
Всех с праздником ! С Днем Победы!
Рад представить вам обновленный трамвай ктм-5 (71-605) + дополнительные вагоны , среди которых есть и вагон 140 г Бийск (иду на таран ), как раз оформленный как к празднику ( в том числе и в реале) . Поправлена работа серводвигателя , добавлены звуки к лестнице , сделана перекраска под зеленый салон (вагон 105) , добавлен автомат ав-2 , вагон приспособлен в качестве трафика (если хоть чуточку он сам проедет , то у него включаются : генератор , освещение (в ночное время ) , поднимается пантограф , сами открываются двери (не сразу одновременно , а чуть по живому с задержкой ), звуки тэдов работают ), для игрока есть дефолтный вариант открывания дверей (если ни разу не пользовался ручным способом с пульта или салона ) по клавише T , маршрутные указатели (на константиновских вагонах еще и настоящие по текстурам) , для вагона 140 - светодиодный (включается кнопкой освещения маршрутников , а в трафике естественно само )

Состав дополнения
Трамвай № 161 и 120 - Основная модель в игре г Новокузнецк , благодарность как и в прошлом выпуске этим людям:
Алексей Соболев (текстуры , звуки) ,AgentOracle (звуки) ,Света (скрипт веревки, искр, маршрутный номероопределитель ), i2GR (скрипт тяги , шаблон) , Антоныч (некоторые звуки, текстуры деталей, особенно за звук ав-2 ), Дмитрий Денисенко (текстура маршрутника), Радиомастер (весь трамвай) ,Dimcore999 (замер деталей)
Трамвай № 105 - г Даугавпилс , Латвия , классический окрас времен СССР , который чудом сохранился в этой маленькой стране . Благодарность Replateck за текстуры
Трамваи №004 , № 002 и № 006 - г Константиновка , в настоящее время испытывают трудности , но игровые модели навсегда теперь в мировой паутине , причем настоящий вагон 006 давно перекрашен и отремонтирован , но в игре он без одной фары и без оптики как в то время в 2011 году . Благодарность за текстуры ( в том числе и за обзорные фотки крупных размеров , которые подошли для текстур ) :
Dimcore999 ( 004 ) , Дима Ягодкин (002 и 006 ) ,Аркадий Новожилов ( 006) . Номер маршрута и вводимое число может не совпадать ,числа идут по порядку , а маршруты имеют текстуры , в том числе и в нескольких вариантах (например для 3 и 4 маршрута Констахи ) и для г Бийск после 9 номера .
Трамвай № 140 - г Бийск , оформлен с наклейками ко Дню Победы , любимый вагон Дарьи Вениковой , за что ей спасибо за текстуры . На его основе сделана перекраска без наклеек , и получился один из Рязанских трамваев , за что спасибо Ивану Боярышнику , который в свое время приложил усилия по созданию объектов в трс , в том числе его дома есть и в РВ . Кстати текстуры маршрутных табличек - его заслуга .
Управление
A,D - тяга и тормоз
W,S - реверс
R,F - пантограф
Пробел - сигнал
H - свет дальний , ближний (shift)
U - свет в кабине (он же аварийный)
V - двоник
[,] - поворотник
N и M - переключение маршрутных табличек
Номер вагона , вводимый в редакторе имеет следующую особенность . Последние две цифры относятся к номеру маршрута . То есть если вам нужен вагон с номером 235 и маршрут 6 ,то нужно ввести 23506 , если вагон 1 с маршрутом 12 , то 112 . Номера вагонов на бортах от 1 до 4 цифр , соответственно в редакторе номер от 3 до 6 цифр . Это нужно для задания начального номера маршрута , например для трафика . Потом его можно менять с клавиатуры кнопками N и M
Если хоть раз открыли двери с кнопки в кабине , то по дефолту двери перестают открываться . Чтобы вернуть на место , верните все тумблеры в исходное положение , затем поставьте все три тумблера дверей в положение "от себя" и через несколько секунд в положение "среднее" .
Установка через Utilities.exe , старую версию трамвая удалить перед установкой через Utilities.exe , или снести папку ...Steam\SteamApps\common\railworks\Assets\Radiomaster\trams (если распаковывали как из архива)
Активация Radiomaster/Trams

www.youtube.com Видео от : www.youtube.com

Прототип , основная модель в игре :
Изображение
Tram 002-004-006-105-161_120_140_v1.1.rwp

Кто желает мне помочь , прошу webmoney R135271646332
Последний раз редактировалось радиомастер 09.05.2018, 10:52, всего редактировалось 5 раз(а).
Аватара пользователя
радиомастер
 
Сообщения: 2261
Зарегистрирован: 23.10.2010, 18:42
Откуда: Макеевка
Благодарил (а): 1170 раз.
Поблагодарили: 1677 раз.
Блог: Просмотр блога (4)
Играю в: Train Simulator 2018
Роль: Разработчик
Имя: Костик

Re: Трамвай КТМ-5 (71-605) и модификации

Сообщение радиомастер » 23.09.2018, 20:08

Сделал возможность с клавиатуры включать типа с улицы ручку аккумулятора
Изображение
Сделал заготовку для сме (Другие точки крепления для сцепок - глубже в вагон , чем для буксировочной палки , когда она крепится на конце вагона) . В игре сцепок можно сделать сколько хоч , если они все цепляются к одной точке , увы с трамом для использования по сме нужны отдельные два вагона , на которых будут между ними сцепки для сме , а с крайних концов -сцепки сме объектами , а цепляться буксировочная палка для соединения с обычными вагонами

Так вот тут и начинается проблема . Нужно как то сделать кабели , которые соответственно присоединяются к гнездам на корпусе , и если сделать как часть сцепки , в кривой вся цепь будет рваться . Если сделать по типу пинчей на пасс вагонах - в кривой так же будет торчать . С двух половинок на каждом вагоне - тоже будет рваться и торчать . Заносы по 1 метру минимум для каждого вагона в кривой то есть кишки кабеля должны менять размер от 0.5 м до 1-2 м то есть растягиваться целиком . Провод , соединяющий два пантографа вместе и проложенный по крыше , можно грамотно сделать если его изгиб будет напротив места крепления сме сцепки , а не на краю крыши (думаю сделать там рогатку для провода типа на ней висит) .
Вот как оно должно быть . По сути нужна еще одна параллельная сцепка , которая не основная а растягивается между точками соединения разъемов .
www.youtube.com Видео от : www.youtube.com
Аватара пользователя
радиомастер
 
Сообщения: 2261
Зарегистрирован: 23.10.2010, 18:42
Откуда: Макеевка
Благодарил (а): 1170 раз.
Поблагодарили: 1677 раз.
Блог: Просмотр блога (4)
Играю в: Train Simulator 2018
Роль: Разработчик
Имя: Костик

Re: Трамвай КТМ-5 (71-605) и модификации

Сообщение Света » 23.09.2018, 20:47

Нужно как то сделать кабели
Один из вариантов решить эту задачу.
В координатах зоны соединения кабелей (на прямом участке пути) расположить дочерку (с каким-нибудь примитивом или само соединение, разъем или что там есть). Используя в скрипте вызов
Код: Выделить всё
X, Y, Z = Call("marker:getNearPosition")
покадрово получать пространственное положение этой дочерки; пересылать эти данные на другой вагон; получив эти данные из другого вагона, проверить расхождение присланных и собственных значений соответственно по каждой оси и, если расхождение присутствует, компенсировать половину его значения математически, при этом "уровень компенсации" загрузить в анимацию кабеля или сцепки.
Другими словами, есть расхождение в 50 см по оси Х. Один вагон вычисляет, что надо сдвинуть свой разъем на 50/2=25 см вправо. Двигает анимацией "Х" кабель вправо. Другой вагон, располагая этими же данными, сдвигает свой кабель тоже на 25 см и тоже вправо. В результате точки соединения кабелей будут всегда в одном месте пространства.
Такое решение будет работать во всех 3 плоскостях, т.е., при высотных перепадах тоже.
Никогда не опускай руки, ведь впереди тебя ждет еще так много поводов опустить руки, а ты уже опустил руки.
Аватара пользователя
Света
 
Сообщения: 501
Зарегистрирован: 18.06.2016, 19:38
Благодарил (а): 238 раз.
Поблагодарили: 485 раз.
Блог: Просмотр блога (7)
Играю в: Train Simulator 2018
Роль: Разработчик

Re: Трамвай КТМ-5 (71-605) и модификации

Сообщение igoreha82 » 26.09.2018, 00:53

В LOTUS бы этот КТМ загнать, цены б ему не было)
igoreha82
 
Сообщения: 2
Зарегистрирован: 13.05.2018, 19:08
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Имя: Игорь

Re: Трамвай КТМ-5 (71-605) и модификации

Сообщение Skif » 26.09.2018, 11:16

Света писал(а):
Нужно как то сделать кабели
Один из вариантов решить эту задачу.
В координатах зоны соединения кабелей (на прямом участке пути) расположить дочерку (с каким-нибудь примитивом или само соединение, разъем или что там есть). Используя в скрипте вызов
Код: Выделить всё
X, Y, Z = Call("marker:getNearPosition")
покадрово получать пространственное положение этой дочерки; пересылать эти данные на другой вагон; получив эти данные из другого вагона, проверить расхождение присланных и собственных значений соответственно по каждой оси и, если расхождение присутствует, компенсировать половину его значения математически, при этом "уровень компенсации" загрузить в анимацию кабеля или сцепки.
Другими словами, есть расхождение в 50 см по оси Х. Один вагон вычисляет, что надо сдвинуть свой разъем на 50/2=25 см вправо. Двигает анимацией "Х" кабель вправо. Другой вагон, располагая этими же данными, сдвигает свой кабель тоже на 25 см и тоже вправо. В результате точки соединения кабелей будут всегда в одном месте пространства.
Такое решение будет работать во всех 3 плоскостях, т.е., при высотных перепадах тоже.


Схема интересная, но подозреваю, что артефакты все равно будут. У вас, получается, розетки пинчей гуляют по морде вагона. Решение годное, скажем, для тендера паровоза, чтобы подключить шланги подачи воды. Или электровозные пинчи (там угол выноса кузова много меньше, особенно для двухсекционного - еще в МСТС это было проверено и отработано).

TS поддерживает Skin-деформации. Единственное условие - это должен быть единый объект, и отекстуренный одним шейдером Skin. Сделать шланг пинча "кожаным", привинтить чайлдом к вагону, деформацию делать костью. Тогда розетки могут оставаться на своих местах, а вот шланг придется двигать анимацией костей. В ТЭМ2 на костях болтается трубка радиостанции, если не ошибаюсь, технология вполне работоспособна.
Skif
 
Сообщения: 3674
Зарегистрирован: 01.10.2009, 17:42
Благодарил (а): 404 раз.
Поблагодарили: 1023 раз.
Блог: Просмотр блога (3)
Имя: Дмитрий

Re: Трамвай КТМ-5 (71-605) и модификации

Сообщение Света » 26.09.2018, 12:16

розетки пинчей гуляют по морде вагона
Почему же? Нет. Двигаются точки, где, скажем так, заканчивается один вагон и начинается другой, т.е., место соединения кабелей. А точку крепления кабеля к морде никто не заставляет двигать.
Поэтому качество соприкосновения частей кабелей, принадлежащих разным вагонам на 100% зависят от точности математической компенсации, а визуальное поведение самих кабелей при изгибах - от качества анимации и её скриптового обработчика. Если костная анимация поддерживается (в трех проекциях), то кабели могут вести себя очень даже естественно. Все ограничения - от возможностей анимации, одним словом.

UPD:
Изображение
Никогда не опускай руки, ведь впереди тебя ждет еще так много поводов опустить руки, а ты уже опустил руки.
Аватара пользователя
Света
 
Сообщения: 501
Зарегистрирован: 18.06.2016, 19:38
Благодарил (а): 238 раз.
Поблагодарили: 485 раз.
Блог: Просмотр блога (7)
Играю в: Train Simulator 2018
Роль: Разработчик

Re: Трамвай КТМ-5 (71-605) и модификации

Сообщение Skif » 26.09.2018, 12:53

Костная анимация поддерживается (можно даже болтанку кабеля в движении сделать), но вот надо ли оно? Это весьма ресурсоемкий метод, для железнодорожного симулятора полезный, но не обязательный. Как вариант, вырубать выполнение этих рассчетов для внутренней камеры (90% геймплея), и синхронизироваться при переходе на внешнюю камеру. Мы это умеем.
Skif
 
Сообщения: 3674
Зарегистрирован: 01.10.2009, 17:42
Благодарил (а): 404 раз.
Поблагодарили: 1023 раз.
Блог: Просмотр блога (3)
Имя: Дмитрий

Re: Трамвай КТМ-5 (71-605) и модификации

Сообщение i2GR » 26.09.2018, 19:33

Вырубать для встроенной камеры? А встречные трамы?
Аватара пользователя
i2GR
 
Сообщения: 507
Зарегистрирован: 04.09.2008, 16:59
Благодарил (а): 278 раз.
Поблагодарили: 290 раз.
Блог: Просмотр блога (4)
Имя: Игорь

Re: Трамвай КТМ-5 (71-605) и модификации

Сообщение Skif » 26.09.2018, 21:30

Много ты там разглядишь, на тех встречных трамах.

Ну да ладно - не проблема отрубать и только на траме игрока. Я вообще сторонник стратегии создания для траффика сугубо отдельных объектов локомотивов, в отличие от создания унифицированных моделей с очень усложненной из-за подобных ветвлений логикой скриптов (и необходимостью синхронизации данных при смене статуса). Это, увы, не ТРС.
Skif
 
Сообщения: 3674
Зарегистрирован: 01.10.2009, 17:42
Благодарил (а): 404 раз.
Поблагодарили: 1023 раз.
Блог: Просмотр блога (3)
Имя: Дмитрий

Re: Трамвай КТМ-5 (71-605) и модификации

Сообщение Света » 26.09.2018, 21:55

Что-то вообще вы делаете проблему на ровном месте.
Вызов Call ("getNearPosition") возвращает расстояние в метрах от камеры игрока в трех плоскостях. Поэтому самый наипростейший вариант определить необходимость расчетов и управления анимацией - возвести все три значения в квадрат, просуммировать и сравнить с константой "чувствительности".
Код: Выделить всё
function isNearCamera ()
   local x, y, z = Call ("getNearPosition")
   return (x * x + y * y + z * z) < 6250000
end
Здесь функция вернет true, если игрок ближе, чем за 2.5 километра от локомотива, сделавшего запрос.
Исходя из таких возможностей, можно собрать простейший алгоритм: если локомотив принадлежит игроку и активна внешняя камера либо локомотив принадлежит боту и расстояние ниже критического, просчет делать и анимации проигрывать, иначе - нет.
Вот и все.
Хотя, для бота можно сделать ещё круче - по мере увеличения дистанции от обслуживаемой точки соединения до игрока просто увеличивать интервалы времени между замерами и расчетами. Такая динамичная система будет сочетать качество обработки с оптимальностью - при удалении на 2-3 км расчет происходит, скажем, раз в 10 сек - это потребует вообще мизерные ресурсы.

Skif писал(а):в отличие от создания унифицированных моделей с очень усложненной из-за подобных ветвлений логикой скриптов (и необходимостью синхронизации данных при смене статуса)
Честно скажу - вот именно с этим ни разу не было никаких проблем. Самый простой вариант решить эту задачу - разделить каждую функцию на 2 части - одна для бота, другая - для игрока, потом в каждой части прописать абсолютно независимые куски кода. Правда, я так не делаю, мне нравится компактность в кодах.
Хотя, кому как больше нравится :)
Никогда не опускай руки, ведь впереди тебя ждет еще так много поводов опустить руки, а ты уже опустил руки.
Аватара пользователя
Света
 
Сообщения: 501
Зарегистрирован: 18.06.2016, 19:38
Благодарил (а): 238 раз.
Поблагодарили: 485 раз.
Блог: Просмотр блога (7)
Играю в: Train Simulator 2018
Роль: Разработчик

Re: Трамвай КТМ-5 (71-605) и модификации

Сообщение Skif » 26.09.2018, 22:08

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


Это неверно структурно, Света.

Правильно делить на два крупных модуля сам метод Update(), и уже в нем вызывать (либо не вызывать) один и тот же набор унифицированных методов-инструментов. Раз уж API не предусматривает отдельных методов Update() для траффика и составов игрока (впрочем, есть скрипт симуляции, который запускается только у поездов игрока). Посему можно, к примеру, в локомотивном скрипте прописать методу траффика, которая будет отключаться, если управление взято игроком. Благо траффику не нужно использовать OCVC (которая работает через задницу) и контроль локомотивных цепей на логику - можно оперировать непосредственно узлами модели.
Skif
 
Сообщения: 3674
Зарегистрирован: 01.10.2009, 17:42
Благодарил (а): 404 раз.
Поблагодарили: 1023 раз.
Блог: Просмотр блога (3)
Имя: Дмитрий

Re: Трамвай КТМ-5 (71-605) и модификации

Сообщение Света » 26.09.2018, 22:23

Offtopic :
Это неверно структурно
Зато очень надежно, что для новичков, например, может быть основним критерием. Формально, лично для меня, что сделать 2 локомотива (один для бота, другой для игрока), что сделать полное деление всех функций на кусок для игрока и кусок для бота - это одно и то же с точки зрения написания программы. Даже разделение функции оптимальнее, так как модель одна, а выбор правильной ветки будет автоматический. То есть, ситуация, когда юзер в квик-драйве выберет траффиковый локомотив автоматически исключена.
Раз уж API не предусматривает отдельных методов Update() для траффика и составов игрока
Так какая разница, что у меня будет - два отдельных Update(), или один Update(), но разделенный условием на 2 независимых блока?
скрипт симуляции, который запускается только у поездов игрока
Главный (для меня, во всяком случае) недостаток этого скрипта (даже не скрипта, а самой концепции его использования) - это связь с основным скриптом через контролы и только через них. То есть, если я использую, например, скорость локомотива для расчета чего-то, то мне надо в обоих скриптах её извлекать из контрола. Это ненормально, я считаю. Поэтому я этот скрипт практически не применяю и считаю его рудиментом.
Никогда не опускай руки, ведь впереди тебя ждет еще так много поводов опустить руки, а ты уже опустил руки.
Аватара пользователя
Света
 
Сообщения: 501
Зарегистрирован: 18.06.2016, 19:38
Благодарил (а): 238 раз.
Поблагодарили: 485 раз.
Блог: Просмотр блога (7)
Играю в: Train Simulator 2018
Роль: Разработчик

Re: Трамвай КТМ-5 (71-605) и модификации

Сообщение Skif » 26.09.2018, 23:11

это связь с основным скриптом через контролы и только через них. То есть, если я использую, например, скорость локомотива для расчета чего-то, то мне надо в обоих скриптах её извлекать из контрола.


Контрол - единственный в данном случае возможный аналог глобальной переменной. Именно так его и нужно использовать. Кроме того - только контролы сохраняются в сессии и восстанавливаются при загрузке сессии с точки сохранения. Поэтому как ни верти, а если хочется сделать полноценно работающий со сценариями локомотив, без контролов не обойтись.

Так какая разница, что у меня будет - два отдельных Update(), или один Update(), но разделенный условием на 2 независимых блока?


В том, что две Update() (в локомотивном и симуляционном скриптах) выполняются в два потока. А разделенный кучей if-ов одиночный метод - в одном. Следовательно - меньше тайминг и выше ФПС. Но справедливости ради, разделенный на две (или 4) ветки Update тоже работает весьма быстро. Главное, чтобы ветвлений не было слишком много вложенных (if внутри if-а) - вот что очень сильно тормозит код. Еще посильнее циклов (которые вообще в тактируемых системах применять крайне не рекомендуется, но порой без них никуда).
Skif
 
Сообщения: 3674
Зарегистрирован: 01.10.2009, 17:42
Благодарил (а): 404 раз.
Поблагодарили: 1023 раз.
Блог: Просмотр блога (3)
Имя: Дмитрий

Re: Трамвай КТМ-5 (71-605) и модификации

Сообщение Света » 27.09.2018, 00:50

Offtopic :
Контрол - единственный в данном случае возможный аналог глобальной переменной. Именно так его и нужно использовать.
Да. Но одно дело загрузить значение контрола в переменную, и все манипуляции проделать с этой переменной, выгрузив её аж в конце итерации в этот контрол до следующего кадра, и совсем другое - раз за разом считывать этот контрол непосредственно, а потом ещё и продублировать эти считывания в скрипте симуляции. Это вообще преступление против оптимизации и быстродействия, ИМХО. Потому что Call - это вызов функции, а вызов функции - это некоторое количество стековых операций, что уже априори является задержкой по времени, следовательно - потерей производительности.
Что касается сохранения сессии - вообще никаких проблем. Всего лишь надо в функции OnSave () переписать все данные в контролы и нет совершенно никакой необходимости перелопачивать все эти контролы в каждой итерации.
В том, что две Update() (в локомотивном и симуляционном скриптах) выполняются в два потока.
Признаться, даже если обработка идет реально параллельно, я абсолютно не вижу никакого выигрыша. Причин несколько. Первая - это совершенно не решает проблему разделения игрок/бот, хотя бы из-за того, что скрипт симуляции не поддерживает даже 1/4 от всех возможностей основного скрипта и по-любому 75% обработки должно быть именно в основном скрипте. Я это пишу после того, как мне пришлось уже 80% кода из скрипта симуляции перетащить в основной из-за нежелания делать кучу контролов только ради синхронизации скриптов между собой. Вторая причина - никакая многопоточность не компенсирует необходимость делать полный дубликат некоторых вычислений в обеих скриптах. Я считаю, что чем делать два совершенно идентичных действия в двух потоках (с последующей синхронизацией через кучу контролов), лучше сделать одно действие в одном потоке и отказаться от синхронизации вообще.
В связи с этим я не вижу теоретической возможности для прироста FPS в использовании двух скриптов, которые, к тому же, могут ещё и конфликтовать между собой.
Но справедливости ради, разделенный на две (или 4) ветки Update тоже работает весьма быстро.
Я даже больше скажу - разделенная всего лишь на в глобальных блока функция Update () никак не будет работать медленнее, чем если бы движок вызывал одну из двух Update (). Потому что это всего лишь перенос логического сравнения из недр движка в саму функцию. И это более оптимальный вариант, так как дает скриптеру больше пространства для маневра, чем было бы из двумя Update ().
много вложенных (if внутри if-а) - вот что очень сильно тормозит код.
Я больше склоняюсь к тому, что сильно тормозят код многоэтажные elseif, но спорить не буду, так как не знаю принципа этих сравнений. Вот если бы посмотреть ассемблерный код простого if-а - тогда можно было бы говорить об этом. Возможно, там всего лишь вычитание с переносом и переход - тогда потери времени на проверку условия настолько мизерные, что о них нет смысла даже говорить.
циклов (которые вообще в тактируемых системах применять крайне не рекомендуется, но порой без них никуда).
Так это же смотря какие циклы :D
Никогда не опускай руки, ведь впереди тебя ждет еще так много поводов опустить руки, а ты уже опустил руки.
Аватара пользователя
Света
 
Сообщения: 501
Зарегистрирован: 18.06.2016, 19:38
Благодарил (а): 238 раз.
Поблагодарили: 485 раз.
Блог: Просмотр блога (7)
Играю в: Train Simulator 2018
Роль: Разработчик

Re: Трамвай КТМ-5 (71-605) и модификации

Сообщение радиомастер » 27.09.2018, 07:08

Света писал(а):Вызов Call ("getNearPosition") возвращает расстояние в метрах от камеры игрока в трех плоскостях.

Применительно к определению точек дочерних объектов (проверил в движении , камера на вагоне или в кабине, то есть едет с вагоном) X, Y, Z -это координаты относительно стартоывой точки маршрута , то есть в движении постоянно меняются . Поэтому для шланги пришлось построить треугольник из трех точек , где определяется расстояние между точками и угол через арккосинус . И еще , в одно сцене со скин шлангом не удалось раздельно сделать хотя бы две анимации (одну на длину , вторую на вращение ) так как игра не конвертит если мешей больше чем одна , а анимация не работает если раздельно скрывать часть объектов от другой анимации с костями .Пришлось оставить только длину. А сам шланг прикручивать как дочерний объект и привязывать к пипочке которая уже дает вращение на внешней модели вагона ( в конфиге где дочерние объекты есть поле с указанием объекта из макса за который дочка держится , и матрица уже относительно него , а так как объект находится в нужной точке - то матрица 0 )
на втором трамвае точка куда надо прицепить от первого вагона торчащий шланг

ее координаты передаются на первый вагон

а на первом вагоне где крепится шланга тоже точка и вспомогательная точка сбоку

получается треугольник с тремя точками и высчитываются все расстояния и по формуле арккосунусом находится угол на который надоповернуть этот самый шланг

а длина уже известа - это одна из сторон треугольника

сам шланг анимация скин в максе только одна - его длина

но

в месте куда прикручена шланга на первом вагоне находится объект который вращается от -90 до 90 градусов как все внешние анимации типа дверей и тд

а когда прикручивваешь шлангу можно указать объект из сцены макса к которому привязка

например так нужно делать когда песочница на тепловозе на тележках и при повороте телеги песок всегда сыпется из трубки которая повернулась с телегой вместе

вот и вращаем объект и через него шлангу и длину выстаяляем уже ей , нав высоту потом сделаю там тоже треугольник получается

Операция сложная и по возможности ее лучше не делать , так же сложно сделать чтобы шланг правильно гнулся . Сделаю еще вверху кабель т заборчик сбоку который тоже будет шевелиться ,ну и нормальные шланги для соединения в тряпочке брезентовой!
www.youtube.com Видео от : www.youtube.com
Аватара пользователя
радиомастер
 
Сообщения: 2261
Зарегистрирован: 23.10.2010, 18:42
Откуда: Макеевка
Благодарил (а): 1170 раз.
Поблагодарили: 1677 раз.
Блог: Просмотр блога (4)
Играю в: Train Simulator 2018
Роль: Разработчик
Имя: Костик

Re: Трамвай КТМ-5 (71-605) и модификации

Сообщение Света » 27.09.2018, 10:25

радиомастер писал(а):X, Y, Z -это координаты относительно стартоывой точки маршрута , то есть в движении постоянно меняются
На самом деле это координаты относительно юго-западного (ЕМНИП) угла активного тайла. Так как активным является тот тайл, на котором находится игрок (при покидании этого тайла он останется активным, пока не "войти" на тайл через один от него, там все сложно), то это расстояние, хоть и не точно, все же, к игроку. Признаю - с определенной погрешностью, но для определения, нужны сложные обработки или нет, этого вполне достаточно.
Никогда не опускай руки, ведь впереди тебя ждет еще так много поводов опустить руки, а ты уже опустил руки.
Аватара пользователя
Света
 
Сообщения: 501
Зарегистрирован: 18.06.2016, 19:38
Благодарил (а): 238 раз.
Поблагодарили: 485 раз.
Блог: Просмотр блога (7)
Играю в: Train Simulator 2018
Роль: Разработчик

Пред.След.

Вернуться в [RW] Подвижной состав

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

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