Προς το περιεχόμενο

Ερώτηση: Βαρύτητα & αντικείμενα.


sonyxp

Προτεινόμενες αναρτήσεις

Έχω ασχοληθεί με το Unity που έχει πολλά έτοιμα πράγματα, μου έχουν γεννηθεί μερικές απορίες

  • Πως λέμε σε ένα Transform(Object) "Ξέρεις... είσαι στον αέρα άρα πρέπει να πέσεις κάτω"
  • Πως ξέρουμε ότι είναι στον αέρα (Collisions?)
  • Πως, όταν ασκούμε δύναμη σε κάποιο αντικείμενο, το αντικείμενο το οποίο δέχεται την δύναμη κάνει πέρα, κουνιέται δηλαδή (AddForce())

 

Δεν θέλω κώδικα, θέλω θεωρητικά να μου πείτε πως γίνεται και αν γίνεται σε μερικά σημεία και ψευδοκώδικα.

 

Παράδειγμα 1

Έχουμε την παρακάτω εικόνα, τι πιστεύετε ότι γίνεται από πίσω? εγώ πιστεύω πως κάτω στα πόδια του παίχτη υπάρχει κάποια αόρατη επιφάνεια και απλά ο παίχτης παίζει κάποιο Animation και σου δίνει την εντύπωση ότι κρεμιέται.

Πρόβλημα στην θεωρία μου, αν όντως υπάρχει κάποια αόρατη επιφάνεια κάτω στα πόδια η οποία είναι static, αν είχαμε άλλον χαρακτήρα (έναν νανο πχ) τα χέρια δεν θα φτάνανε καν τον σωλήνα και ο νάνος θα έκανε πως κρεμιέται (fail).

So, what you think about it?

 

24cfm29.jpg

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δεν υπαρχει αορατη επιφανεια. Υπαρχει ενα box.

jA8JgsV.jpg

 

Οταν ο παιχτης βρεθει μεσα στο κουτι, τοτε του αναλαμβανει το χ σκριπτ.

πχ

σου βγαζει ενα μενου που λεει πατα το ταδε για να ανεβεις

εσυ το πατας και τοτε

μπαινει αλλο ενα transform matrix στο μοντελο το οποιο ειτε ειναι σχεδιασμενο για αυτη την περιοχη, ειτε απλα ανεβαζει το μοντελο στον αερα.

Και φυσικα αλλαζει το annimation του μοντελου, απο περπατα ξερωγω σε... αυτο που βλεπουμε στην εικονα

 

Σε γενικες γραμμες, οταν μπεις σε αυτο το κουτι, τοτε αλλαζει το game.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ναι, όταν βρεθεί σε εκείνη την περιοχή θα κάνει και τις ανάλογες πράξεις.

 

Κάτι τέτοιο σκέφτηκα εγώ!

 

 

 

 

j_A8_Jgs_V.png

WhileInsideGreenArea
{
	OnJump() {
		If( Distance(Player, Solinas) < 1) {
			// Lock: <- Μετακίνησε τον παίχτη ακριβώς στην θέση που πρέπει (γιατί με το Jump θα έχει κάποιο σφάλμα)
			// Animation etc
			// Variables change { isOnAir=True, isHoldingFromPipe=True }
		}
	}
	
	OnHoldingFromPipe() {
		// While player moves fix his position : 
		// μπορεί ο σωλήνας να μην είναι ευθεία άρα πρέπει 
		// και ο παίχτης ανάλογα να αλλάξει το Y του.
	}
}

 

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

To Unity έχει function που ελέγχει για collisions. Μπορείς να δεις ποιο αντικείμενο άγγιξε ποιο.

Για το ύψος... ίσως ένα raycast προς τα κάτω για να βρεί πόσο μακριά είναι το επόμενο rigidbody/collider.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

To Unity έχει function που ελέγχει για collisions. Μπορείς να δεις ποιο αντικείμενο άγγιξε ποιο.

Για το ύψος... ίσως ένα raycast προς τα κάτω για να βρεί πόσο μακριά είναι το επόμενο rigidbody/collider.

Υεαπ! εγώ ψάχνω πως είναι υλοποιημένα αυτά (θεωρητικά-ψευδοκώδικα), δεν τα θέλω έτοιμα!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Υεαπ! εγώ ψάχνω πως είναι υλοποιημένα αυτά (θεωρητικά-ψευδοκώδικα), δεν τα θέλω έτοιμα!

Ααααα! Για να κάνεις τα δικά σου; Όταν τα κάνεις πες μου να σου κάνω τα 3D.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ααααα! Για να κάνεις τα δικά σου; Όταν τα κάνεις πες μου να σου κάνω τα 3D.

 

Όχι ακριβώς!.

 

Αυτά φίλε μου δεν υπάρχουν σε OpenGL, η αλήθεια είναι ότι έχω φτιάξει ένα RPG σε Unity3D και θα ήθελα να το κάνω port σε OpenGL αλλά ρε φίλε η διαφορά του Unity3D με OpenGL είναι τεράστια.

 

