Last active
September 28, 2018 01:36
-
-
Save kitasenjudesign/d739c6123e0b55bc77445d2db6f608d1 to your computer and use it in GitHub Desktop.
cinema4dのcameraの情報をjsonに書き出す
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import c4d | |
import json | |
import os | |
from c4d import Quaternion | |
path = "" | |
fps = doc[c4d.DOCUMENT_FPS] | |
filename = os.path.normpath(doc.GetDocumentPath())+"/cam.json" | |
def main(): | |
with open(filename, 'r') as f: | |
dic = json.load(f) | |
frames = dic["frames"] | |
currentFrame=doc.GetTime().GetFrame(doc.GetFps()) | |
print "==" + str(currentFrame) | |
cam = op.GetObject() | |
if len(frames) <= currentFrame: | |
frames.append({}) | |
frames[currentFrame] = { | |
"frame": currentFrame, | |
"q": toQuaternion( cam.GetMg() ), | |
"x": cam[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_X], | |
"y": cam[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_Y], | |
"z": -cam[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_Z], | |
"fov": cam[c4d.CAMERA_FOCUS] | |
} | |
print toQuaternion( cam.GetMg() ) | |
#hozon | |
with open(filename, 'w') as f: | |
json.dump(dic, f, sort_keys=True, indent=4) | |
def toMatrix(mg): | |
v1, v2, v3, off = mg.v1, mg.v2, mg.v3, mg.off | |
return [ | |
v1.x, v1.y, -v1.z, | |
v2.x, v2.y, -v2.z, | |
v3.x, v3.y, -v3.z, | |
off.x, off.y, -off.z, | |
] | |
def toQuaternion(mg): | |
q = Quaternion() | |
q.SetMatrix( mg ) | |
return [ | |
q.v.x, | |
q.v.y, | |
-q.v.z, | |
q.w | |
] | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment