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.2.8

  • Gaussian splatting

version 0.2.7

  • Pack and unpack floatTensor

version 0.2.6

  • Fixed memory issues (regarding .array)
  • Fixed memory leaks (regarding Voxels and SDF)

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

Uploaded CPython 3.12Windows ARM64

libcalab_ogre3d-0.2.8-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.8-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.8-cp312-cp312-win_arm64.whl.

File metadata

File hashes

Hashes for libcalab_ogre3d-0.2.8-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 13d2b7adec23e0ae5c15ce23e10e740ae206cafef79df291aecaa1c6bf498bb4
MD5 a75bbb3067cd5330f4312c2aeb369c47
BLAKE2b-256 d405e1d06ecc1ea1934d9e25e77b7ff483453ca8b5d559206feb7ac3aec5d9d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libcalab_ogre3d-0.2.8-cp312-cp312-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 1c71832aa7a1b9246fb86c42b2d1c4cb8747d99d9ef64e1135d3eb9cbeff7aa9
MD5 5350b18e7f4ad036de039fa476815234
BLAKE2b-256 267ef3ed65c42887cb575a1524cd5507ca93eb18c6a85f3b4496cb5bdd91825e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libcalab_ogre3d-0.2.8-cp312-cp312-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 c685da4ec87fbffd276c11acbde546d08a2a792abe325b630bcf7fde8d0d9426
MD5 6aabe0431eaac24b6ece67f03e3ed912
BLAKE2b-256 ef30340c5e05975a115aa053c06faa9df54f063ee601c94aa45600aeba45005e

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