Θέλει γερό ξεκώ...μα για να το κάνεις σε OpenGL.

 

 

 

Τι σχέση έχεις με 3D εσύ? δηλαδή άμα σου ζητήσω να μου φτιάξεις 1-2 levels LOL-Style θα τα καταφέρεις πιστεύεις? με αξιόλογα γραφικά-CartoonStyle?

 

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αυτά φίλε μου δεν υπάρχουν σε OpenGL, η αλήθεια είναι ότι έχω φτιάξει ένα RPG σε Unity3D και θα ήθελα να το κάνω port σε OpenGL αλλά ρε φίλε η διαφορά του Unity3D με OpenGL είναι τεράστια.

 

Για να ειμαστε πιο ακριβεις, ας μη μιλαμε για διαφορα, ειναι εντελως αλλα πραγματα.

 

Το OpenGL ειναι ενα 3D API, ειναι ας πουμε το τελευταιο πραγμα που μεσολαβει μεταξυ του κωδικα σου και των drivers της καρτας γραφικων σου. Το μονο που μπορει να κανει ειναι να παρει τις εντολες σου και να ζητησει απο τη GPU σου να το ζωγραφισει. Ειναι programming interface, δεν ειναι καν graphics engine (υπεραπλουστευμενα ολα αυτα ε -- αν σου διαφευγουν εννοιες googlare ή ρωτα για πιο συγκεκριμενα παραδειγματα)

 

Το Unity ειναι game engine/ platform / tool poerhouse. Ειναι ετοιμο πακετο/προιον στοχευμενο στο να κανει τη ζωη επιδοξων κατασκευαστων παιχνιδιων πιο ευκολη. Εσωτερικα, χρησιμοποιει graphics engine που με τη σειρα του χρησιμοποιει αντιστοιχα 3D apis (και OpenGL, και direct3d κτλ κτλ). Επισης εχει physic engine, scripting engine, asset (content) management, εργαλεια και της μαριγως τα ματια.

Η λογικη του να χρησιμοποιησεις το Unity (ή το όποιο άλλο Unity) ειναι πως ουτως ή άλλως αν θες να κανεις ενα παιχνιδι καποιου επιπεδου, θα αναλωθεις στο να κατασκευασεις πραγματα τα οποια το Unity στα παρεχει ετοιμα (ισως οχι ακριβως οπως τα θες, αλλα πρεπει να ζυγισεις τα θεματα εργατοωρων, προσδοκομενου κερδους απο τη κυκλοφορηση του παιχνιδιου σου και λοιπα). Μεγαλες εταιριες προτιμουν να κανουν τα δικα τους για προφανεις λογους αλλα εχουν το badget να συντηρησουν ομαδες που μπορουν οντως να κανουν καλυτερα πραγματα απο αυτα που παρεχει το unity. Οι μικροτερες εταιριες είναι άλλο θέμα.

Οπως και να εχει, το να ζυγισεις τι εχεις και το τι θες να κανεις ειναι κατι που έτσι και αλλιως πρεπει να γινεται πριν ξεκεινησεις το οποιοδηποτε προτζεκτ.

 

Αν τωρα, εισαι σε φαση που μαθαινεις OpenGL και εχεις k@υλωσει να δεις πως γινονται απο το μηδεν ολα αυτα, μαζι σου με τα χιλια. Ειναι γνωση που δε παει χαμενη, μην ακους κανενα. 

Αν και μπορει να το εχεις ηδη δει, ειχα μαθει πολλα απο τη σελιδα του nehe (http://nehe.gamedev.net). Για τη βαρυτητα και τα collision detections θα σου αρεσουν τα μαθηαμτα που εχει Link.png Site: αυτο και Link.png Site: αυτο . Φυσικα σε ενθαρρυνω να παρεις ολα τα μαθηματα του σβαρνα οταν εχεις χρονο.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Cartoon-Style Graphics εννοώ, τα γραφικά του LOL είναι τέτοια!

 

Τα μοντέλα μοιάζουν πιο πολύ με Cartoon και δεν προσπαθούν να μοιάσουν στην πραγματικότητα.

 

Έχω 2 εικόνες κάτω που δείχνουν τι είναι και τι δεν είναι Cartoon-Style

 

NO Cartoon Style (Real-world style)

http://reddotgames.pl/unitystore/vol2_2.jpg

http://i44.tinypic.com/k15kqo.png

http://www.gameobject.net/wp-content/uploads/2013/01/01-free-3d-model-enemy-elemental-demon-asset-for-unity3d.png

 

 

Cartoon Style:

http://cgcookie.com/blender/files/2012/08/screenShot_Farm_01.png

http://www.frogames.net/media/catalog/product/cache/1//9df78eab33525d08d6e5fb8d27136e95/d/u/dungeonguardianspack_screenshot_2.png

http://cgcookie.com/blender/files/2012/08/screenShot_Desert_01.png

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...