findchild copy entityalpha fehler
Übersicht

![]() |
biggicekeyBetreff: findchild copy entityalpha fehler |
![]() Antworten mit Zitat ![]() |
---|---|---|
hallo,
habe folgendes problem: ich will 2 entitys zum "blinken" bekommen. das besondere an den entitys, es sind per findchild aus einem mit loadanimmesh geladenen 3d modell definierte entitys. dabei ist das 2. entity auch noch lediglich eine copy des 1. entitys. problem ist nun das entityalpha lediglich auf die copy richtig wirkt. das orginal ist entweder ganz da oder ganz weg. hier mal ein screen der ausgangssituation. ganz links das orginal per findchild gefundene entity. in der mitte eine erste copy. und rechts eine zweite um zu testen ob der effekt auf alle copys wirkt. hier zu sehen ist das resultat: entityalpha wirkt nur auf die letzte copy richtig. beide anderen verschwinden einfach ganz. oder sind kurz ganz da. leider hab ichs immer nur geschafft einen screenshot zu machen wenn sie weg sind. also sie blinken auch, doch sind sie ganz da oder ganz weg. hier der code dazu: Code: [AUSKLAPPEN] Graphics3D 800,600,16,2 SetBuffer BackBuffer() pl=LoadAnimMesh("testknight.b3d") player=FindChild(pl,"Plane03") camera = CreateCamera(player) RotateEntity camera,15,0,0 PositionEntity camera,0,40,-100 CameraZoom camera,3 EntityParent camera,0 ScaleEntity player ,.225,.255,.255 TurnEntity player,0,90,0 MoveEntity player,35,0,35 gegner=CopyEntity(player) EntityColor gegner,255,0,0 MoveEntity gegner,-15,0,-15 player2=CopyEntity(player) EntityColor player2,0,255,0 MoveEntity player2,-30,0,-30 light = CreateLight() frame=0 While Not KeyHit(1) frame=frame+10 If KeyDown(57) hit=1 Else hit=0 EndIf If hit=1 EntityAlpha player,(Cos(frame)+1)/2 EntityAlpha gegner,(Cos(frame)+1)/2 EntityAlpha player2,(Cos(frame)+1)/2 Else EntityAlpha player,1 EntityAlpha gegner,1 EntityAlpha player2,1 EndIf UpdateWorld() RenderWorld Flip Wend End kann sich jemand dieses phänomen erklären? kann das ganze umgehen, indem statt eine copy zu machen das entity 2 mal lade, allerdings frisst mir das zu viel code da noch eine menge extractanimsequences dazu kommen. gruß |
||
#45 www.icekeyunlimited.de www.starcrusade.de
Gewinner BCC#17 !!! mit dotkiller Nothing more to register - you've cleaned us out![/size] |
BIG BUG |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Klingt sehr merkwürdig. Bitte bei sowas auch immer gleich die Media-Files mitposten.
Habe mir trotzdem mal die Mühe gemacht, das mit einem eigenen Modell nachzustellen, hat einwandfrei funktioniert. Vielleicht hat es mit einer Materialeinstellung in der B3D zu tun? |
||
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final) |
![]() |
biggicekey |
![]() Antworten mit Zitat ![]() |
---|---|---|
http://www.file-upload.net/dow...t.rar.html
hatte ich schon extra hochgeladen und im chat auch den link geposted aber hier wohl vergessen. hier auf jeden fall mit media dateien. vllt liegts ja auch an meinem rechner. |
||
#45 www.icekeyunlimited.de www.starcrusade.de
Gewinner BCC#17 !!! mit dotkiller Nothing more to register - you've cleaned us out![/size] |
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
copyentity mit animierten meshes ist immer schon ein krampf gewesen. hat bei mir auch auf meinem alten rechner stets zu grafikfehlern geführt. interessant bei deinem problem ist, dass der ausgangsplayer offenbar, während er transparent ist, an der position der letzten kopie gezeichnet wird. es sieht ganz so aus, dass der ausgangsplayer aus irgendeinem jux heraus die bones der letzten kopie nutzt... der fehler tritt nicht auf, wenn man copymesh verwendet - dann ist allerdings auch die animation futsch. wahrscheinlich müsstest du die alle einzeln laden oder mal mark nerven. | ||
MrKeks.net |
![]() |
biggicekey |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mr.Keks hat Folgendes geschrieben: interessant bei deinem problem ist, dass der ausgangsplayer offenbar, während er transparent ist, an der position der letzten kopie gezeichnet wird. es sieht ganz so aus, dass der ausgangsplayer aus irgendeinem jux heraus die bones der letzten kopie nutzt...
woran siehst du das der ausgangsplayer an anderer position ist? bei mir ist der ausgangsplayer einfach weg. nur die letzte copy ist da. achja und die animationen funktionieren übrigens einwandfrei auch bei den copys. alles mist. @bigbug und mit deinem mesh funktioniert alles? und mit meinem? |
||
#45 www.icekeyunlimited.de www.starcrusade.de
Gewinner BCC#17 !!! mit dotkiller Nothing more to register - you've cleaned us out![/size] |
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
daran, dass der grüne player2 etwas grauweißgrün wird, wenn man den ersten player transparent macht ^^ | ||
MrKeks.net |
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
hmm es scheint als würden die Meshs tatsächlich die Bones des grünen nehmen, wie Mr.Keks beschrieben hat.
ändert man Code: [AUSKLAPPEN] If hit=1
EntityAlpha player,(Cos(frame)+1)/2 EntityAlpha gegner,(Cos(frame)+1)/2 EntityAlpha player2,(Cos(frame)+1)/2 Else EntityAlpha player,1 EntityAlpha gegner,1 EntityAlpha player2,1 EndIf in Code: [AUSKLAPPEN] If hit=1
EntityAlpha player,(Cos(frame)+1)/2 ; EntityAlpha gegner,(Cos(frame)+1)/2 ; EntityAlpha player2,(Cos(frame)+1)/2 Else EntityAlpha player,1 EntityAlpha gegner,1 EntityAlpha player2,1 EndIf sieht man das das Mesh "player" die position von "player2" einnimmt und "gegner" auch die postition von "player2" einnimmt. Halt genau das was Mr.Keks gesagt hat. Du musst also die meshes mehrmals laden. Code: [AUSKLAPPEN] Graphics3D 800,600,16,2 SetBuffer BackBuffer() camera = CreateCamera(player) RotateEntity camera,15,0,0 PositionEntity camera,0,40,-100 CameraZoom camera,3 ; EntityParent camera,0 pl=LoadAnimMesh("testknight.b3d") player=FindChild(pl,"Plane03") ScaleEntity player ,.225,.255,.255 TurnEntity player,0,90,0 MoveEntity player,35,0,35 pl=LoadAnimMesh("testknight.b3d") gegner=FindChild(pl,"Plane03") ScaleEntity gegner ,.225,.255,.255 EntityColor gegner,255,0,0 TurnEntity gegner,0,90,0 MoveEntity gegner,20,0,20 pl=LoadAnimMesh("testknight.b3d") player2=FindChild(pl,"Plane03") ScaleEntity player2 ,.225,.255,.255 EntityColor player2,0,255,0 TurnEntity player2,0,90,0 MoveEntity player2,5,0,5 light = CreateLight() frame=0 While Not KeyHit(1) frame=frame + 10 If KeyDown(57) hit=1 Else hit=0 EndIf If hit=1 EntityAlpha player,(Cos(frame)+1)/2 EntityAlpha gegner,(Cos(frame)+1)/2 EntityAlpha player2,(Cos(frame)+1)/2 Else EntityAlpha player,1 EntityAlpha gegner,1 EntityAlpha player2,1 EndIf UpdateWorld() RenderWorld Flip Wend End |
||
Warbseite |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group