javierfl escribió:Repo escribió:Precisamente estoy trabajando para ver la posibilidad de implementar una reacción en el movimiento de la cabina al pasar sobre los desvíos.
Existe un control llamado "JointCount" que creo podría ser útil.
Por otro lado les contaré que anoche estuve experimentando con el control "Curvature" y según veo solo es cosa de tiempo (un par de semanas) para que pueda darle inclinación al tren durante su paso por las curvas, algo así como un movimiento pendular o quizá para "simular" la presencia de peraltes. La diferencia entre ambas cosas está en si la velocidad influye o no en el efecto de inclinación. Mientras en los peraltes la inclinación debiera darse de modo permanente (aun en el tren detenido en una curva) en la pendulación el efecto solo debiera aparecer al tomar curvas por sobre una cierta velocidad.
Trabajando sobre sonidos de bogies editando blueprints y no scripts, pero creo que los control son los mismos, usé tres variables:
Joincount: cuenta las juntas que se hayan marcado en la vía o desvíos que sean a la hora de crearlos. La reacción del vehículo depende de la vía.
Curvature: tiene en cuenta el radio de curva. Es interesante recalcar que RW usa un valor que es el del 1 dividido por el radio. Por ejemplo, un radio de 300 metros es 1/300= 0.0033, uno de 250 metros 0.004 y así.
AbsoluteSpeed: La velocidad del vehículo en millas por hora.
Sobre los nombres reservados para control, aunque posiblemente ya la conozcas, viene muy bien esta página: http://www.gtraxsims.com/tut/reservedwords.htm Creo que no están todos los que son (por ejemplo no se cita Curvature), pero si que son todos los que están...
Saludos:
Javier.-
Bien Javier, gracias. Lo del control JoinCount no lo acabo de entender, no logro sacarle el valor durante la simulacion, quizá sea porque es un contador, como bien dices, y no una variable que acusa la presencia de cada junta en la vía, no se, creo que tendré que investigar mejor.
Respecto al control curvature este no se llama con la funcion X = Call(*:GetControlvalue, "Curvature") sino que del siguiente modo:
X = Call(*:GetCurvature) y realmente no se que porque se hace esta diferencia cuando en todo el resto de los controles el valor se consigue con "GetControlValue". Algo parecido sucede con AbsoluteSpeed, no hay manera de conseguir por script su valor... Menos mal que tenemos 2 opciones que consiguen exactamente lo mismo:
1.- X = Call(*:GetControlvalue, "SpeedometerKPH") (siempre que este control este declarado en el engine blueprint para usarlo en el velocímetro, si no esta declarado no sirve)
2.- X = Call(*:GetSpeed) algo parecido que con curvature, entrega la velocidad en millas.
Un alcance más respecto al control curvature, como bien dices Javier, el valor del control corresponde a 1 dividido por el radio de la curva, pero yo además he descubierto que si el valor es negativo significa que la curva dobla hacia la izquiera y si el valor es positivo lo hace hacia la derecha, siempre en el sentido de la marcha del tren. Esto último esta probado y requete probado.
Saludos.