PDA

Просмотр полной версии : Кабина и ее создание



lubinda
23.06.2010, 16:05
Помогите! Я с друзьями делаю салон автобуса нам требуется знания как анимировать кабину? Я имею ввиду открыть окно и т.д. Один человек обещал нам помочь со скриптом но нужна анимация модели. Подскажите пожалуйста как в максе анимировать правильно модель? Будем благодарны за помощь!:pardon:

Zuko
27.06.2010, 14:39
как странно,и ведь ни один человек не отозвался

AlexanderGn
27.06.2010, 14:47
Ничего странно, ведь Trainz — железнодорожный симулятор, а на поставленный топикстартером вопрос ответ в интернете есть уже шесть лет (http://blue-tramway.narod.ru/).

Zuko
27.06.2010, 18:55
ну мы и не только автобусы хотим делать,а ответ вроде нашел,но не такой уж полный

lubinda
28.06.2010, 09:58
AlexanderGn, спасибо помогло.

lubinda
01.07.2010, 08:40
Еще такой вопрос: как анимировать манометр?

Skif
01.07.2010, 09:52
Стрелка - отдельная деталь с пивотом на месте оси вращения. Крутить будет управляющий кабиной скрипт.

lubinda
01.07.2010, 16:21
Эх все на скрипте... AGS чтоли выучить?:duel7dl:

ZIMA
28.10.2010, 17:32
Пробую разобраться в конфиге кабины. Но тут мне не понятны некоторые моменты. Например, что означает каждый параметр в этих видах активаторов.
Если есть учебник по этой теме на русском, дайте ссылку

кнопка
drivercall_button
{
mesh "knopka.im"
kind "pullrope"
auto-create 1
att-parent "default"
att "a.mashinist_call"
limits 0,1
angles 0,0.008
mousespeed 15
tooltip-text "Вызов машиниста"
}
контроллер
throttle_lever
{
mesh "Throttle_ring.IM"
kind "lever"
att "a.throtte"
auto-create 1
angles 0.075,6.075
limits 0,1
notches 0,0.0667,0.1333,0.2,0.2667,0.3333,0.4,0.4667,0.533 3,0.6,0.6667,0.7333,0.8,0.8667,0.9333,1
notchheight 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
att-parent "default"
radius 0.1
mousespeed 0.2
tooltip-text "Контроллер"
}
стрелка
speedo_needle
{
kind "needle"
auto-create 1
mesh "speedo_needle.im"
att "a.speedo_needle"
limits 0,41.7
angles 0,4.2
att-parent "default"
test-collisions 0
}
тумблер
dl_al_switch
{
mesh "Withe_Swich.IM"
kind "lever"
auto-create 1
att "a.ditch_left_forward_switch"
angles 1.1,-0.15
limits -1,1
notches 0,0.5,1
notchheight 0,0,0
radius 0.05
tooltip-text "Левый передний БФ"
}

релейщик-автоматчик
28.10.2010, 17:43
что именно непонятно?
конкретно напиши,попробую ответить

ZIMA
28.10.2010, 17:51
На примере контроллера
Что означают эти параметры м как вычислять к ним числовые значения
angles 0.075,6.075
limits 0,1
notches 0,0.0667,0.1333,0.2,0.2667,0.3333,0.4,0.4667,0.533 3,0.6,0.6667,0.7333,0.8,0.8667,0.9333,1
notchheight 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
att-parent "default"
radius 0.1
mousespeed 0.2

amd103
28.10.2010, 18:02
angles — углы начального и конечного положения (в радианах).
limits — значения, которое контрол будет принимать в начальном и конечном положении. Могут быть любые, в т.ч. отрицательные.
notches — фиксированные позиции, задаются числами в отрезке [0, 1]. Тег может отсутствовать, тогда позиций не будет.
notchheight — высота видимых черточек для обозначения позиций.
radius — расстояние от точки до этих черточек.
mousespeed — скорость перемещения контрола мышью.
att-parent — имя меша с точкой.

ZIMA
28.10.2010, 18:56
А в этих параметрах все углы должны быть в радианах?

релейщик-автоматчик
28.10.2010, 19:00
как я понимаю - да

amd103
28.10.2010, 19:11
А тут углы только в первом параметре, в остальных лишь числа. В нотчес, в частности, от 0 до 1 значит, что 0 — начало, 1 — конец, 0.5 — середина.

Nemo
29.10.2010, 18:22
att-parent — имя меша с точкой.
А это может быть другой контролс?

amd103
29.10.2010, 18:46
Да.

ZIMA
29.10.2010, 20:26
Теперь проблема, как переводить градусы в радианы. Геометрию со школы уже забыл

amd103
29.10.2010, 20:49
Разделить градусы на 360 / (2 * пи), что равно 57.29578.

dvigatel
29.10.2010, 20:51
Какие настройки в левере нужно прписать, чтобы при перемещении объект не повораxивался, а лишь передвигался вбок?

TRam_
29.10.2010, 21:19
надо очень большой радиус поворота делать

dvigatel
29.10.2010, 21:25
Он прописывается в angles?

TRam_
30.10.2010, 01:14
anglesтуда прописываются 2 близких угла (типа 3.1 и 3.15 радиан)

dvigatel
30.10.2010, 09:47
Ну а радиус поворота как увеличить?

dvigatel
30.10.2010, 21:53
С поворотом разобрался. Точки привязки могут иметь одинаковые координаты в положении? Потому что при добавлении контрола СМ пишит ошибку

Don_Capone
01.11.2010, 03:14
Возможно кому-то будет интересно: как сделать качание камеры в кабине с помощью скрипта.
Для начала идём сюда, и смотрим это http://www.railunion.net/forum23/topic8216-45.html#p179873
Скопируйте весь скрипт, и далее выбирайте из него только то, что отвечает за создание колебаний, то есть
include "defaultlocomotivecabin.gs"
include "locomotive.gs"
include "trainz.gs"
include "gs.gs"
include "common.gs"
include "world.gs"
include "vehicle.gs"
include "train.gs"

class TPhyObject
{
public float X = 0;
public float Y = 0;

public float Vx = 0;
public float Vy = 0;

public float m = 0;

public void Reset(void)
{
X = 0;
Y = 0;

Vx = 0;
Vy = 0;

m = 0;
}
};

class ALS_Cab isclass DefaultLocomotiveCabin
{
public void Attach(GameObject obj);

TPhyObject Wag;
TPhyObject Bog;
TPhyObject Wh;

float ov = 0.0;
float z = 0;
float dt = 10.0;
int kv_pos = 0;
int kv_pos_old = 0;

int cpos = 0;
int cposc = 0;


public void PhyTick(float dt)
{
int i = 0;
float ft = dt / 40.0;

for (i = 0; i < 10;++i)
{
if (!Wh or !Bog or !Wag)
return;

float XForce = (Wh.X - Bog.X)*1000.0*10000.0 + (Bog.X - Wag.X)*100.0*10000.0;
float YForce = (Wh.Y - Bog.Y)*585.0*10000.0 - (Bog.Y - Wag.Y)*585.0*10000.0 - Bog.m*9.8;
float XAccel = XForce/Bog.m;
float YAccel = YForce/Bog.m;

Wh.X = Wh.X*0.98 + Wh.Vx*ft;
Wh.Y = Wh.Y*0.98 + Wh.Vy*ft;

if (Math.Rand(0,1000) < Math.Fabs(loco.GetVelocity()))
{
Wh.Vx = Math.Rand(-1.0,1.0)*loco.GetVelocity()*0.03;
Wh.Vy = Math.Rand(-1.0,1.0)*loco.GetVelocity()*0.06;
}

Bog.Vx = Bog.Vx*0.998 + ft*XAccel;
Bog.Vy = Bog.Vy*0.997 + ft*YAccel;

Bog.X = Bog.X + ft*Bog.Vx;
Bog.Y = Bog.Y + ft*Bog.Vy;

XForce = (Bog.X - Wag.X)*100.0*10000.0;
YForce = (Bog.Y - Wag.Y)*585.0*10000.0 - Wag.m*9.8;

YForce = YForce - Math.Fmin(240000*(Bog.Vy + Wag.Vy),150000);
XForce = XForce - Math.Fmin(240000*(Bog.Vx + Wag.Vx),150000);

XAccel = XForce/Wag.m;
YAccel = YForce/Wag.m;

Wag.Vx = Wag.Vx*0.999 + ft*XAccel;
Wag.Vy = Wag.Vy*0.997 + ft*YAccel;

Wag.X = Wag.X + ft*Wag.Vx;
Wag.Y = Wag.Y + ft*Wag.Vy;

if (Wag.Y > 0.2)
Wag.Y = 0.2;
if (Wag.Y < -0.2)
Wag.Y = -0.2;

if (Bog.Y > 0.2)
Bog.Y = 0.2;
if (Bog.Y < -0.2)
Bog.Y = -0.2;
}
}

float vz1st = 0.0;

public void Update()
{
inherited();
dt = World.GetSeconds() - dt;

if (dt < 1.0)
PhyTick(dt);

dt = World.GetSeconds();

loco.SetMeshTranslation("default",Wag.X,z*0.021,Wa g.Y);


}

public void Attach(GameObject obj)
{
inherited(obj);

Wag = new TPhyObject();
Bog = new TPhyObject();
Wh = new TPhyObject();

Wag.Reset();
Bog.Reset();
Wh.Reset();

Wag.m = 19200;
Wag.Y = -0.07;
Bog.Y = 00.0;
Bog.m = 7550.0;
Wh.m = 1000;

int i = 0;
for (i=0;i < loco.GetMyTrain().GetVehicles().size(); ++i)
{loco.GetMyTrain().GetVehicles()[i].SetProductDisabled();}

(cast<Vehicle>obj).SetHeadlightColor(0.1,0.1,0.05) ;
(cast<Vehicle>obj).SetRollBasedOnTrack(-1.0);
(cast<Vehicle>obj).SetCabinSwayAmount(50.0);
}

};
Чтобы воткнуть это в скрипт имеющегося локомотива, надо просто по прядку вставить куски кода в нужные места скрипта кабины. То есть:

Это
class TPhyObject
{
public float X = 0;
public float Y = 0;

public float Vx = 0;
public float Vy = 0;

public float m = 0;

public void Reset(void)
{
X = 0;
Y = 0;

Vx = 0;
Vy = 0;

m = 0;
}
};
пишем прямо в самом начале кода, после include

Это

public void Attach(GameObject obj);

TPhyObject Wag;
TPhyObject Bog;
TPhyObject Wh;

float ov = 0.0;
float z = 0;
float dt = 10.0;
int kv_pos = 0;
int kv_pos_old = 0;

int cpos = 0;
int cposc = 0;

Пишем в самом начале, там где описывается главный класс кабины.

Это


public void PhyTick(float dt)
{
int i = 0;
float ft = dt / 40.0;

for (i = 0; i < 10;++i)
{
if (!Wh or !Bog or !Wag)
return;

float XForce = (Wh.X - Bog.X)*1000.0*10000.0 + (Bog.X - Wag.X)*100.0*10000.0;
float YForce = (Wh.Y - Bog.Y)*585.0*10000.0 - (Bog.Y - Wag.Y)*585.0*10000.0 - Bog.m*9.8;
float XAccel = XForce/Bog.m;
float YAccel = YForce/Bog.m;

Wh.X = Wh.X*0.98 + Wh.Vx*ft;
Wh.Y = Wh.Y*0.98 + Wh.Vy*ft;

if (Math.Rand(0,1000) < Math.Fabs(loco.GetVelocity()))
{
Wh.Vx = Math.Rand(-1.0,1.0)*loco.GetVelocity()*0.03;
Wh.Vy = Math.Rand(-1.0,1.0)*loco.GetVelocity()*0.06;
}

Bog.Vx = Bog.Vx*0.998 + ft*XAccel;
Bog.Vy = Bog.Vy*0.997 + ft*YAccel;

Bog.X = Bog.X + ft*Bog.Vx;
Bog.Y = Bog.Y + ft*Bog.Vy;

XForce = (Bog.X - Wag.X)*100.0*10000.0;
YForce = (Bog.Y - Wag.Y)*585.0*10000.0 - Wag.m*9.8;

YForce = YForce - Math.Fmin(240000*(Bog.Vy + Wag.Vy),150000);
XForce = XForce - Math.Fmin(240000*(Bog.Vx + Wag.Vx),150000);

XAccel = XForce/Wag.m;
YAccel = YForce/Wag.m;

Wag.Vx = Wag.Vx*0.999 + ft*XAccel;
Wag.Vy = Wag.Vy*0.997 + ft*YAccel;

Wag.X = Wag.X + ft*Wag.Vx;
Wag.Y = Wag.Y + ft*Wag.Vy;

if (Wag.Y > 0.2)
Wag.Y = 0.2;
if (Wag.Y < -0.2)
Wag.Y = -0.2;

if (Bog.Y > 0.2)
Bog.Y = 0.2;
if (Bog.Y < -0.2)
Bog.Y = -0.2;
}
}

float vz1st = 0.0;

Пишем в любом свободном месте класса кабины. Этот подраздел непосредственно отвечает за колебания, его и надо ковырять, чтобы изменить функции колебаний, но я в этом пока не разобрался. Экспериментирую. Строка float vz1st = 0.0; возможно вообще не нужна - я не проверял.

Это

public void Update()
{
inherited();
dt = World.GetSeconds() - dt;

if (dt < 1.0)
PhyTick(dt);

dt = World.GetSeconds();

loco.SetMeshTranslation("default",Wag.X,z*0.021,Wa g.Y);


}
Пишем в секцию update скрипта.

Это
public void Attach(GameObject obj)
{
inherited(obj);

Wag = new TPhyObject();
Bog = new TPhyObject();
Wh = new TPhyObject();

Wag.Reset();
Bog.Reset();
Wh.Reset();

Wag.m = 19200;
Wag.Y = -0.07;
Bog.Y = 00.0;
Bog.m = 7550.0;
Wh.m = 1000;

int i = 0;
for (i=0;i < loco.GetMyTrain().GetVehicles().size(); ++i)
{loco.GetMyTrain().GetVehicles()[i].SetProductDisabled();}

(cast<Vehicle>obj).SetHeadlightColor(0.1,0.1,0.05) ;
(cast<Vehicle>obj).SetRollBasedOnTrack(-1.0);
(cast<Vehicle>obj).SetCabinSwayAmount(50.0);
}

};
В секцию Attach. Тут тоже есть параметры, непосредственно влияющие на колебания. В моём случае секции апдейт и аттач в скрипте уже были, так что пришлось добавлять к уже имеющемуся коду.

