Skip to main content

Library for character animation and rendering based on ogre3d

Project description

example code 1 (fbx rendering using timeline).

import os,sys,pdb,math
from libcalab_ogre3d import *
import numpy as np


def onFrameChanged(iframe):
    global skin1, skin2
    print(iframe)
    skin1.setPose(fbx.loader.mMotion.pose(iframe))
    skin2.setPose(fbx.loader.mMotion.pose(iframe))


            

this=RE.createMainWin(sys.argv)
skelFile='../../Mixamo/fbx_withSkin/bigvegas_Walking.fbx' 
skinScale=1

fbx=RE.FBXloader(skelFile, skinScale=skinScale, useTexture=True, simplifyMesh=False)

# draw skeleton
skin1=RE.createSkin(fbx.loader)
skin1.setScale(skinScale, skinScale, skinScale)

# draw mesh
skin2=RE.createFBXskin(fbx)
skin2.setScale(skinScale, skinScale, skinScale)


g_motion2=fbx.loader.mMotion
mTimeline=RE.Timeline("Timeline", g_motion2.numFrames(), 1/g_motion2.frameRate())
m.startMainLoop() # this finishes when program finishes

example code 2 (bvh loading without using timeline).

import os, sys, pdb, math, random
from libcalab_ogre3d import *
import numpy as np

elapsedTime=0
            
def frameMove(fElapsedTime):
    global elapsedTime, mLoader, mMotion,mSkin

    elapsedTime=elapsedTime+fElapsedTime
    currFrame=round(elapsedTime*30) # assuming 120hz

    if currFrame>=mMotion.numFrames():
        return
    mLoader.setPose(mMotion.pose(currFrame))
    leftwristpos=mLoader.getBoneByName('LeftHand').getFrame().translation
    RE.draw("Sphere", leftwristpos*100, "wrist1", "red", 6)

    mSkin.setPose(mMotion.pose(currFrame))

def onCallback(w, uid):
    print(w.id())


this=RE.createMainWin(sys.argv)

this.addButton('hihi')
this.updateLayout()

mLoader=RE.createMotionLoaderExt('../Resource/motion/woody/wd2_2foot_walk_turn2.bvh')
mMotion=mLoader.mMotion

mSkin= RE.createSkin(mLoader);    # to create character
mSkin.scale(1,1,1);                    # this motion data is in cm unit 
mSkin.setPose(mMotion.pose(0));

RE.viewpoint().vpos.set(0, 50, 300)
RE.viewpoint().vat.set(0,40,0)
RE.viewpoint().update()

while True:
    if not RE.renderOneFrame(True):
        break

other examples

https://github.com/taesoobear/IPCDNNwalk

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

libcalab_ogre3d-0.0.7-cp312-cp312-win_arm64.whl (20.6 MB view details)

Uploaded CPython 3.12Windows ARM64

libcalab_ogre3d-0.0.7-cp312-cp312-win_amd64.whl (28.4 MB view details)

Uploaded CPython 3.12Windows x86-64

File details

Details for the file libcalab_ogre3d-0.0.7-cp312-cp312-win_arm64.whl.

File metadata

File hashes

Hashes for libcalab_ogre3d-0.0.7-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 833cbd3119742c653c587c4b908abfdbb73457863810453c2efca480e87f4765
MD5 5a985ddb3cfd7635d26100708ab994ce
BLAKE2b-256 174197f5fbf1005968bfcc2ea6df4ce15bb5f09ee143fb156c94430a11b32fd1

See more details on using hashes here.

File details

Details for the file libcalab_ogre3d-0.0.7-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for libcalab_ogre3d-0.0.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 80e3f804ecbba9f818ca61529e7da34692b2201e83e007ec52e0fe53a1f7ed55
MD5 c81e4b53c1f415e64d3212f1d884e7e5
BLAKE2b-256 515af81f495d9e6f9c441181a49442e7ed75cf3b045d2b35601131d5419271ce

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page