Страница 19 из 28«1217181920212728»
Форум - Russian Tournament » Сайт » RT Карты » AS-RT-MirrorsEdge (sml[thread]WIP)
AS-RT-MirrorsEdge
UnShame
Ясно, оставлю муверы.
Я нашел нестандартный мувер в UltimateMappingTools, там можно разное время для разных ключей ставить, два разных набора ключей одному муверу назначать, динамические тени и еще куча чего, я сейчас пытаюсь с ним сделать постоянный цикл машин, чтобы они сквозь друг друга не проходили постоянно.
До этого у меня был сэтап, где на каждом повороте каждая машина становилась bHidden true, а дублирующая машина становилась bHidden false и двигалась до следующего поворота.

Добавлено (26 Июля 15, 00:02)
---------------------------------------------
GP, кстати, можешь посмотреть как заставить ShadowProjector работать с мувером?
В UltimateMappingTools есть ShadowProjectorPlaceable, я его пытался к простому статикмешу привязать, он работает судя по логу, но тень не генерирует.
Сам пакадж с актором тут http://www.mediafire.com/downloa....ols.zip


http://rusut.ru/_fr/14/links.txt
https://www.mediafire.com/folder/1ww9zpl63q2pc/RT
http://rusut.ru/files/dump/filesDump.html
GP
Тень генерируетса 100% только от Mesh. Можно вытащить SM umodel-ом, в милкшейпе добавить одну кость куда попало и заимпортить как меш. Не учитывая колизии мувер нормально роботает и в dt_mesh, но в поле staticmesh надо что-то оставить, иначе движок его подчистит при старте карты.
Проэктор хорош тем что обновляет не только тень, но и направление и fov относительно источника света (там можно поставить чтоб источником считалса сам проэктор а можно жестко зафиксировать fov) Но проэктор тени все-равно будет проэктить тень даже когда меш сам в тени. В ленс-флерях я пыталса это исправить, но все что получилось так это отключение тени если межуду проэктором и "сонцем" что-то есть. Чтоб все роботало надо чтоб на карте это солнце было, а там целая статья нужна как его правильно поставить.
UnShame
У меня все проэкторы и так на свету только, я просто хочу их поменять на тот актор, чтобы онлайн работало

Добавлено (26 Июля 15, 01:55)
---------------------------------------------


http://rusut.ru/_fr/14/links.txt
https://www.mediafire.com/folder/1ww9zpl63q2pc/RT
http://rusut.ru/files/dump/filesDump.html
GP
Ну так у тебя ж муверы посути только декорацыя (машыны), там можно без коллизии. А для платформ можно будет и повозитса с коллизией для меша уже в редакторе, вплоть до того что приаттачить блокинг-волюм. Проэкторы вообще все локально обрабатываютса, так-что с сетью никаких проблем.
GP
Цитата UnShame ()
не работают онлайн

А локально роботают? Если да, то можеш попробовать поставить им bNoDelete = true.
UnShame
GP
смотря на то, что это подклас стандартного проэктора (а иначе и не получитса) то заставить его роботать по сети сложнее чем заставить мувер спавнить себе проэктор. Из-за этого сделать все фуекцыи симулейтед не поможет, так как их попросте некому вызывать...

Добавлено (26 Июля 15, 22:04)
---------------------------------------------
В минимальном функцыонале должно выглядеть так:
Сначала делаем клона робочего проэктора, только иницыализацыю делаем не при спавне, а в отдельной функцыи, чтоб успеть задать параметры:


Потом делаем клон мувера, который после спавна спавнит и настраивает себе проэктор, параметры уже в нем:

Код простенький и должен скомпилироватса прям в редакторе. Единственное что надо соблюсти при создании все в mylevel и соответствие родительским класам (смотри шапку класа). Еще напомню что lightdirection задаетса наоборот, тоесть сверху вниз это x=0 y=0 z=1
UnShame
холи щит работает онлайн what sorcery is this?
только что поменять чтобы бесконечную отдаленность источника света симулировать?

Добавлено (27 Июля 15, 11:47)
---------------------------------------------
Алсо, если сам мувер уходит из вида, проекция перестает рендерится. Это как-то пофиксить можно?

Добавлено (27 Июля 15, 15:59)
---------------------------------------------
А, и еще одно, можно ли тени цвет поменять?