Если в кабине вашего локомотива изначально нет скрипта, то просто создайте его, полностью скопировав код из спойлера выше в текстовый файл, созданный, например в вордпаде. Созраните этот файл с расширением .gs, а в конфиге пропишите 2 строки:
script "имяфайла.gs"
class "ALS_Cab"
Есть некоторые неприятные моменты: клик-зоны для органов управления смещаются немного вниз, в зависимости от настроек phytick. Полностью избавиться от этого пока не удалось.
При первой установке кода имеют место незатухающие колебания: то есть поезд стоит на месте и колбасится вверх-вниз. Лечится некоторым редактированием phytick, но также нужно какое-то время на затухание колебаний.
Что интересно: качается не только кабина, но и весь лок(внешняя модель). Вообще скрипт очень перспективный, вот ещё бы комбайн описал, как редактировать колебания - было бы вобще замечатльно.

Ну или если кто-то другой расскажет что там у чему, это будет просто замечательно.

TRam_
01.11.2010, 03:33
(cast<Vehicle>obj).SetHeadlightColor(0.1,0.1,0.05) ;вот эту строку лучше убирать. Иначе все поверхности с бампом при свете прожектором будут чёрные.

dvigatel
01.11.2010, 09:56
Возможно кому-то будет интересно: как сделать качание камеры в кабине с помощью скрипта.
Для начала идём сюда, и смотрим это http://www.railunion.net/forum23/topic8216-45.html#p179873
Скопируйте весь скрипт, и далее выбирайте из него только то, что отвечает за создание колебаний, то есть
include "defaultlocomotivecabin.gs"
include "locomotive.gs"
include "trainz.gs"
include "gs.gs"
include "common.gs"
include "world.gs"
include "vehicle.gs"
include "train.gs"

class TPhyObject
{
public float X = 0;
public float Y = 0;

public float Vx = 0;
public float Vy = 0;

public float m = 0;

public void Reset(void)
{
X = 0;
Y = 0;

Vx = 0;
Vy = 0;

m = 0;
}
};

class ALS_Cab isclass DefaultLocomotiveCabin
{
public void Attach(GameObject obj);

TPhyObject Wag;
TPhyObject Bog;
TPhyObject Wh;

float ov = 0.0;
float z = 0;
float dt = 10.0;
int kv_pos = 0;
int kv_pos_old = 0;

int cpos = 0;
int cposc = 0;


public void PhyTick(float dt)
{
int i = 0;
float ft = dt / 40.0;

for (i = 0; i < 10;++i)
{
if (!Wh or !Bog or !Wag)
return;

float XForce = (Wh.X - Bog.X)*1000.0*10000.0 + (Bog.X - Wag.X)*100.0*10000.0;
float YForce = (Wh.Y - Bog.Y)*585.0*10000.0 - (Bog.Y - Wag.Y)*585.0*10000.0 - Bog.m*9.8;
float XAccel = XForce/Bog.m;
float YAccel = YForce/Bog.m;

Wh.X = Wh.X*0.98 + Wh.Vx*ft;
Wh.Y = Wh.Y*0.98 + Wh.Vy*ft;

if (Math.Rand(0,1000) < Math.Fabs(loco.GetVelocity()))
{
Wh.Vx = Math.Rand(-1.0,1.0)*loco.GetVelocity()*0.03;
Wh.Vy = Math.Rand(-1.0,1.0)*loco.GetVelocity()*0.06;
}

Bog.Vx = Bog.Vx*0.998 + ft*XAccel;
Bog.Vy = Bog.Vy*0.997 + ft*YAccel;

Bog.X = Bog.X + ft*Bog.Vx;
Bog.Y = Bog.Y + ft*Bog.Vy;

XForce = (Bog.X - Wag.X)*100.0*10000.0;
YForce = (Bog.Y - Wag.Y)*585.0*10000.0 - Wag.m*9.8;

YForce = YForce - Math.Fmin(240000*(Bog.Vy + Wag.Vy),150000);
XForce = XForce - Math.Fmin(240000*(Bog.Vx + Wag.Vx),150000);

XAccel = XForce/Wag.m;
YAccel = YForce/Wag.m;

Wag.Vx = Wag.Vx*0.999 + ft*XAccel;
Wag.Vy = Wag.Vy*0.997 + ft*YAccel;

Wag.X = Wag.X + ft*Wag.Vx;
Wag.Y = Wag.Y + ft*Wag.Vy;

if (Wag.Y > 0.2)
Wag.Y = 0.2;
if (Wag.Y < -0.2)
Wag.Y = -0.2;

if (Bog.Y > 0.2)
Bog.Y = 0.2;
if (Bog.Y < -0.2)
Bog.Y = -0.2;
}
}

float vz1st = 0.0;

public void Update()
{
inherited();
dt = World.GetSeconds() - dt;

if (dt < 1.0)
PhyTick(dt);

dt = World.GetSeconds();

loco.SetMeshTranslation("default",Wag.X,z*0.021,Wa g.Y);


}

public void Attach(GameObject obj)
{
inherited(obj);

Wag = new TPhyObject();
Bog = new TPhyObject();
Wh = new TPhyObject();

Wag.Reset();
Bog.Reset();
Wh.Reset();

Wag.m = 19200;
Wag.Y = -0.07;
Bog.Y = 00.0;
Bog.m = 7550.0;
Wh.m = 1000;

int i = 0;
for (i=0;i < loco.GetMyTrain().GetVehicles().size(); ++i)
{loco.GetMyTrain().GetVehicles()[i].SetProductDisabled();}

(cast<Vehicle>obj).SetHeadlightColor(0.1,0.1,0.05) ;
(cast<Vehicle>obj).SetRollBasedOnTrack(-1.0);
(cast<Vehicle>obj).SetCabinSwayAmount(50.0);
}

};
Чтобы воткнуть это в скрипт имеющегося локомотива, надо просто по прядку вставить куски кода в нужные места скрипта кабины. То есть:

