defaultproperties
{
// Эффект над головой
Begin Object Class=SpriteEmitter Name=SpriteEmitterHead
FadeOutStartTime=2.46
FadeOut=true
MaxParticles=1
StartLocationOffset=(Z=45)
SpinParticles=true
SpinCCWorCW=(Y=1)
UseSizeScale=true
UseRegularSizeScale=false
UniformSize=true
StartSizeRange=(X=(Min=50,Max=50),Y=(Min=50,Max=50),Z=(Min=50,Max=50))
InitialParticlesPerSecond=10
AutomaticInitialSpawning=true
LifetimeRange=(Min=1.0,Max=1.5)
Name="SpriteEmitterHead"
End Object
Emitters(1)=SpriteEmitterHead
bRotEmitter=true
bUnlit=false
bDirectional=true
bLightChanged=true
bNoDelete=false
}
я помню что брал Location.z "nickname" или "HeadBone" но не помню как я это делал(Если я правильно понял, то вот:
Код:native final function bool AttachToBone( actor Attachment, name BoneName, optional int Type ); native final function bool AttachToBoneWithIndex( actor Attachment, int BoneIndex, optional int Type);
я помню что брал Location.z "nickname" или "HeadBone" но не помню как я это делал(
native final function coords GetBoneCoordsWithBoneIndex( int BoneIndex );
native final function coords GetBoneCoords( name BoneName );
Значит была не кость так как голова двигается емитор думаю тоже будет двигаться(Код:native final function coords GetBoneCoordsWithBoneIndex( int BoneIndex ); native final function coords GetBoneCoords( name BoneName );
В арке мобы высокие есмитор садится ниже ника , CollisionHeight тоже дедал но она местами ниже мешей это хорошо видно в арке на мобах@BIT_hack, Pawn.CollisionHeight? В чем суть хотелки, что на вьіходе должно бьіть и чем плох статичньій отступ? )
Я попробовал там походу глобальная координата GetBoneCoords().Origin.z она не подходит или я не правильно использую ее@BIT_hack, ну так а если через GetBoneCoords чекать HeadBone, и ставить офсет по зет исходя из єтой координатьі?
Еще пока есть у кого спросить)) как развернуть спрайт "эмиттер" верх ногами - я тоже это делал но блин удалил исходники и теперь никак не могу вспомнить, просто по стандарту он верх ногами приходится заранее текстуру переворачивать в фотошопе(@BIT_hack, ну так а если через GetBoneCoords чекать HeadBone, и ставить офсет по зет исходя из єтой координатьі?
Ну во первых Текст отрисовывается специальным/отдельным устройством/Device (Функция DrawText(device,data) либо Device.DrawText(Data), точно не помню ) и соответственно координаты там Из 3D в 2D , при помощи функции RenderWorldToCamera( по моему эта функция) , которая берет стандартное положение Актора( т.е Bip01 и его XYZ ), и по-моему прибавляет константное значение, с плавающей точкой NameOffset( от Pawn ) и переводит это в координаты для камеры/экрана, и к примеру таким образом текст при отдалении(как и иконка) не меняются никак, а вот моделька при отдалении, становиться менее прорисованной и заметной.Когда-то я устанавливал Emitor над ником или над костью головы — сейчас уже не помню точно. Но сейчас я не могу вспомнить, как это сделать, а в интернете не могу найти нужную информацию, хотя раньше она была доступна. Если кто-то знает, как это сделать, пожалуйста, подскажите!
Сейчас креплю по фиксированным координатам StartLocationOffset=(Z=45)
Посмотреть вложение 79795Код:defaultproperties { // Эффект над головой Begin Object Class=SpriteEmitter Name=SpriteEmitterHead FadeOutStartTime=2.46 FadeOut=true MaxParticles=1 StartLocationOffset=(Z=45) SpinParticles=true SpinCCWorCW=(Y=1) UseSizeScale=true UseRegularSizeScale=false UniformSize=true StartSizeRange=(X=(Min=50,Max=50),Y=(Min=50,Max=50),Z=(Min=50,Max=50)) InitialParticlesPerSecond=10 AutomaticInitialSpawning=true LifetimeRange=(Min=1.0,Max=1.5) Name="SpriteEmitterHead" End Object Emitters(1)=SpriteEmitterHead bRotEmitter=true bUnlit=false bDirectional=true bLightChanged=true bNoDelete=false }
Вот не помню, может бьіть.Я попробовал там походу глобальная координата GetBoneCoords().Origin.z она не подходит или я не правильно использую ее
Спрайт перевернуть? По-моему, со статиками такое конает, а спрайтьі я чет не помню чтобьі развернуть можно бьіло, они ж 2д-шньіе и так.Еще пока есть у кого спросить)) как развернуть спрайт "эмиттер" верх ногами - я тоже это делал но блин удалил исходники и теперь никак не могу вспомнить, просто по стандарту он верх ногами приходится заранее текстуру переворачивать в фотошопе(
По-моему, я использовал камеру, но код был уже готовый. Сейчас даже не знаю, где его найти, но помню, что еще Playerinfo. Level типа этого дергал(Ну во первых Текст отрисовывается специальным/отдельным устройством/Device (Функция DrawText(device,data) либо Device.DrawText(Data), точно не помню ) и соответственно координаты там Из 3D в 2D , при помощи функции RenderWorldToCamera( по моему эта функция) , которая берет стандартное положение Актора( т.е Bip01 и его XYZ ), и по-моему прибавляет константное значение, с плавающей точкой NameOffset( от Pawn ) и переводит это в координаты для камеры/экрана, и к примеру таким образом текст при отдалении(как и иконка) не меняются никак, а вот моделька при отдалении, становиться менее прорисованной и заметной.
Так что для имени нету специальной кости, а используется стандартная, просто со смешением( его можно настроить) и оно отрисовывается в 2D , а вот моделька и эффекты в том числе отрисовываются в 3D .
Повторюсь, Текст отрисовывается в 2D, а эффекты и прочее в 3D координатах, даже получив от Актора матрицу координат от функции RenderWorldToCamera для установки эффекта они будут бесполезны, поскольку используются для текста/иконок . Эффект крепиться по трем координатам XYZ, можно брать стандартные коорданаты хоть, от костей Bip01, либо Bip01_head и добавлять, к этому значение смешение Имени по Z, в любом случае эффекты не будут, "вести себя" как текст/ник или иконки. Стандартное значение Имени можно взять из переменной NameOffset Класса Pawn, я не знаю каким образом вы крепите эффект, но если до этого вы использовали Level, то скорее всего вы перебирали всех Акторов(Npc), и используя переменную nickname, находили нужного вам NPC и "костыльным образом", присваивали к его координатам + смешению(NameOffset) ваш эффект (Все гораздо проще если бы вы крепили эффект, используя тело класса NPC,т.е к примеру LineageNpc.alive_castle_aden_controltower_jewel PostBeginPlay() { tempClass = Class<Emitter>(DynamicLoadObject("Lineageeffect.aden_controltower_master_a",Class'Class')); ViewEmitter = Spawn(tempClass,self,'None',Location,Rotation); ViewEmitter.SetBase(self,vect(0.00,0.00,NameOffset+someYourOffsetValue)); }, к примеру так,но могу ошибаться. ).По-моему, я использовал камеру, но код был уже готовый. Сейчас даже не знаю, где его найти, но помню, что еще Playerinfo. Level типа этого дергал(
Да похоже я таким способом и креплю эмиттер как вы описали Интерфейс хф + исходникиПовторюсь, Текст отрисовывается в 2D, а эффекты и прочее в 3D координатах, даже получив от Актора матрицу координат от функции RenderWorldToCamera для установки эффекта они будут бесполезны, поскольку используются для текста/иконок . Эффект крепиться по трем координатам XYZ, можно брать стандартные коорданаты хоть, от костей Bip01, либо Bip01_head и добавлять, к этому значение смешение Имени по Z, в любом случае эффекты не будут, "вести себя" как текст/ник или иконки. Стандартное значение Имени можно взять из переменной NameOffset Класса Pawn, я не знаю каким образом вы крепите эффект, но если до этого вы использовали Level, то скорее всего вы перебирали всех Акторов(Npc), и используя переменную nickname, находили нужного вам NPC и "костыльным образом", присваивали к его координатам + смешению(NameOffset) ваш эффект (Все гораздо проще если бы вы крепили эффект, используя тело класса NPC,т.е к примеру LineageNpc.alive_castle_aden_controltower_jewel PostBeginPlay() { tempClass = Class<Emitter>(DynamicLoadObject("Lineageeffect.aden_controltower_master_a",Class'Class')); ViewEmitter = Spawn(tempClass,self,'None',Location,Rotation); ViewEmitter.SetBase(self,vect(0.00,0.00,NameOffset+someYourOffsetValue)); }, к примеру так,но могу ошибаться. ).
Ну так в чем проблема брать значение переменной NameOffset от self.Pawn, и использовать его для расположения эффекта над ником ?Да похоже я таким способом и креплю эмиттер как вы описали Интерфейс хф + исходники
Я пробовал но похоже я делаю что то не так у меня по центру моба выводится эфект, если даже добавляю координаты от персонажа или коллизии Z ничего не происходит так как там хранится число flout и оно там маленькоеНу так в чем проблема брать значение переменной NameOffset от Pawn, и использовать его для расположения эффекта над ником ?
MyEmitter.Emitters[2].StartLocationOffset.Z = Pawn(TargetActor).NameOffset;
так вы чушь делайтеЯ пробовал но похоже я делаю что то не так у меня по центру моба выводится эфект, если даже добавляю координаты от персонажа или коллизии Z ничего не происходит так как там хранится число flout и оно там маленькое
C++:MyEmitter.Emitters[2].StartLocationOffset.Z = Pawn(TargetActor).NameOffset;
так вы чушь делайте
, код весь покажите как у вас есть .
foreach MyActor.CollidingActors(class'Actor', TargetActor, 1, info.Loc) {
MyEmitter = TargetActor.Spawn(class'BIT_TargetEffect', TargetActor, , info.Loc, rot(0, 0, 0));
MyEmitter.SetBase(TargetActor);
MyEmitter.Emitters[0].Disabled = true;
MyEmitter.Emitters[0].Texture = TargetTexture;
MyEmitter.Emitters[0].AutoDestroy = true;
MyEmitter.Emitters[0].StartLocationOffset.Z = TargetActor.CollisionRadius * 10;
MyEmitter.Emitters[1].Texture = LogoTexture;
MyEmitter.Emitters[1].StartLocationOffset.Z = TargetActor.CollisionHeight+20;
MyEmitter.Emitters[2].Texture =Texture(DynamicLoadObject("LineageEffectsTextures.Particles3.fx_m_t4030", class'Texture'));
MyEmitter.Emitters[2].StartLocationOffset.Z = Pawn(TargetActor).NameOffset;
return;
}
// Эффект вокруг NPC
Begin Object Class=SpriteEmitter Name=SpriteEmitterAround
MaxParticles=1
StartSizeRange=(X=(Min=20,Max=20),Y=(Min=20,Max=20),Z=(Min=20,Max=20))
// StartLocationOffset=(Z=45)
SpinParticles=true
SpinCCWorCW=(Y=1)
LifetimeRange=(Min=1.0,Max=1.5)
Name="SpriteEmitterAround"
End Object
Emitters(2)=SpriteEmitterAround
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?