http://rusut.ru/_fr/14/links.txt
https://www.mediafire.com/folder/1ww9zpl63q2pc/RT
http://rusut.ru/files/dump/filesDump.html
GP
он роботает как-раз офф-лайн)
Цитата UnShame ()
если сам мувер уходит из вида
- скорее всего просто актор проэктора уходит из вида вместе с мувером (проэктор в центре меша), чтоб заметить это близко надо ставить фов 180, а из далека может и видно (у стандартных тене кул дистанс 1200... вроде).
Цитата UnShame ()
бесконечную отдаленность источника света
ну light distance 100000 должно хватать. В любом случае минимальный FOV = 1 (0 почемуто с тенью глючит даже если увеличить ему размер чтоб покрывал весь меш ), для тени куба 100*100*100 это соответствует гдето... 5000, другими словами тень будет больше в два раза каждые 10000 юнитов. Неужели так заметно?

Цвет тени поменять можно trollface , заганяя в проэктор не текстуру тени напрямую а пропустив ее через модифер. Но трабл в том что 1 - текстура тени которая генерируетса имеет только черный цвет и альфа канал, колор модифером менять просто нечего; 2 - модиферы текстуру тени не кушают, в худшем случае вообще игра вылетит при попытке скормить.
UnShame
Цитата GP ()
- скорее всего просто актор проэктора уходит из вида вместе с мувером (проэктор в центре меша), чтоб заметить это близко надо ставить фов 180, а из далека может и видно (у стандартных тене кул дистанс 1200... вроде).
это как-то исправить можно?

http://rusut.ru/_fr/14/links.txt
https://www.mediafire.com/folder/1ww9zpl63q2pc/RT
http://rusut.ru/files/dump/filesDump.html
GP
Ну я в даном случае все еще думаю про муверы-машыны внизу: разве когда мувера уже не видно тень нужно видеть? А исправить я не знаю как...

Добавлено (27 Июля 15, 20:20)
---------------------------------------------
Может делать тень не проэктором, а как панель у самой дороги, которая едет вместе с машыной? Ну типа просто меш-плоскость с текстурой тени?

UnShame
А, не, я тени для платформ юзаю.
Там доходишь до определенного момента и триггерятся платформы, выходя из-под земли и до нужной высоты.
О машинах я даже не подумал, им тоже тени нужны.
Еще один вопрос: я так понимаю они апдейтятся каждый тик, можно ли это отключить когда мувер не в движении? Я помню в PlaceableShadowProjector было что-то такое.

Добавлено (28 Июля 15, 18:46)
---------------------------------------------
Доделал последний основной уровень


http://rusut.ru/_fr/14/links.txt
https://www.mediafire.com/folder/1ww9zpl63q2pc/RT
http://rusut.ru/files/dump/filesDump.html
GP
Апдейтятса он в таймере с той частотой котрую задаш
Цитата GP ()
var(ShadowProjector) float UpdateFrequency;
Если у тебя платформы не крутятса, то можна вообще ставить 0.00000001, так как один раз при старте оно все-равно обновятса. Обновляетса только "форма" тени, зависимо от поворота (или анимацыи) меша, а проэктор будет это нормально проэктить в движении даже если тень не обновляетса, замрет только форма. А отключить обновление проэктора, так тень вообще пропадет. Так какой результат нужен?
UnShame
GP
Ну если они исчезают моментально (в чем я сомневаюсь) то никак. А если спустя определенное время, то может помочь bStasis=true. Только так он перестанет двигатса, тоесть в стазис проэктор надо будет ставить только когда муверы стоят. Здесь все зависит от режыма (state), в котором роботает мувер. В этом стейте надо найти крайние функцыии, например в start opening и start closing дописать Proj.bStasis = false, ну а в end opening и end closing дописать Proj.bStasis = true, ну и переменную Proj вынести в глобал. Можно, конечно, сделать через ивенты, но там будет то-же самое + дополнительный гемор чтоб рантаймным проэкторам тег задать.

Добавлено (28 Июля 15, 22:25)
---------------------------------------------
180 yaoming Ты 359 не видел, которые можно выставить только редактируя актор камеры...

UnShame
У меня они только один раз передвигаются, так что я так понимаю

Код
//=============================================================================
// ShadingMover.
//=============================================================================
class ShadingMover extends Mover
   placeable;