Это
class TPhyObject
{
public float X = 0;
public float Y = 0;

public float Vx = 0;
public float Vy = 0;

public float m = 0;

public void Reset(void)
{
X = 0;
Y = 0;

Vx = 0;
Vy = 0;

m = 0;
}
};
пишем прямо в самом начале кода, после include

Это

public void Attach(GameObject obj);

TPhyObject Wag;
TPhyObject Bog;
TPhyObject Wh;

float ov = 0.0;
float z = 0;
float dt = 10.0;
int kv_pos = 0;
int kv_pos_old = 0;

int cpos = 0;
int cposc = 0;

Пишем в самом начале, там где описывается главный класс кабины.

Это


public void PhyTick(float dt)
{
int i = 0;
float ft = dt / 40.0;

for (i = 0; i < 10;++i)
{
if (!Wh or !Bog or !Wag)
return;

float XForce = (Wh.X - Bog.X)*1000.0*10000.0 + (Bog.X - Wag.X)*100.0*10000.0;
float YForce = (Wh.Y - Bog.Y)*585.0*10000.0 - (Bog.Y - Wag.Y)*585.0*10000.0 - Bog.m*9.8;
float XAccel = XForce/Bog.m;
float YAccel = YForce/Bog.m;

Wh.X = Wh.X*0.98 + Wh.Vx*ft;
Wh.Y = Wh.Y*0.98 + Wh.Vy*ft;

if (Math.Rand(0,1000) < Math.Fabs(loco.GetVelocity()))
{
Wh.Vx = Math.Rand(-1.0,1.0)*loco.GetVelocity()*0.03;
Wh.Vy = Math.Rand(-1.0,1.0)*loco.GetVelocity()*0.06;
}

Bog.Vx = Bog.Vx*0.998 + ft*XAccel;
Bog.Vy = Bog.Vy*0.997 + ft*YAccel;

Bog.X = Bog.X + ft*Bog.Vx;
Bog.Y = Bog.Y + ft*Bog.Vy;

XForce = (Bog.X - Wag.X)*100.0*10000.0;
YForce = (Bog.Y - Wag.Y)*585.0*10000.0 - Wag.m*9.8;

YForce = YForce - Math.Fmin(240000*(Bog.Vy + Wag.Vy),150000);
XForce = XForce - Math.Fmin(240000*(Bog.Vx + Wag.Vx),150000);

XAccel = XForce/Wag.m;
YAccel = YForce/Wag.m;

Wag.Vx = Wag.Vx*0.999 + ft*XAccel;
Wag.Vy = Wag.Vy*0.997 + ft*YAccel;

Wag.X = Wag.X + ft*Wag.Vx;
Wag.Y = Wag.Y + ft*Wag.Vy;

if (Wag.Y > 0.2)
Wag.Y = 0.2;
if (Wag.Y < -0.2)
Wag.Y = -0.2;

if (Bog.Y > 0.2)
Bog.Y = 0.2;
if (Bog.Y < -0.2)
Bog.Y = -0.2;
}
}

float vz1st = 0.0;

Пишем в любом свободном месте класса кабины. Этот подраздел непосредственно отвечает за колебания, его и надо ковырять, чтобы изменить функции колебаний, но я в этом пока не разобрался. Экспериментирую. Строка float vz1st = 0.0; возможно вообще не нужна - я не проверял.

Это

public void Update()
{
inherited();
dt = World.GetSeconds() - dt;

if (dt < 1.0)
PhyTick(dt);

dt = World.GetSeconds();

loco.SetMeshTranslation("default",Wag.X,z*0.021,Wa g.Y);


}
Пишем в секцию update скрипта.

Это
public void Attach(GameObject obj)
{
inherited(obj);

Wag = new TPhyObject();
Bog = new TPhyObject();
Wh = new TPhyObject();

Wag.Reset();
Bog.Reset();
Wh.Reset();

Wag.m = 19200;
Wag.Y = -0.07;
Bog.Y = 00.0;
Bog.m = 7550.0;
Wh.m = 1000;

int i = 0;
for (i=0;i < loco.GetMyTrain().GetVehicles().size(); ++i)
{loco.GetMyTrain().GetVehicles()[i].SetProductDisabled();}

(cast<Vehicle>obj).SetHeadlightColor(0.1,0.1,0.05) ;
(cast<Vehicle>obj).SetRollBasedOnTrack(-1.0);
(cast<Vehicle>obj).SetCabinSwayAmount(50.0);
}

};
В секцию Attach. Тут тоже есть параметры, непосредственно влияющие на колебания. В моём случае секции апдейт и аттач в скрипте уже были, так что пришлось добавлять к уже имеющемуся коду.

Если в кабине вашего локомотива изначально нет скрипта, то просто создайте его, полностью скопировав код из спойлера выше в текстовый файл, созданный, например в вордпаде. Созраните этот файл с расширением .gs, а в конфиге пропишите 2 строки:
script "имяфайла.gs"
class "ALS_Cab"
Есть некоторые неприятные моменты: клик-зоны для органов управления смещаются немного вниз, в зависимости от настроек phytick. Полностью избавиться от этого пока не удалось.
При первой установке кода имеют место незатухающие колебания: то есть поезд стоит на месте и колбасится вверх-вниз. Лечится некоторым редактированием phytick, но также нужно какое-то время на затухание колебаний.
Что интересно: качается не только кабина, но и весь лок(внешняя модель). Вообще скрипт очень перспективный, вот ещё бы комбайн описал, как редактировать колебания - было бы вобще замечатльно.

Ну или если кто-то другой расскажет что там у чему, это будет просто замечательно.



Прописал я весь этот текст в скрипт своего салона Д1, ни на милиметр не качнулся

dvigatel
01.11.2010, 10:11
К тому же отнимает менюшку в игре, и с головных вагонов нельзя ездить - выбрасывает из игры

Don_Capone
01.11.2010, 10:31
К тому же отнимает менюшку в игре, и с головных вагонов нельзя ездить - выбрасывает из игры
Какие-то глюки - проверяй, как встал скрипт в кабину. У тебя в Д1 есть скрипт вообще? Может ты при "вживлении" ошибся где-то.

Правда пока убеждаюсь, что без знания параметров управления колебаниями в скрипте - практической пользы от него не много. А Комбайн молчит, не говорит, что к чему :(

dvigatel
01.11.2010, 10:38
Скриптов у меня небыло, создал файл тектовый, переименовал в script.gs, туда вставил весь текст скрипта, в конфиге указал скрипт и класс. Салон не качается. Прописал его к внешнему вагону - при попытки тронутся выбрасывает

Vasi4
01.11.2010, 11:23
Если в кабине вашего локомотива изначально нет скрипта, то просто создайте его, полностью скопировав код из спойлера выше в текстовый файл, созданный, например в вордпаде. Созраните этот файл с расширением .gs, а в конфиге пропишите 2 строки:
script "имяфайла.gs"
class "ALS_Cab"
Есть некоторые неприятные моменты: клик-зоны для органов управления смещаются немного вниз, в зависимости от настроек phytick. Полностью избавиться от этого пока не удалось.
При первой установке кода имеют место незатухающие колебания: то есть поезд стоит на месте и колбасится вверх-вниз. Лечится некоторым редактированием phytick, но также нужно какое-то время на затухание колебаний.
Что интересно: качается не только кабина, но и весь лок(внешняя модель). Вообще скрипт очень перспективный, вот ещё бы комбайн описал, как редактировать колебания - было бы вобще замечатльно.

Ну или если кто-то другой расскажет что там у чему, это будет просто замечательно.

За наклон и раскачивание кабины отвечают параметры:

(cast<Vehicle>obj).SetRollBasedOnTrack(-1.0);
(cast<Vehicle>obj).SetCabinSwayAmount(50.0);
дальше ишчите сами.

Вот что написал мне Комбайн насчет незатухающих колебаний:

Чтобы вагон не качался, увеличь производительность игры — я не делал лагкомпенсацию.

Don_Capone
01.11.2010, 11:30
За наклон и раскачивание кабины отвечают параметры:А вот это всё тогда нафига?


public void PhyTick(float dt)
{
int i = 0;
float ft = dt / 40.0;

for (i = 0; i < 10;++i)
{
if (!Wh or !Bog or !Wag)
return;

float XForce = (Wh.X - Bog.X)*1000.0*10000.0 + (Bog.X - Wag.X)*100.0*10000.0;
float YForce = (Wh.Y - Bog.Y)*585.0*10000.0 - (Bog.Y - Wag.Y)*585.0*10000.0 - Bog.m*9.8;
float XAccel = XForce/Bog.m;
float YAccel = YForce/Bog.m;

Wh.X = Wh.X*0.98 + Wh.Vx*ft;
Wh.Y = Wh.Y*0.98 + Wh.Vy*ft;

if (Math.Rand(0,1000) < Math.Fabs(loco.GetVelocity()))
{
Wh.Vx = Math.Rand(-1.0,1.0)*loco.GetVelocity()*0.03;
Wh.Vy = Math.Rand(-1.0,1.0)*loco.GetVelocity()*0.06;
}

Bog.Vx = Bog.Vx*0.998 + ft*XAccel;
Bog.Vy = Bog.Vy*0.997 + ft*YAccel;

Bog.X = Bog.X + ft*Bog.Vx;
Bog.Y = Bog.Y + ft*Bog.Vy;

XForce = (Bog.X - Wag.X)*100.0*10000.0;
YForce = (Bog.Y - Wag.Y)*585.0*10000.0 - Wag.m*9.8;

YForce = YForce - Math.Fmin(240000*(Bog.Vy + Wag.Vy),150000);
XForce = XForce - Math.Fmin(240000*(Bog.Vx + Wag.Vx),150000);

XAccel = XForce/Wag.m;
YAccel = YForce/Wag.m;

Wag.Vx = Wag.Vx*0.999 + ft*XAccel;
Wag.Vy = Wag.Vy*0.997 + ft*YAccel;

Wag.X = Wag.X + ft*Wag.Vx;
Wag.Y = Wag.Y + ft*Wag.Vy;

if (Wag.Y > 0.2)
Wag.Y = 0.2;
if (Wag.Y < -0.2)
Wag.Y = -0.2;

if (Bog.Y > 0.2)
Bog.Y = 0.2;
if (Bog.Y < -0.2)
Bog.Y = -0.2;
}
}

???

Чтобы вагон не качался, увеличь производительность игры — я не делал лагкомпенсацию. Не в лагах дело - он качается на абсолютно пустой карте.

Vasi4
01.11.2010, 11:37
А вот это всё тогда нафига?

public void PhyTick(float dt)
{
int i = 0;
float ft = dt / 40.0;

for (i = 0; i < 10;++i)
{
if (!Wh or !Bog or !Wag)
return;

float XForce = (Wh.X - Bog.X)*1000.0*10000.0 + (Bog.X - Wag.X)*100.0*10000.0;
float YForce = (Wh.Y - Bog.Y)*585.0*10000.0 - (Bog.Y - Wag.Y)*585.0*10000.0 - Bog.m*9.8;
float XAccel = XForce/Bog.m;
float YAccel = YForce/Bog.m;

Wh.X = Wh.X*0.98 + Wh.Vx*ft;
Wh.Y = Wh.Y*0.98 + Wh.Vy*ft;

if (Math.Rand(0,1000) < Math.Fabs(loco.GetVelocity()))
{
Wh.Vx = Math.Rand(-1.0,1.0)*loco.GetVelocity()*0.03;
Wh.Vy = Math.Rand(-1.0,1.0)*loco.GetVelocity()*0.06;
}

Bog.Vx = Bog.Vx*0.998 + ft*XAccel;
Bog.Vy = Bog.Vy*0.997 + ft*YAccel;

Bog.X = Bog.X + ft*Bog.Vx;
Bog.Y = Bog.Y + ft*Bog.Vy;

XForce = (Bog.X - Wag.X)*100.0*10000.0;
YForce = (Bog.Y - Wag.Y)*585.0*10000.0 - Wag.m*9.8;

YForce = YForce - Math.Fmin(240000*(Bog.Vy + Wag.Vy),150000);
XForce = XForce - Math.Fmin(240000*(Bog.Vx + Wag.Vx),150000);

XAccel = XForce/Wag.m;
YAccel = YForce/Wag.m;

Wag.Vx = Wag.Vx*0.999 + ft*XAccel;
Wag.Vy = Wag.Vy*0.997 + ft*YAccel;

Wag.X = Wag.X + ft*Wag.Vx;
Wag.Y = Wag.Y + ft*Wag.Vy;

if (Wag.Y > 0.2)
Wag.Y = 0.2;
if (Wag.Y < -0.2)
Wag.Y = -0.2;

if (Bog.Y > 0.2)
Bog.Y = 0.2;
if (Bog.Y < -0.2)
Bog.Y = -0.2;
}
}

???
Это отвечает за качание кабины при разном ускорении, скорости и т.д., сейчас нет времени обяснять, спросите у Комбайна.


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

Don_Capone
01.11.2010, 11:43
С падением фпс увеличивается амплитуда колебаний при движении, "стоячие" колебания у меня мало изменялись в зависимости от фпс.

lexxcorp
01.11.2010, 23:48
Как сделать комбинированный контроллер? Тоесть нужно сделать так, что бы можно было тормозить эдт и давать позиции на ход контроллером. Во встроенном "MN Bombardier" стоит такой но тормазит он пневматикой , а надо эдт.

lexxcorp
13.11.2010, 00:19
Ну помогите простеньким скриптом для контроллера.

dvigatel
21.11.2010, 13:05
Почему кабина не хочет качатся?
Конфиг


kuid <kuid:507926:19>
category-class "AA"
category-region "RU"
category-era "1970s;1980s;1990s;2000s"
username "Кабина Д1"
kind "interior"
author "dvigatel"
contact-website "lattrains/"
description "Интерьер кабины Д1"
license "Free for non commercial use. Cвободная, кроме коммерческого использования."
trainz-build 2.5
cameradefault 3

cameralist
{
camera0 -1.318,0.251,-0.237,-6.108,0.043
camera1 1.245,0.374,-0.237,-5.973,0.029
}

mesh-table
{
default
{
mesh "body.im"
auto-create 1
anim "anim.kin"
}
}

kuid-table
{
}

lubinda
21.11.2010, 23:51
dvigatel, я в этом сильно не разбираюсь, но помоему нехватает тэга качания кабины.

Kompozitor
22.11.2010, 04:40
Товарищи разработчики, не переусердствуйте с качанием, а то на больших амплитудах становится заметным, что игрок не качается вместе с кабиной. Самый оптимальный вариант - как в кабине ЧС8.

Razor
22.11.2010, 08:45
А с чего она у тебя будет качаться то??? Во первых таким методом если сделать, то качаться она будет абсолютно постоЯяно и во время стоянки и в движении с одинаковой скоростью, во 2х, ты не правильно сделал анимацию, в 3х, это делается скриптом...

ZIMA
22.11.2010, 10:24
dvigatel, А как у тебя иерархия в кабине настроена? Ты кости для каждой точки делал?

Razor
22.11.2010, 11:50
кости там не нужны. дамми нужно делать на все что там есть

dvigatel
22.11.2010, 13:37
Razor, прописал твой скрипт от чмэз, не качается

Razor
22.11.2010, 13:58
Ты в модели все дамми ставил? и для крутилок и для прочего??? и правильно слинковал? все назвал как в моем скрипте? не думаю. полюбому с анимацией и линковкой у тя косяки. или в названии файлов...

dvigatel
22.11.2010, 17:59
Всмысле, для каждого объекта нужен каждый дамми? У меня все 124 объекта слинкированы к дамми b.r.cab, который анимирован и слинкирован к b.r.base. А в скрипте я что то не увидел названия объектов. Да и после прописки скрипта 2тэ116, который использует твоя кабина чмэз для качки, в игре отнимаются все панели управления, но лок дееспособный

ZIMA
22.11.2010, 21:58
dvigatel, Вот теперь к каждой точке нужно делать свой родительский дамми. Затем все э. то залинковать. Напрмер если у тебя есть точка a.trainbrake, то переименовываешь ее в a.r.trainbrake/a.trainbrake и линкуешь к родительскому дамми, который нужно назвать b.r.trainbrake Ивот по такому принципу создай даммисы к каждой точке. Далее все эти даммисы линкуй к b.r.cab которой нужно задать анимацию. И в самом конце b.r.cab линкуй к b.r.base

Rokky
23.11.2010, 06:57
dvigatel, Вот теперь к каждой точке нужно делать свой родительский дамми. Затем все э. то залинковать. Напрмер если у тебя есть точка a.trainbrake, то переименовываешь ее в a.r.trainbrake/a.trainbrake и линкуешь к родительскому дамми, который нужно назвать b.r.trainbrake Ивот по такому принципу создай даммисы к каждой точке. Далее все эти даммисы линкуй к b.r.cab которой нужно задать анимацию. И в самом конце b.r.cab линкуй к b.r.base

Нет, не совсем верно. К каждой точке дамми создавать не нужно. К примеру имеем анимированый дами с названием b.r.anim. Вот к нему и линкуем ВСЕ детали и ВСЕ точки и в названии поинтов ставим a.r.anim/a.trainbrake. Повторюсь, не надо создавать дамми для каждой точки.

dvigatel
23.11.2010, 08:20
Спасибо. Но у меня нету ни одной точки привязки в сцене, просто около сотни разных объектов. Нужно полюбом точку привязки ставить?

Razor
23.11.2010, 12:08
Rokky все правильно сказал. а свои сотни обьектов сделацй просто в 1 кузов и все. будет 1 обьект....

dvigatel
23.11.2010, 12:38
Попробую. А дамми можно называть как хочешь, тоесть b.r.aaaaaaaaaaaaaaaa или же что то дописывать, типа сull?

WearsPrada
23.11.2010, 13:36
Называй как угодно, только чтобы название дамми начиналось с b.r.

dvigatel
18.12.2010, 06:48
Какой лучше ставить источник освещения V-ray для запекания текстур в кабине? У меня 4 источника всего.

Диспетчер
24.01.2011, 22:02
mesh-table
{
default
{
mesh "body/interior.im"
auto-create 1
light 1
}

attachments
{
mesh "body/attach_mesh.im"
auto-create 1

effects
{
bs_0
{
kind "attachment"
att "a.peopleSit1"
default-mesh <kuid:487016:60005>
}

bs_1
{
kind "attachment"
att "a.peopleSit2"
default-mesh <kuid:185479:60005>
}

bs_2
{
kind "attachment"
att "a.peopleSit3"
default-mesh <kuid:487016:60002>
}
}
}

switch0
{
mesh "body/lever.im"
auto-create 1
kind "lever"
att "a.lever_radio"
limits 0,1
angles 0,0.7705
notches 0,1
notchheight 2,2
radius 0.2
att-parent "default"
tooltip-text "radio"
}
}
Нужна помощь.....Я к модели салона прикрутил точку привязки для радио,но левер радио в упор не хочет отображаться в игре......А как ни странно все модели людей на месте....

-- Добавлено пользователем в 01:02 -- Предыдущее сообщение было в 00:43 --

Вопрос решён....всем спасибо!

TRam_
24.01.2011, 22:05
Вопрос решён....всем спасибо!для остальных -

switch0
{
...
att-parent "attachments"
...
}

Диспетчер
24.01.2011, 23:12
Володь подскажи есть ли какая-то возможность убрать блокировку кнопки радио при автопилоте? А то вместе с блокировкой и звук пропадает....

TRam_
24.01.2011, 23:19
Можно скриптом кабины попробовать, но не уверен что это сработает.

Диспетчер
24.01.2011, 23:21
Да и ещё вопрос-возможно ли сделать ночной вид салона по типу.....

}

