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.6-cp312-cp312-win_arm64.whl (20.6 MB view details)

Uploaded CPython 3.12Windows ARM64

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

Uploaded CPython 3.12Windows x86-64

libcalab_ogre3d-0.0.6-cp312-cp312-macosx_13_0_arm64.whl (15.3 MB view details)

Uploaded CPython 3.12macOS 13.0+ ARM64

File details

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

File metadata

File hashes

Hashes for libcalab_ogre3d-0.0.6-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 e058376f807fe4d6c1c8284b51a4e07e2660538de1f7aaa1b3c13e6969f80781
MD5 0e166cb86c60b0d842232d57a8c377fa
BLAKE2b-256 b49ca12c15a86bb96f9ccf048e04c1e5908718d7c99154725e36c788eb9c02b5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libcalab_ogre3d-0.0.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 222766cfad5710760d81abb9baa5961344ebb5a74f95d9aa9717a710ad3fe25c
MD5 f8b50b785d5bde0ddfac9bbee23022c0
BLAKE2b-256 dc3f482b598c8465d6fce38070c4094decd23580f8f4e4fb1ee5b9bf0daf1bd6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libcalab_ogre3d-0.0.6-cp312-cp312-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 70b6a8a60176db0d7ff12124ded2ffaa893413724b986f233585fbae224fedc8
MD5 cc38f9c756508ece01c4cd8bf3183137
BLAKE2b-256 c2f7eebec9061d0f139dc48affb3746c06962bbac1ef5952d2eed4a31556d90c

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