Problem mit ScaleMesh und Animation

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

count-doku

Betreff: Problem mit ScaleMesh und Animation

BeitragSa, Apr 17, 2010 18:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

ich wollte grade ein animiertes Model in FireBalls einbauen.
Als mir folgendes auffiel:
-Wenn ich beim Spieler erzeuge, skaliere ich ihn mit ScaleMesh.
-Beim animieren fällt dann aber auf, dass die Animationen nicht mitskaliert wurden.
Wie kann ich das ändern?

Code:
BlitzBasic: [AUSKLAPPEN]
Graphics3D 640, 480, 0, 2 
SetBuffer BackBuffer()
main_cam = CreateCamera()
CameraViewport main_cam, 0, 0, 640, 480
CameraClsColor main_cam, 63, 63, 127

main_light = CreateLight(2)
LightRange main_light, 3000
PositionEntity main_light,0,100,-100

anim_obj = LoadAnimMesh("Alien1\Alien1.b3d")
ScaleMesh anim_obj,0.5,0.5,0.5;Wenn auskommentiert, dann gehts.
ExtractAnimSeq anim_obj,0,40
ExtractAnimSeq anim_obj,41,60
anim_tex=LoadTexture("Alien1\Alientex1.jpg")
EntityTexture anim_obj,anim_tex
PositionEntity main_cam, 0, 30, - 80
PointEntity main_cam, anim_obj
PositionEntity main_cam, 0, 50, - 80

Local anim_speed#
Repeat
If KeyDown(75) Then
anim_speed=anim_speed-0.5
ElseIf KeyDown(77) Then
anim_speed=anim_speed+0.5
End If

Animate anim_obj,1,anim_speed,1,1

If KeyDown(203) Then TurnEntity anim_obj, 0, 2, 0
If KeyDown(205) Then TurnEntity anim_obj, 0, - 2, 0
If KeyDown(200) Then TurnEntity anim_obj, 2, 0, 0
If KeyDown(208) Then TurnEntity anim_obj, - 2,0, 0
If KeyDown(201) Then MoveEntity main_cam,0,0,1
If KeyDown(209) Then MoveEntity main_cam,0,0,-1
UpdateWorld()
RenderWorld()
Text 0, 0, "Benutze Pfeiltasten"
Flip
Until KeyHit(1)
End


Zur Veranschaulichung noch ein Video:
https://www.blitzforum.de/upload/file.php?id=8373

mfg,
count-doku

Megamag

BeitragSa, Apr 17, 2010 19:21
Antworten mit Zitat
Benutzer-Profile anzeigen
ScaleEntity?
Mein DeviantArt Profil
Gewinner des BAC #136

count-doku

BeitragSa, Apr 17, 2010 19:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke, geht.
Allerdings hab ich jetzt das Problem, dass die Skalierung im kompletten Spiel dann etwas merkwürdig ist.
Es wird nicht nur der Player, sondern auch die Kamera kleiner skaliert.
BlitzBasic: [AUSKLAPPEN]
Player.TPlayer=New TPlayer;Neuen Spieler erstellen
Player\entity=LoadAnimMesh("Modells\Alien1\Alien1.b3d")
EntityTexture Player\entity,LoadTexture("Modells\Alien1\Alientex1.jpg")
ScaleEntity Player\entity,0.05,0.05,0.05
RotateMesh Player\entity,0,180,0
ExtractAnimSeq Player\entity,0,40
ExtractAnimSeq Player\entity,41,60
Player\campiv=CreatePivot(Player\entity);Camera pivot erstellen
Player\Cam=CreateCamera(Player\campiv);Camera erstellen
Player\shot_piv=CreatePivot();Pivot für die schüsse
PositionEntity Player\Cam,0,5,-10;Camera positionieren
PositionEntity Player\entity,Player_start[0],Player_start[1],Player_start[2];Spieler positionieren

Wie ändere ich das so ab, dass nur der Spieler skaliert wird?

mfg,
coun-doku

N0X

BeitragSa, Apr 17, 2010 21:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Probier mal die Camera nachdem sie erstellt wurde mit "ScaleEntity kamera,1.0,1.0,1.0,1" zu skalieren, hab's nicht getestet , könnte aber klappen.

Mfg,
N0X
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%

Megamag

BeitragSa, Apr 17, 2010 23:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Du hast als Kamera-Parent den Player definiert. Skalierst du den Player, so wird die Kamera mit skaliert und das Bild komisch verzerrt. Du musst also das Kommando von N0X nach dem Parent-Kommando setzen, um die Kamera unabhängig vom Player zu skalieren.
Mein DeviantArt Profil
Gewinner des BAC #136

count-doku

BeitragSo, Apr 18, 2010 10:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Geht jetzt.Danke Very Happy

mfg,
count-doku

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group