default-night
{
mesh "pass_body/night/Night.IM"
night-mesh-base "default"
}
}

TRam_
24.01.2011, 23:31
Точто не знаю, но попробовать вообще можно.

Диспетчер
24.01.2011, 23:41
Буду ставить экперемент над ночным видом...Вот бы ещё на места свитильников повесить световые короны или хотя бы светящуюся текстуру....Да и всё мечтаю уже несколько лет о скрипте салона ,который бы управлял свечением,т.е при стоянке вагона свет яркий,в движении вагона тусклый....это можно реализовать?

TRam_
24.01.2011, 23:45
есть такая замечательная функция для кабины - SetCabLightIntensity (float intensity) . Задаёт освещённость текстур кабины, которые не самосветящиеся. Будет алгоритм - будет и освещённость.

Диспетчер
24.01.2011, 23:47
есть такая замечательная функция для кабины - SetCabLightIntensity (float intensity) . Задаёт освещённость текстур кабины, которые не самосветящиеся. Будет алгоритм - будет и освещённость.
А в таком случае яркостью источников света в вагоне управлять можно?

TRam_
25.01.2011, 00:00
Да, в последних версиях трса можно управлять яркостью любой текстуры...

Rokky
25.01.2011, 05:12
есть такая замечательная функция для кабины - SetCabLightIntensity (float intensity) . Задаёт освещённость текстур кабины, которые не самосветящиеся. Будет алгоритм - будет и освещённость.

Володя, а разве не эта функция освещает текстуры - SetTextureSelfIllumination(textureName,(light/255.0)*r,(light/255.0)*g,(light/255.0)*b)?. SetCabLightIntensity (float intensity) задаёт освещённость всей кабины, но не какой-то конкретной текстуры. А то может я что пропустил и освещение текстур без самосветящегося меша стане в разы проще?

TRam_
25.01.2011, 09:36
задаёт освещённость всей кабины, но не какой-то конкретной текстуры.всё верно.

dvigatel
25.01.2011, 21:40
Это вы о скрипте или о конфиге?

Диспетчер
26.01.2011, 09:03
Хочу подтвердить тот факт,что default-night
для салонов не работает к большому сожалению,то есть остались варианты скрипт или что-то другое....А ночная модель салона необходима- с ней больше реализма в ночных поездках в качестве пассажира....

Rokky
26.01.2011, 09:07
Это вы о скрипте или о конфиге?

о скрипте.

Frantsuz
27.01.2011, 11:44
Как сместить ось вращения рычагов от середины к краю?

TRam_
27.01.2011, 13:00
изменением модели рычага и изменением координат точки привязки этого рычага.

Nemo
03.02.2011, 19:23
а разве не эта функция освещает текстуры - SetTextureSelfIllumination(textureName,(light/255.0)*r,(light/255.0)*g,(light/255.0)*b)?. SetCabLightIntensity (float intensity) задаёт освещённость всей кабины
Ха, то есть если у меня есть машинное и кабина, и я хочу, чтобы свет в них включался по отдельности, о SetCabLightIntensity можно забыть и пользоваться только SetTextureSelfIllumination ?

TRam_
04.02.2011, 11:10
Просто SetTextureSelfIllumination действует на одну текстуру (только) поэтому слишком долго включать самосвечение для всего подряд. Лучше для "всех" устанавливать SetCabLightIntensity, а для светильников и лампочек - SetTextureSelfIllumination

Nemo
04.02.2011, 12:15
Лучше для "всех" устанавливать SetCabLightIntensity
Да, и тогда свет включится не только в кабине, но и в машинном, причём цвет свечения задать нельзя. А в большинстве кабин этот цвет жёлтый. Поэтому для меня больше подойдёт SetTextureSelfIllumination()...

Rokky
04.02.2011, 15:54
Да, и тогда свет включится не только в кабине, но и в машинном, причём цвет свечения задать нельзя. А в большинстве кабин этот цвет жёлтый. Поэтому для меня больше подойдёт SetTextureSelfIllumination()...

Nemo, это спорный вопрос. При использовании SetTextureSelfIllumination надо подгрузить и осветить кучу текстур, не вызовет ли это небольшого подвисания игры... Если речь идёт о модели кабины и машинного расположенных в модели локомотива то это вполне подойдёт, но если речь идёт о модели кабины и машинного в качестве interior, то стоит подумать, см. выше.

Nemo
04.02.2011, 16:20
если речь идёт о модели кабины и машинного в качестве interior
Именно. Для меня важно качественное ночное освещение, по-другому этого никак не получить. Вряд ли что-то сильно зависнет, но если даже на доли секунды и, то ехать (ну или стоять) с нормальным распределением и цветом света будем неизмеримо дольше, чем смотреть эти ничего не значащие микросекунды в висящий ТРС.

-- Добавлено пользователем в 17:20 -- Предыдущее сообщение было в 17:18 --


осветить кучу текстур
Тем более их всего штук 10 (правда больших), не очень много для обработки. Не 100 ведь.
Надо, в общем, экспериментировать :)

Rokky
04.02.2011, 16:40
Надо, в общем, экспериментировать :)

Просьба, сообщи, пожалуйста, о результате. Интересно...

Razor
04.02.2011, 18:01
Pivot надо переместить в место, где будет ось вращения.... если не ошибаюсь...

S.T.A.L.K.E.R.
05.02.2011, 06:37
Помогите пожалуйста. Как сделать, чтобы:
1) Включать прожектор тумблером
2) Поднимать пантографы тумблерами
3) Включать БФ тумблерами
4) Окно при отодвигании не возвращалось назад

ТЭП70
05.02.2011, 10:32
S.T.A.L.K.E.R., ты ошибся темой, тебе сюда (https://forum.trainzup.net/showthread.php?t=763)

Razor
05.02.2011, 11:14
Почему же не туда? он спрашивает как в максе и в конфиге сделать это я так думаю....

S.T.A.L.K.E.R.
05.02.2011, 13:29
как раз про конфиг. Там опции окна. Оно по идее должно отодвигаться вниз и внизу оставаться, но как только его вниз опускаешь, оно само поднимается обратно. как сделать чтоб оно оставалось открытым?

Диспетчер
03.03.2011, 12:12
Да, в последних версиях трса можно управлять яркостью любой текстуры...
Кто в курсе сих дел,подскажите что нужно дописать в обновлённый интерьер(скрипт) плацкарта от Alexx,что бы яркость свечения ламп и текстур салона временами менялась на тусклый(т.е в движении тусклый,на стоянках яркиий или ещё как вариант -случайное переключение)?Или что проще-как изменить яркость свечения,какие параметры нужно редактировать в скрипте? Уж больно ярко салон ночью светится....

dvigatel
03.03.2011, 12:32
Почему все интериоры имеют синеватое освещение текстур? Можно ли убрать его? А то блин сделал белый лист, а он голубит.

Sokol
04.04.2011, 08:17
Я понимаю что пишу не по теме но все же: У ковонибуть не завалялась нормальная кабина для МЕТРОВОГОНА 81-717 и его модификации?
Если у ковонибуть есть то не могли бы поделица ей? Заранее спасибо!!!
Кто нибуть создает модели на заказ???

WearsPrada
04.04.2011, 11:48
Кто нибуть создает модели на заказ???
нет, только творческий полет души.... :-)


ковонибуть


поделица


Я понимаю, что пишу не по теме, но все же:

Ай яй я... следите за своей "писаниной" ребята.

dvigatel
04.04.2011, 14:40
Кто нибуть создает модели на заказ???
Это могут делать только евреи или американцы.
Дублирую уже втретий раз: почему все интериоры имеют синеватое освещение, вне зависимости от времени суток?

Sokol
04.04.2011, 16:52
У ковонибуть не завалялась нормальная кабина для МЕТРОВОГОНА 81-717 и его модификации?
Если у ковонибуть есть то не могли бы поделица ей? Заранее спасибо!!!

-- Добавлено пользователем в 15:52 -- Предыдущее сообщение было в 15:49 --

Как переделать кабины MSTS для Trainz ???
Подскажите если не сложно!

За игнорирование замечаний, и за нарушения правил форума в целом, банька на 2 дня :-)

Slavik_ЭП1м
04.04.2011, 22:28
Sokol, запомни,кабина МСТС плоская картинка а В ТРС-объемная модель и конвертнуть ее для ТРС физически невозможно!

dvigatel
05.04.2011, 06:47
Можно. Если попросить у автора исходник этой кабины. Для МСТС делается кабина в максе, текстурится, потом делается снимок и все, кабина готова.

amd103
05.04.2011, 10:35
Модели на рендер делаются хайполи — полигонов там столько, что в игру не засунешь. А иногда в МСТС кабину с фоток делают.

Andreyuha
06.07.2013, 21:01
Да, иногда (нет, даже в основном!) делают с фоток.
Я сам игнраю в МСТС, и, например, кабина ВЛ10/ВЛ60/ВЛ80 (всех модиф. (Т, С, К)) сделана с рендера, а кабина ВЛ80Р с фотографий!

ЭПСржд
11.12.2014, 20:05
ребята помогите с конфигом контроллера
contr
{
kind "lever"
mesh "km.im"
auto-create 1
att "a.km01"
att-parent "default"
limits -135,135
angles -1,1
notches
radius 0.01
mousespeed 1
test-collisions 1
tooltip-text " "
как я прочел выше. То что б была фиксация позиций у контроллера нужно добавить в его конфиг строку notches. Проблема в том что у контроллера 40 поз в одну сторону и 40 в обратную + 0 положение и 2а положения:Рекуперация и тяга. Как видно из конфига. Как видно из строчки limits. Значения от -135 до 135 . Что б рассчитать значения для notches. Мне нужно 270 делить на 83? Или 82? Не беря в расчет положение 0? И Что делать дальше?

kemal
11.12.2014, 20:10
у контроллера 40 поз в одну сторону и 40 в обратную + 0 положение и 2а положения:Рекуперация и тяга.
Это всё в одном контроллере?

А в нотчес первое число должно быть 0, крайнее - 1. Остальные равномерно распределены между ними.

---------- Сообщение добавлено в 21:10 ---------- Предыдущее сообщение размещено в 21:10 ----------


у контроллера 40 поз в одну сторону и 40 в обратную + 0 положение и 2а положения:Рекуперация и тяга.
Это всё в одном контроллере?

А в нотчес первое число должно быть 0, крайнее - 1. Остальные равномерно распределены между ними.

ЭПСржд
11.12.2014, 20:13
Это всё в одном контроллере?

А в нотчес первое число должно быть 0, крайнее - 1. Остальные равномерно распределены между ними.

---------- Сообщение добавлено в 21:10 ---------- Предыдущее сообщение размещено в 21:10 ----------


у контроллера 40 поз в одну сторону и 40 в обратную + 0 положение и 2а положения:Рекуперация и тяга.
Это всё в одном контроллере?

А в нотчес первое число должно быть 0, крайнее - 1. Остальные равномерно распределены между ними.

Ну да как я понял. Каба от яги для ЭСок. Хотел просто срукожопить позиции. После слова крайняя у тебя тирэ или минус?

kemal
11.12.2014, 20:17
срукожопить
многое объясняет...

Тире. Числа пишутся по возрастающей от 0 до 1.

ЭПСржд
11.12.2014, 20:22
срукожопить
многое объясняет...

Тире. Числа пишутся по возрастающей от 0 до 1.

А если серьезно. Что необходимо сделать? Обьяснишь? Или ничего из этого не выйдет

kemal
11.12.2014, 20:32
У меня подозрение, что ты не правильно понимаешь где какие позиции.

А по существу вопроса всё просто. Для каждой позиции - одно число в нотчес. Крайние 0 и 1, а остальные пропорционально между ними. То есть, если нам нужно 11 позиций, которые распределены равномерно, то нужно писать
notches 0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1

ЭПСржд
11.12.2014, 20:38
а как я могу еще понять? Есть контроллер который словно мышка у компа .Не щелкает и не фиксируется. И есть 40 позиций которые отображаются при тяге. А может у рекуперации их меньше? Вот этого я не знаю. По этому и обратился сюда за помощью

kemal
11.12.2014, 20:44
Не щелкает и не фиксируется

И есть 40 позиций которые отображаются при тяге
Что, как бэ, намекает, что "позиции" на "ручке" и позиции в тяговой, мягко говоря, не одно и тоже.

ЭПСржд
11.12.2014, 20:51
Вот. Уже пришли хоть к чему-то. И как мне все-таки сделать? Просто разбить на 3и позиции? Если да то как это осуществить? ато он будет их разбивать снизу ,0 и верх

kemal
11.12.2014, 20:56
Ну, я думаю, всем этим должен скрипт заведовать.
Я просто не могу понять, что ты хочешь сделать. Если кабина уже есть.

ЭПСржд
11.12.2014, 21:00
да хотя б как у эп 717 3и фиксированных позиции

Slavik_ЭП1м
11.12.2014, 21:18
у эп 717 3и фиксированных позиции
На ЭП1 позиций нет. Там плавное (бесконтактное) регулирование напряжения засчёт тиристорных преобразователей (ВИПов). Позиции на ВЛ80 и на остальных электровозах, где групповые переключатели (ступенчатое регулирование).

ЭПСржд
11.12.2014, 21:20
у эп 717 3и фиксированных позиции
На ЭП1 позиций нет. Там плавное (бесконтактное) регулирование напряжения засчёт тиристорных преобразователей (ВИПов). Позиции на ВЛ80 и на остальных электровозах, где групповые переключатели (ступенчатое регулирование).

Это я уже Осознал.Но у рукоятки есть же фиксации от перехода с 0 на тягу и с 0 на рекуперацию. Все-равно 3и позиции)) На 717 ведь вроде так сделано.

Slavik_ЭП1м
11.12.2014, 21:27
3и позиции))
Положения, а не позиции. И там не три их, там "ноль", 2 положения "П" (на тягу и рекуперацию). На этих положениях происходит сбор схемы тяги или сбор схемы электрического торможения. А так же еще два регулируемых положения для регулировки заданного тормозного или тягового тока.

ЭПСржд
11.12.2014, 21:33
Суть в том что вместе их 5ять. Под пять и делать нужно? Я так понял?

poputchik
12.12.2014, 05:12
Позиции на ВЛ80 и на остальных электровозах, где групповые переключатели (ступенчатое регулирование).
На ВЛ80р тоже бесконтактное.

ЭПСржд
12.03.2015, 19:09
Ищу грамотного разработчика для создания кабины 2ТЭ25А. От меня всяческая помощь

tramwayz
13.03.2015, 00:17
Я тебе кошелёк вебмани, а ты туда сначала 30 тыщ аванса, а после того, как смоделю кабину, ещё 40. Дело непростое, но важное.

dvigatel
13.03.2015, 08:45
Когда кабину моделят, все размеры панелей, приборов и проч берут по замерамам рулетки?

ЭПСржд
13.03.2015, 16:55
Я тебе кошелёк вебмани, а ты туда сначала 30 тыщ аванса, а после того, как смоделю кабину, ещё 40. Дело непростое, но важное.

30 тыщ чего? Не многовато ли?

Рома
13.03.2015, 17:44
А чего ты хотел? Кабину сделать - не бутер скушать. Работа не на один месяц

ЭПСржд
13.03.2015, 17:50
А чего ты хотел? Кабину сделать - не бутер скушать. Работа не на один месяц
Какой бутер? Вы о чём вообще? Не 70к бляха стоит такая работа. Это зарплата за 2 месяца у меня! Геолога ептть!!!

OlegKhim
13.03.2015, 18:19
грамотного
Дорого

Ищу разработчика для создания кабины 2ТЭ25А.
Будет подешевле...

От меня всяческая помощь
всяческая не нужно. Тебе написали сколько это стоит. Не подходит, ищи в дизайнерских конторах, может дешевле найдешь.

Не 70к бляха стоит такая работа.
Никогда такого не было, что бы заказчик устанавливал цену. Никогда и нигде! Он может торговаться и только, авось исполнитель снизит.

ЭПСржд
13.03.2015, 18:21
то-есть Хотите сказать что эта работа стоит 70к? Я правильно понял?

OlegKhim
13.03.2015, 18:24
Это зарплата за 2 месяца у меня! Геолога ептть!!!
На курорты ездил хоть раз? Развлекался?
Так все верно, за развлечение нужно платить.

---------- Сообщение добавлено в 18:24 ---------- Предыдущее сообщение размещено в 18:21 ----------


то-есть Хотите сказать что эта работа стоит 70к? Я правильно понял?
Я ничего не хочу сказать, я говорю, что есть продавец и покупатель. Заказчик и исполнитель услуг. Так вот исполнитель устанавливает цену за свою работу, нравится она кому то или нет, но это его право. Тебе не подходит - пошел в другой магазин искать дешевле и возмущения здесь не уместны.

ЭПСржд
13.03.2015, 18:27
Всё понятно с вами. Пошёл искать.

poputchik
14.03.2015, 16:46
А вот другой немного подход. С вас текстурные фото кабины лока в свободном доступе, размеры, если они понадобятся разрабу. Может кто-то и возьмется, не все еще на кикстартер перешли.

xrds2009
14.03.2015, 16:53
то-есть Хотите сказать что эта работа стоит 70к? Я правильно понял?

Слушай их больше, это они любят! Пост*****ся над такими, глупые! Если 70к это просто отсев, что бы не приставали!

tramwayz
14.03.2015, 16:53
Как правило, предоставляемый материал всё равно нуждается в том, чтобы его просмотреть, понять, самому оценить и потратить на это кучу времени.

OlegKhim
14.03.2015, 17:49
Слушай их больше, это они любят!
Э какой проницательный и знающий, так и скажи, сделаю дешевле....

глупые!
Барахла не держим.
А вообще то сдается мне, кто то скоро нас покинет и будет обсуждать свой любимый RW на страницах любимых форумов...
:ps:Как то тихо здесь было без вас, наверное весна, обострение и все такое.