var(ShadowProjector) vector LightDirection;   
var(ShadowProjector) int    LightDistance;   
var(ShadowProjector) int    MaxTraceDistance;   
var(ShadowProjector) int    CullDistance;   
var(ShadowProjector) bool   bGradient;   
var(ShadowProjector) float  UpdateFrequency;   
var(ShadowProjector) byte   ShadowDarkness;   
var LocalShadowProjector Proj;

function FinishedOpening()
{
Proj.bStasis = true;
super.FinishedOpening();
}

simulated event PostBeginPlay()   
{   
         
      Proj = Spawn(class'LocalShadowProjector', self);   
      if (Proj != none)   
      {   
        Proj.ShadowActor = self;   
        Proj.LightDirection = LightDirection;   
        Proj.LightDistance = LightDistance;   
        Proj.MaxTraceDistance = MaxTraceDistance;   
        Proj.CullDistance = CullDistance;   
        Proj.bGradient = bGradient;   
        Proj.UpdateFrequency = UpdateFrequency;   
        Proj.ShadowDarkness = ShadowDarkness;   
        Proj.InitProjector();   
      }      
      super.PostBeginPlay();   
}
  
Вроде работает

Добавлено (28 Июля 15, 22:49)
---------------------------------------------
Только как теперь это клиенту сообщить?

http://rusut.ru/_fr/14/links.txt
https://www.mediafire.com/folder/1ww9zpl63q2pc/RT
http://rusut.ru/files/dump/filesDump.html
GP
Ну да, только... странно что роботает ведь функцыя "вне" стейта. эти функцыи вне стейтов оказываетса. Там еще вместо start***** "DoOpen" и "DoClose"
UnShame
GP
как-то так... (добавить)

Код
var bool ProjStasis;

replication
{
    reliable if ( Role == ROLE_Authority )
     ProjStasis;
}

function FinishedOpening()    
{    
      ProjStasis = true;    
      Proj.bStasis = ProjStasis;
      super.FinishedOpening();    
}    

simulated event PostNetReceive()
{    
           Proj.bStasis = ProjStasis;
                   super.PostNetReceive();    
}
UnShame
Хм, не работает. 
Я в PostNetReceive() добавил лог, она похоже вообще не вызывается.
Код
//=============================================================================
// ShadingMover.
//=============================================================================
class ShadingMover extends Mover
    placeable;

var(ShadowProjector) vector LightDirection;  
var(ShadowProjector) int    LightDistance;  
var(ShadowProjector) int    MaxTraceDistance;  
var(ShadowProjector) int    CullDistance;  
var(ShadowProjector) bool   bGradient;  
var(ShadowProjector) float  UpdateFrequency;  
var(ShadowProjector) byte   ShadowDarkness;  
var LocalShadowProjector Proj;
var bool ProjStasis;  

replication  
{  
    reliable if ( Role == ROLE_Authority )  
      ProjStasis;  
}  

function FinishedOpening()     
{     
       ProjStasis = true;     
       Proj.bStasis = ProjStasis;  
       super.FinishedOpening();     
}     

simulated event PostNetReceive()  
{     
Log("bStasis=true");  
            Proj.bStasis = ProjStasis;  
                    super.PostNetReceive();     
}

simulated event PostBeginPlay()  
{  
       
     Proj = Spawn(class'LocalShadowProjector', self);  
     if (Proj != none)  
     {  
       Proj.ShadowActor = self;  
       Proj.LightDirection = LightDirection;  
       Proj.LightDistance = LightDistance;  
       Proj.MaxTraceDistance = MaxTraceDistance;  
       Proj.CullDistance = CullDistance;  
       Proj.bGradient = bGradient;  
       Proj.UpdateFrequency = UpdateFrequency;  
       Proj.ShadowDarkness = ShadowDarkness;  
       Proj.InitProjector();  
     }     
     super.PostBeginPlay();  
}

http://rusut.ru/_fr/14/links.txt
https://www.mediafire.com/folder/1ww9zpl63q2pc/RT
http://rusut.ru/files/dump/filesDump.html
Форум - Russian Tournament » Сайт » RT Карты » AS-RT-MirrorsEdge (sml[thread]WIP)
Страница 19 из 28«1217181920212728»
Поиск: