Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

04.04.2013, 09:14

Animiertes 3 D Mordell (mit maya ) inGame bringen ( GiantsEditor) Landwirtschaftsimulator 2013 ) , i3D , LUA

Hallo liebes Forum,

ích bin neu hier. Guten tag :-)

Habe mehrere Objekte in Maya gebaut und diese erfolgreich in eine Map des Landwirtschaft Simulators 2013 eingebaut.

Jetzt bin ich auf die Idee gekommen, so ein Objekt könnte ja auch animiert sein.

Also hab ich einen animierten Hasen in Maya erstellt . .. und nun fingen sie an meine Probleme.

Ich bekomm den Hasen in Game nicht zum hobbeln. :D

Also was macht man.?. man versucht sich zu informieren was dafür nötig ist.

Ergebnis : Man braucht ein LUA Script der dem Hasen sagt, dass er hobbeln soll.

So und nachdem ich von LUA Programmierung null plan habe dachte ich mir, suchst mal das WEB nach guten LUA Foren durch.

So bin ich auf euch gestossen. :D

Ich kenn mich mit Maya, Giants Editor und MS Access Prorgammierung aus ..das wars dann aber schon 8)



Der hobbelnde Hase soll via Spline über ein paar Felder hobbeln. D.h. die Animation soll bei Spielanfang gestartet und unendlich fortgeführt werden.

Hoffe Ihr könnt mich auf den richtigen Weg bringen. Bin für jeden Rat , Tip und natürlich auch Script dankbar.

Hier mal ein Beispiel ..wie ein Windrad animiert wird. Allerdings wird hier gleich in der I3D des 3 D Objekts die Animation ausgeführt.

Quellcode

1
2
3
4
5
6
7
8
9
10
<Scene> 
<TransformGroup name="Windrad" translation="-842.217 99.9494 -778.959" rotation="-180 -88.9616 180" clipDistance="300" nodeId="12878"> 
<TransformGroup name="WindradAnimation" translation="1.11376 15.6627 0" rotation="-180 -1.34443e-007 -178.973" nodeId="12879"> 
<Shape name="Werbewuerfel" rotation="1.22005e-012 0 7.64172e-012" clipDistance="250" nodeId="12880" materialIds="155, 264" shapeId="1" castsShadows="true" receiveShadows="true" nonRenderable="true"> 
<Shape name="WindradS" scale="0.01 0.01 0.01" nodeId="12881" materialIds="117, 339, 51" shapeId="2"/> 
</Shape> 
</TransformGroup> 
<Shape name="Gestell" static="true" clipDistance="250" nodeId="12882" materialIds="257, 279, 396, 396, 169, 396, 26, 253, 36, 117" shapeId="3"/> 
</TransformGroup> 
</Scene> 




Vielen lieben Dank für eure Antworten.



Lg Bernie

Ps Vll auch noch wichtig. es handelt sich um eine Bone-Animation

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »BernieSCS« (04.04.2013, 09:33)


Techie

Alter Hase

Beiträge: 717

Wohnort: Bayreuth

Beruf: Student | Hilfswissenschaftler in der Robotik

  • Private Nachricht senden

2

04.04.2013, 09:42

Naja, hier wird wohl unwahrscheinlich jemand einen ganzen script vorlegen.

Kleine Empfehlung an dich:
- Lerne Lua

Die Sprache ist eine Scriptsprache, dazu noch eine recht einfache Sprache ( im Vergleich zu C oder gar MASM/FASM/NASM ) .
Hier ein Link zu einem Tutorial : http://lua.gts-stolberg.de/

Der Vorteil ist, wenn du Lua kannst, bist du fähig Sache zu automatisieren und andere Programmiersprachen zu lernen fällt dir dann auch leichter.
I write my own game engines because if I'm going to live in buggy crappy filth, I want it to me my own - Ron Gilbert

3

04.04.2013, 10:03

Hallo, erst einmal Danke für deine Antwort.

Auf den Tip, "lern Lua", hätte ich selbst auch kommen können :dash:

Ich hätte eigentlich gedacht ,dass es etwas einfacher sein sollte so eine Animation inGame zu starten.

Der Link von dir scheint für die Zukunft wirklich hilfreich zu sein. Vielen Dank hierfür..

Tja, jetzt besteht mein Problem aber immer noch .. ich brauch wenigstens nen tip. wie der lua code ansatzweise ausehen muss / soll.

Wenn ich mir via TUTs Lua ansehe befürchte ich, dass mein Hase erst in ein paar Monaten hobbeln wird.. ich erhoffte dass er in ein paar Tagen hobbelt :(

Lg Bernie

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

4

04.04.2013, 10:36

Kommt darauf an, wie schnell du dich in Lua zurecht findest und wie viele der Grundlagen du tatsächlich dafür benötigst. Für mich klingt dein Vorhaben im ersten Moment nicht so kompliziert, also dass nur ein paar Befehle mit den richtigen Parametern ausgeführt werden müssen. Es kann allerdings auch sein, dass du das Hasenverhalten etwas realistischer gestalten willst, wofür du dann wieder mehr Lua Kenntnisse benötigen dürftest.
Ich an deiner Stelle würde das Lernen von Lua nicht so sehr als Aufwand für diese kleine Aufgabe abrechnen. Einerseits dürftest du direkt daraus folgend leichter weitere Modifikationen am spiel vornehmen können, andererseits erlangst du so auch ein Grundverständnis für doe Programmierung, wodurch dir später ähnliche Dinge (wie die genannten Automatisierungen) einfacher fallen oder du dich besser mit Programmierern unterhalten kannst.
Ich weiß nicht, in wie weit du es auf Dauer vor hast, aber solltest du professionell in die Spieleentwicklung einsteigen sollen, sind Grundkenntnisse im Bereich Programmierung in jedem anderen Bereich von Vorteil.

Einen "Tipp" könntest du dir eventuell in der Dokumentation des Tolls holen, mit dem du für den Landwirtschaftssimulator entwickelst. Eventuell besitzen die notwendigen Funktionen/Methoden ausreichend sprechende Namen, sodass du sie schnell erkennst.
Du könntest auch nach Tutorials im Internet schauen, wobei du nicht zu sehr auf dein Problem beschränkt suchen solltest. Da du aber bereits einen Beispielschnipsel für eine Animation gegeben hast, dürftest du bereits etwas in der Richtung unternommen haben. Hast du auch schon speziell nach Bone-Animationen in diesem Zusammenhang gesucht?
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

5

04.04.2013, 11:09

Hallo Sacaldur,


danke für deine Antwort.

Natürlich will ich mir im ersten Step nicht gleich eine ganze Programmiersprache aneignen. Nach 7 Jahren Visual_Basic selbst - beigebracht - Erfahrung .. weiss ich , dass das viel testing und nerven kostet. :-)

Wenn ich den Hasen zum laufen birnge, dann hab ich zumindestens einmal ein Objekt die das Spiel etwas lebendiger gestaltet.

Ich denke hieraus werden sich dann automatisch weitere Ideen entwickeln, die diese Kenntnisse der Lua Programmierung erfordern.

Aber wie`s im Leben so oft ist, kommt erst das Ei und dann das Huhn :D

Ja ich hab schon sehr im Netz gesucht. Aber zu einem wirklichen Ergebnis bin ich bisher nicht gekommen.

Das Einzige was ich gefunden habe ist ein Lua Code der wohl eine Bones-Animierte Krähe in Game bringt. Aber diese Krähe gabs bisher noch niergends zusehen.

Und ich hab auch keine Ahnung obs geklappt hat.

Hier der Code .. keine Ahnung ob man Teile daraus brauchen kann.



Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<UserAttribute nodeId="2259"> 
<Attribute name="onCreate" type="scriptCallback" value="modOnCreate.FlyingCrow"/> 
<Attribute name="index" type="string" value="0"/> 
<Attribute name="clip" type="string" value="flappoSource"/> 
</UserAttribute> 

this is the trigger lua 


FlyingCrow = {}; 
local featureObject_mt = Class(FlyingCrow, Object); 

InitObjectClass(FlyingCrow, "FlyingCrow"); 

function FlyingCrow.onCreate(id) 
local object = FlyingCrow:new(g_server ~= nil, g_client ~= nil); 

g_currentMission:addOnCreateLoadedObject(object); 
object:load(id); 
object:register(true); 
end; 

g_onCreateUtil.addOnCreateFunction("FlyingCrow", FlyingCrow.onCreate); 

function FlyingCrow:new(isServer, isClient, customMt) 
local mt = customMt; 
if mt == nil then 
mt = featureObject_mt; 
end; 

local self = Object:new(isServer, isClient, mt); 

self.nodeId = 0; 
return self; 
end; 

function FlyingCrow:load(id) 
self.nodeId = id; 

local index = Utils.indexToObject(id, getUserAttribute(id, "index")); 

if index ~= nil then 
self.animCharSet = getAnimCharacterSet(index); 
if self.animCharSet ~= 0 then 
local clip = getAnimClipIndex(self.animCharSet, getUserAttribute(id, "clip")); 
if clip ~= nil then 
assignAnimTrackClip(self.animCharSet, 0, clip); 
if getAnimTrackAssignedClip(self.animCharSet, 0) then 
local loop = true; 
setAnimTrackLoopState(self.animCharSet, 0, loop); 
self.animDuration = getAnimClipDuration(self.animCharSet, clip); 
end; 
end; 
end; 
end; 
end; 

function FlyingCrow:delete() 
end; 

function FlyingCrow:update(dt) 
end;


Kannst du mir hierzu helfen ?



Lg Bernie

6

04.04.2013, 15:35

ok ich hab noch was gefunden

Quellcode

1
2
3
4
5
6
 <i3dAnims> 
<anim rootnode="0>1" clipname="clip1" inputBinding="Clip1" helpText="Clip1" speed="1"/> 
<anim rootnode="0>2" clipname="clip2" inputBinding="Clip2" helpText="Clip2" loop="true" speed="1"/> 
<anim rootnode="0>3" clipname="clip3" inputBinding="Clip3" helpTextOn="Clip3on" helpTextOff="Clip3off" speed="1"/> 
<anim rootnode="0>4" clipname="leftDoorSource" inputBinding="ldoor" helpText="leftDoor" speed="1" inside="false" outside="true" distNode="0|1" maxDist="1.0"/> 
</i3dAnims>


Damit kann man per tastendruck eine animation abspielen.

Ich hätte es aber gerne ohne :huh:

Lg Bernie

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

7

04.04.2013, 16:28

Ich vermute einfach mal, dass den Werten hinter inputBinding ("Clip1", "Clip2", "Clip3" und "ldoor") vom Spiel Tasten zugeordnet werden. Vielleicht gibt es ja ein Binding, welches beim Start des Spiels/der Map ausgelöst wird. Der Name dafür könnte "start", "load", "init", "run" o. ä. sein. (Die doku, sofern vorhanden, dürfte eine Auskunft geben, sofern sie eine ausreichende Qualität besitzt.)
Allerdings basiert das eher auf Spekulationen und vielleicht gibt es spezielle Attribute, die ein entsprechendes Verhalten hervorrufen oder man muss per Skript die Animation manuell starten oder einen ganz anderen Weg gehen...
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Werbeanzeige