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

Changelog

Version 0.1.5

  • Automatically creates the work resource folder.

Version 0.1.4

  • Improved the SceneGraph UI.

Version 0.1.3

  • Fixed null pointer errors related to Ogre::SceneNode.

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.2.4-cp312-cp312-win_amd64.whl (28.5 MB view details)

Uploaded CPython 3.12Windows x86-64

libcalab_ogre3d-0.2.4-cp312-cp312-manylinux_2_39_x86_64.whl (24.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.39+ x86-64

libcalab_ogre3d-0.2.4-cp312-cp312-macosx_13_0_arm64.whl (15.9 MB view details)

Uploaded CPython 3.12macOS 13.0+ ARM64

File details

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

File metadata

File hashes

Hashes for libcalab_ogre3d-0.2.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 4f13bdf904901a8a5ff48585fe09d43853d8d84c961a3aced4f256f9ae17330a
MD5 ac24519c568c55c234d80e1fe463d18e
BLAKE2b-256 5fcbc3fc9ecd1c9a118cf66aba93fa78c480c9c404c15e090c3f220ef86b7f60

See more details on using hashes here.

File details

Details for the file libcalab_ogre3d-0.2.4-cp312-cp312-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for libcalab_ogre3d-0.2.4-cp312-cp312-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 33dba44bd703ce93c97a47c68a0bb6447c66b280c3c44b2ba80dfc225df6e924
MD5 52a0c2d27c473df22ffc1f26a07348cc
BLAKE2b-256 2a6e0852eb4e3c80f3941879931b355997f8b5d38fa908bff886c2f4ff5c3da1

See more details on using hashes here.

File details

Details for the file libcalab_ogre3d-0.2.4-cp312-cp312-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for libcalab_ogre3d-0.2.4-cp312-cp312-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 2f812cc83cd110a6fdeb8a1412a96ad9ea4207e58e40a6f32bd90bc4d74df4c3
MD5 c55be72614494663ad226e65bdc4dd90
BLAKE2b-256 197fd8fbb3abab902f4e29e21c44b31e4c94b350d26346d4a047b4e82db7449e

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