ब्लेंडर पायथन गेम स्क्रिप्टिंग को समझने के लिए, मैं वर्तमान में this link से FPSController संरचना का उपयोग करके एक दृश्य बनाने की कोशिश करता हूं जिसमें कोई भी क्षेत्रफल के चारों ओर घूम सकता है।ब्लेंडर: क्षेत्र के चारों ओर घूमना
def main():
print("Started")
controller = bge.logic.getCurrentController()
me = controller.owner
distance, loc, glob = me.getVectTo((0,0,0))
grav = controller.actuators['Gravity']
strength = me['Gravity']
force = strength*(distance*distance)*glob
grav.force = force
try:
rot = Vector((0,0,-1)).rotation_difference(glob).to_matrix()
except Exception as E:
print(E)
rot = (0,0,0)
rotZ = me.orientation
me.orientation = rot*rotZ
controller.activate(grav)
main()
जो मोटे तौर पर जब तक किसी भी कोण 180 डिग्री से अधिक हो जाता है काम करता है, और फिर असंतत दिखता है: गुरुत्वाकर्षण और FPSController उन्मुखीकरण के लिए मैं एक अजगर नियंत्रक, जो वर्तमान में इस तरह दिखता है का निर्माण करने की कोशिश की। मुझे लगता है कि यह rotation_difference से असंतुलित होने से आता है - blender documentation on Math Types & Utilities कुछ भी नहीं कहता है, और मैंने अभी तक यह देखने के लिए quaternionic प्रस्तुतियों के बारे में पर्याप्त नहीं सोचा है कि एक निरंतर नक्शा संभव होगा - और मुझे लगता है कि स्थानीय ज़ेड प्राप्त करने के लिए एक और शानदार तरीका है अभिविन्यास लगातार माउस-निर्भर है, जबकि स्थानीय एक्स और वाई उन्मुखता कुछ दिए गए वेक्टर पर लगातार निर्भर करती है, लेकिन कैसे?
3 डी स्पेस में रोटेशन काफी कठिन हो सकता है। मेरी राय में, समय को quaternions समझने में आसान है, और इसके बजाय उन का उपयोग करें। – fluffels
यदि यूलर कोण (quaternions के बजाय) का उपयोग करने वाले मुद्दों में से एक है जिम्बल लॉक (http://en.wikipedia.org/wiki/Gimbal_lock), जो कुछ समस्याएं पैदा कर सकता है – decden
क्या यह कोशिश करना आसान है जब आप ब्लेंडर स्थापित करते हैं? (ब्लेंडर विशेषज्ञ नहीं) – Gerard