А вот другой немного подход. С вас текстурные фото кабины лока в свободном доступе, размеры, если они понадобятся разрабу. Может кто-то и возьмется, не все еще на кикстартер перешли.
Это другой вопрос, с первым разобрались и услышали. Вполне допускаю такую возможность, что кто то возьмется, но пока желающих не наблюдаем.

WearsPrada
15.03.2015, 00:12
Смысл заказывать, если навряд ли сможешь оплатить. А делать за копейки - себя не уважать )) Хотел бы я посмотреть на моделлера, который за 3 тыщи деревяных возьмется. лал

ЭПСржд
15.03.2015, 17:03
Смысл заказывать, если навряд ли сможешь оплатить. А делать за копейки - себя не уважать )) Хотел бы я посмотреть на моделлера, который за 3 тыщи деревяных возьмется. лал

Сделал доп как платный. И по 3и тыщи наберется Людей 10 кто возьмет доп. И всем будет хорошо. Я так думаю....

Рома
15.03.2015, 17:37
научись моделить и сделай себе сам. И платить никому не придется. Я так и поступил, когда надоело ждать пока кто-то другой чс2 сделает

ЭПСржд
17.03.2015, 15:24
ЭЭЭЭЭЭЭЭхххххх Ром, если б всё так просто. Так и хотел сделать поначалу. Даж 3д Макс скачал. Посмотрел несколько видосов по нему. Попробовал и понял...... Тут я полный ламер. Тёмный лес, да и только. Я геолог, а не компьютерщик)))

Дмитрий ВСЖД
02.07.2015, 13:54
Для разработчиков немного информации о ВЛ80Р, работающих в 3 секции. Пульт машиниста и панель с сигнальными лампами на них выглядят вот так (фотографировал в машине ВЛ80Р-1673(половинка)/1594)
http://savepic.su/5742322.jpg
http://savepic.su/5731058.jpg

Yosheek
22.07.2016, 11:05
В чем разница между ними?

trainbrake_lever -- self-lapping train brake control
trainbrakelap_lever -- non self-lapping train brake control
И как более явно "словить" положение перекрыши?

TRam_
22.07.2016, 12:27
trainbrake_lever - без перекрыши
trainbrakelap_lever - с перекрышей

lap - перекрыша
self-lapping - автоматическая установка давления в зависимости от положения крана (на иностранном ПС и некоторых отечественных паровозах и узкоколейных тепловозах)


И как более явно "словить" положение перекрыши?
клавиша z, но она не ловится никак.

TimoDm
02.08.2016, 15:09
Подскажите, пожалуйста, поменял значение контроллера двух параметров в конфиге angles и notches и в результате не набираются позиции. Они как-то взаимодействуют со скриптом?

TRam_
02.08.2016, 16:45
со скриптом взаимодействуют значения limits (причём там должно быть от меньшего к большему), а notches определяют позиции фиксации (от 0 до 1), но не работают без notchheight (это "всплывающие линии", 0 - выкл, 1 - высокие, 2 - узкие) которых должно быть столько же сколько позиций фиксации.

angles - углы поворота в крайних положениях (можно и от меньшего к большему, и наоборот)

TimoDm
02.08.2016, 17:25
Ещё вопроос: какой параметр в скрипте отвечает за освещённость в кабине? Просто день, ночь, а в кабине яркое солнышко!))

TRam_
02.08.2016, 17:42
никакой не отвечает. Нужно писать функцию, которая бы рассчитывала освещённость и применяла её через SetLightIntencity (вроде так эта функция называется). Либо проверять, почему отвалился скрипт (потому что в них как правило это уже есть)

TimoDm
02.08.2016, 18:15
Видимо что-то не так в скрипте!((

Arkadens
16.12.2017, 00:23
Народ, здравствуйте!
Прошу помощи, самом никак не получается разобраться.

Есть локомотив.
Хочу прилепить к нему кабину из имеющихся. Прилепил, по она получилась ниже рельс.
Разобрался как посмотреть точки a.cabfront и a.cabback.
Даже нашёл как изменить координаты. Но....
Как дальше-то действовать?
Там что-то надо с hex-редактором делать. Я так и не понял.
Помогите, пожалуйста!

TRam_
16.12.2017, 00:56
Поставь редактор Эрендира - http://forum.trainzdevteam.ru/posts/t4--1-0-1-IM-editor - и отредактируй в нём координаты точек в меши.

B.U.G.O.R.
17.12.2017, 13:00
Чо надо сделать, чтобы у меня выполнялся какой-то кусок программы только при проследовании по стрелке?

Рома
17.12.2017, 15:29
B.U.G.O.R., получаешь сообщения от "стрелки" о том, что ты на неё "заехал" и выполняешь поставленные условия



void MsgHandler(Message msg)
{
if ((msg.major == "Junction") and (msg.minor == "Enter"))
{
То что должно выполняться;
}
}

В Init скрипта надо прописать
AddHandler(me,"Junction","","MsgHandler");

B.U.G.O.R.
17.12.2017, 17:24
А вот public void всякие разные, аттач там, инит, апдейт, в чем разница? Я так понял, что в апдейт это то, что постоянно обновляется и запрашивается, т.е. если там будет строка:

int speed_real = Math.Abs(loco.GetVelocity() * 3.6);
то это значит, что он постоянно будет запрашивать реальную скорость и прописывать ее в переменную speed_real?

А остальные что делают?

Рома
17.12.2017, 17:32
Я так понял, что в апдейт это то, что постоянно обновляется и запрашивается
Именно.

аттач там, инит
Эти вызываются только в момент создания "объекта" кабины, т.е. при смене направления (по alt+C) или когда ты перемещаешься в вагон с этой кабиной. В них инициализируются все функции и органы управления и задается положение органов управления (если есть cabindata, то органы остаются в том положении, в котором ты их оставил, если её нет, они ресетаются). Еще есть UserSetControl вызывается только тогда, когда ты переключаешь какой-либо контрол мышкой(кран или пакетник или кнопку), и UserPressKey, когда нажимаешь что-либо на клаве

B.U.G.O.R.
17.12.2017, 17:46
Теперь такой момент: что значит восклицательный знак перед переменной?

TRam_
17.12.2017, 17:49
Обозначает "не".

Рома
17.12.2017, 17:52
B.U.G.O.R.,
1) A не равно B - A != B.
2) булевая (логическая) переменная имеет ложное значение GVon == false - !GVon. Т.е. чтоб не писать if(blabla == false) я обычно пишу if(!blabla)
3)присваемое значение противоположно текущему. Т.е. blabla = !blabla меняет blabla с true на false и наоборот.

B.U.G.O.R.
17.12.2017, 17:53
Т.е. если у меня есть где-то переменная EPK_Norm, которая может быть либо true либо false, и если я пишу

if (EPK_Norm) {бла-бла-бла}, то у меня бла-бла-бла будет выполняться, если EPK_Norm=true, а если у меня if (!EPK_Norm) {бла-бла-бла}, то бла-бла-бла будет выполняться только в случае, если EPK_Norm=false, я правильно понял суть?

Рома
17.12.2017, 17:54
B.U.G.O.R., да

B.U.G.O.R.
17.12.2017, 19:22
А каким образом у нас устроена индикация на КЛУБе?

Как я понял:
Есть анимация, которая поочередно выдвигает "вперед себя" соответствующую индикацию скорости, а сам меш находится за КЛУБом. Далее воспроизводится эта анимация со скоростью пропорционально равной скорости движения, а когда скорость останавливается, то и кадр замирает.
Т.е. типа

SetMeshAnimationFrame("bil_spd_cur",KLUB.speedframe*1.00817);

speedframe это реальная скорость, которая вот через эту формулу выводит вперед себя кадр с соответствующим кадром, где есть текстура нужного показания скорости. Я правильно понял?

Рома
17.12.2017, 19:27
B.U.G.O.R., да, все так. И мешь с ограничением так же работает

TRam_
17.12.2017, 19:29
B.U.G.O.R., неправильно. Вычисляется кадр, в котором на видимой части отображается нужная скорость. То есть принцип аналогичен показанию счётчика воды или старого счётчика электричества. Только перематывание мгновенное, по тому же принципу что "присвоить переменной такое-то значение".

А так анимация "стоит".

Рома
17.12.2017, 19:34
Ну в смысле, что скрипт воспроизводит тот же кадр по номеру что и текущее значение скорости. Т. Е. Если скорость 0 то и мешь зеленого индикатора вся "задвинута" в мешь БИЛ-в. А анимация построена по принципу выдвигания зелёных кружочков друг за другом из Бил-в. Скорость увеличилась, кружочек выполз, уменьшилась - заполз

B.U.G.O.R.
17.12.2017, 19:55
Ну да, да, я так и подумал.

---------- Сообщение добавлено в 20:55 ---------- Предыдущее сообщение размещено в 20:51 ----------

А стрелочки на манометрах да вольтметрах работают по такому же принципу?

TRam_
17.12.2017, 20:07
Принцип тот же, но там не анимация, а контролы, прописанные в конфиге кабины.

---------- Сообщение добавлено в 21:07 ---------- Предыдущее сообщение размещено в 21:06 ----------

И угол поврота относительно заданного значения пересчитывает уже сама игра. (Из диапазона указанного в теге limits в диапазон углов поворота из тега angels)

B.U.G.O.R.
17.12.2017, 20:42
Если в конфиге в меш-тейбл сделать вот такую штуку:


bplocomain_needle
{
mesh "str_rmn_black.im"
auto-create 1
kind "needle"
att "a.tm_pm"
limits 0,1600
angles 0,4.773
}

То это значит, что у меня эта стрелка будет показывать давление в ГР безо всяких скриптов, я правильно понимаю?

---------- Сообщение добавлено в 21:42 ---------- Предыдущее сообщение размещено в 21:38 ----------

Да, это я уже понял, что так и работает. Другой момент, чтобы мне написать кусок кода, который бы считал показатель для иного манометра, который отвечает за давление ЦУ, что мне надо сделать? Мне надо создать отдельный

thread void cep_upr()

И внутри него писать этот кусок кода. Пральна? Я просто не могу въехать в структуру скриптов.

TRam_
17.12.2017, 20:48
что у меня эта стрелка будет показывать давление в ГР безо всяких скриптов, я правильно понимаюНеправильно. Открываешь в папке sсripts файл defaultlocomotivecabin.gs и там вполне явно написано


if (main_reservoir_needle)
main_reservoir_needle.SetValue(GetPressureParam("main-reservoir-pressure"));
а перед этим -

main_reservoir_needle = GetNamedControl("bplocomain_needle");

B.U.G.O.R.
17.12.2017, 20:49
Открываешь в папке sсripts файл defaultlocomotivecabin.gs и там вполне явно написано
Нет, ну я имею в виду, что самому городить в скриптах этого не надо.

TRam_
17.12.2017, 20:52
И внутри него писать этот кусок кода.Если речь о кабине, то лучше в Update() . Хотя можно и как ты сказал... Но учти - чем меньше потоков, тем меньше будет лагать (т.к. между процессорами эти потоки не перераспределяются, они работают на самом деле в том же самом потоке что и вся остальная игра)

---------- Сообщение добавлено в 21:52 ---------- Предыдущее сообщение размещено в 21:51 ----------


ну я имею в виду, что самому городить в скриптах этого не надоЕсли наследуешь кабину от DefaultLocomotiveCabin - не надо. Если от Сabin - надо.

B.U.G.O.R.
17.12.2017, 20:54
А если я напишу это просто посреди кода, то оно работать не будет?

TRam_
17.12.2017, 20:58
Если вне функций - ошибку выдаст.

B.U.G.O.R.
17.12.2017, 21:13
А с какой целью нужны sleep? И я могу в SetValue() в скобках просто указать имя переменной?

TRam_
17.12.2017, 21:21
Расскажи, в какой именно момент хочешь поворачивать стрелку в соответствии со значением переменной и когда собираешься изменять собственно это значение переменной

B.U.G.O.R.
17.12.2017, 21:32
if (GetPressureParam("main-reservoir-pressure") > 500)
{
cep_upr == 500;
GetNamedControl("cepi_upr").SetValue(cep_upr);
}
else
{
cep_upr == GetPressureParam("main-reservoir-pressure");
GetNamedControl("cepi_upr").SetValue(cep_upr);
}

Вот такой код. Т.е. стрелка давления цепей управления должна показвыать значение равное значению ГР, если оно меньше 5 очков, а если больше, то стрелка должна застыть на положении 5 очков.

---------- Сообщение добавлено в 22:27 ---------- Предыдущее сообщение размещено в 22:24 ----------

Если я ставлю в SetVelue просто цифру (500, к примеру), то стрелка у меня показывает. Даже внутри этого условия, срабатывает, что давление больше 500. Но стоит вписать переменную, стрелка манометра остается в нуле.

---------- Сообщение добавлено в 22:30 ---------- Предыдущее сообщение размещено в 22:27 ----------

Все, разобрался, не надо было два равно ставить. Отсюда возникает след. вопрос: в чем отличие между одним равно и двумя?

---------- Сообщение добавлено в 22:32 ---------- Предыдущее сообщение размещено в 22:30 ----------

И сразу вопрос в догонку: у меня сейчас давление в ГР еле-еле ументшается. Я так понимаю, что для правильного расчета всего расхода воздуха из ГР надо тоже писать какой-то код?

TRam_
17.12.2017, 21:39
в чем отличие между одним равно и двумяодно равно - присвоить переменной значение. Два равно - сравнить значения переменных, и если они равны то true, иначе - false

Рома
18.12.2017, 08:02
И сразу вопрос в догонку: у меня сейчас давление в ГР еле-еле ументшается
ГР по-дефолту герметичен. Чтоб имитировать утечки ставят "отрицательный" компрессор, который качает в минус. SetCompressorEfficiency(-0.01) Число в скобках надо подбирать эксперементально. Ищи, в скрипте должно быть нечто похожее. Если утечек из ГР вообще нет, то значит где-то стоит SetCompressorEfficiency(0). Так же можно управлять герметичностью ТМ SetBrakePipeEfficiency()



А с какой целью нужны sleep?
Sleep используется в потоках для создания пауз. например:

while(EPK_svist)
{
World.PlaySound(asset, "sound/epk_loop.wav", 1, 2, 5, me, a.epk);
Sleep(0.5);
}
означает, что пока EPK_svist == true звук epk_loop будет воспроизводиться по кругу. Но, чтобы не было наложения, скрипт воспроизводит файл, "спит" 0,5 секунд и опять его воспроизводит

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


if(condition1)
{
SetMeshVisible("mesh1",true,0.1);
Sleep(1);
World.PlaySound(asset, "sound/sound1.wav", 1, 2, 5, me, a.attpoint);
}
Sleep'ы не работают в Update, UserSetControl и т.д. Т.е. только в своих собственных void'ах

TRam_
18.12.2017, 08:52
только в своих собственных void'ахтолько в собственных thread void'ах

kemal
18.12.2017, 11:39
Я понимаю, что тут всё упрощённо, но не до такой же степени!
Что такое void'ы?
Sleep'ы можно использовать только в потоках. То есть в функциях, отмеченных как thread. И в других функциях, если они вызываются из потоков.

B.U.G.O.R.
24.12.2017, 21:47
Каким образом можно остановить цикл while()?

Volaner
24.12.2017, 23:05
Каким образом можно остановить цикл while()?

Помимо основного условия, проверяешь ещё и флаг, булеан переменную.

Если, например, основное условие у тебя a > 0



while(a > 0 and mark == true){
// код
}


Когда надо будет тормознуть цикл, просто присваиваешь переменной mark значение false. Это если тебе надо именно остановить цикл, что бы не произошла следующая итерация, если нужно выйти из цикла, то:




int i = 0;
int x = 0;

while(i < 10){

i++;

if(i == 5) break; // выходим из цикла на 5-ой итерации, если i равно 5

x++;

}



x у нас в итоге будет иметь значение - 9

B.U.G.O.R.
24.12.2017, 23:28
Вот про break меня и интересовала тема, спасибо.

Dimonzid2525
25.12.2017, 13:28
Ребят есть качественный исходник эп2к-032 вместе с родной кабиной и машинным отделением звуки в комплекте нужно написать скрипт на управление, точки привязки, кто сможет взяться передам комплектом

Selic
22.03.2020, 13:39
Есть ли у кого исходник 130 и 215 крана, поделитесь :honor:

Volaner
22.03.2020, 14:15
Есть ли у кого исходник 130 и 215 крана, поделитесь :honor:

Вот тут глянь
https://trainzup.com/?cat=40&paged=1

Selic
23.03.2020, 05:55
Вот тут глянь
https://trainzup.com/?cat=40&paged=1

Смотрел нету

---------- Сообщение добавлено 23.03.2020 в 09:55 ---------- Предыдущее сообщение размещено 22.03.2020 в 19:01 ----------

А есть видео по созданию кабин для trainz? И как делать освещение в кабине

Рома
23.03.2020, 14:29
А есть видео по созданию кабин для trainz?
Чувак, ты понимаешь что создание кабины - это очень долгий и сложный процесс, который не описать одним видео? Если у тебя отсутствуют базовае навыки моделирования, а они, судя по всему, отсутствуют, иначе бы ты не искал то, что можно смоделить за 5 минут, то мне кажется о кабине думать рановато. Потренируйся на домиках. Освой основы игрового моделирования и экспорта в трейнз, разберись с материалами. А то получится, как у одного товарища. В одной кружке полигонов в три раза больше, чем во всей кабине

http://images.vfl.ru/ii/1584966125/14c34bfa/29975572_m.jpg (http://vfl.ru/fotos/14c34bfa29975572.html)

http://images.vfl.ru/ii/1584966125/780e4ca4/29975573_m.jpg (http://vfl.ru/fotos/780e4ca429975573.html)

http://images.vfl.ru/ii/1584966125/1e4f1f4f/29975574_m.jpg (http://vfl.ru/fotos/1e4f1f4f29975574.html)

Elektropoezd_Er
23.03.2020, 14:45
Рома, скорее кружку он сам даже не делал - а скачал откуда попадья

Selic
23.03.2020, 17:27
А есть видео по созданию кабин для trainz?
Чувак, ты понимаешь что создание кабины - это очень долгий и сложный процесс, который не описать одним видео? Если у тебя отсутствуют базовае навыки моделирования, а они, судя по всему, отсутствуют, иначе бы ты не искал то, что можно смоделить за 5 минут, то мне кажется о кабине думать рановато. Потренируйся на домиках. Освой основы игрового моделирования и экспорта в трейнз, разберись с материалами. А то получится, как у одного товарища. В одной кружке полигонов в три раза больше, чем во всей кабине

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

Рома
23.03.2020, 18:37
Где ты здесь разглядел шутку? Ты задрал вопрос: "есть ли видео о том, как создавать кабины?" А до этого искал кран 215 и 130. Модели, которые делаются за 10 минут с двумя перекурами. Вот о чем можно подумать? Явно не о том, что ты шаришь в этом деле. Если бы ты, как утверждаешь, сделал уже тонну моделей, то замоделить какие-то два крана для тебя не составило бы трудов. Ты бы на моделинг потратил меньше времени, чем на написание сообщения тут на форуме. Тоже самое касается скриптов. Это не то, про что можно рассказать в видео. Либо ты знаком с программированием и просто знакомишься с синтаксисом и особенностями трсного языка, либо учишься программировать с 0. Нельзя, блин, посмотреть видос и заскриптовать кабину. Это тебе не чай заварить



New