maya-rig-core


Namemaya-rig-core JSON
Version 0.2.5 PyPI version JSON
download
home_pageNone
Summary一个好用的Maya绑定核心库
upload_time2024-10-07 11:40:11
maintainerNone
docs_urlNone
authorNone
requires_python!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7
licenseApache Software License (Apache 2.0)
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # maya_rig_core

一个好用的绑定核心库

## 目录

- [快速开始](#快速开始)
    * [安装](#安装)
    * [使用](#使用)
- [版权说明](#版权说明)

## 快速开始

### 安装

注意下方的python是你的Python, 正常情况下可以直接通过python调用, 而Maya的python一般是C:\Program
Files\Autodesk\<Maya版本>\bin\mayapy.exe

```commandline
python -m pip install maya-rig-core
```

在windows下maya的安装例子

注意:

1. 请将Maya路径替换为自己的。
2. 请使用cmd

```commandline
"C:\Program Files\Autodesk\Maya2018\bin\mayapy.exe" -m pip install maya-rig-core
```

### 使用

#### 创建控制器与组

```python
# -*-coding:utf-8 -*-
from __future__ import print_function, unicode_literals, division
from rig_core.all import *

ctx = Ctx()
con = ctx.controller()
grp = ctx.add_group_to_object(con)
```

#### 创建名称空间上下文

```python
# -*-coding:utf-8 -*-
from __future__ import print_function, unicode_literals, division
from rig_core.all import *

ctx = Ctx()
with ctx.enter_new_name_space(prefix='prefix_'):
    con_list = ctx.controller()
print('在这里你可以查看名称空间上下文结束之后的名称', con_list)
```

#### 创建生成块上下文

```python
# -*-coding:utf-8 -*-
from __future__ import print_function, unicode_literals, division
from rig_core.all import *

ctx = Ctx()
# nodes 就是这个生成块记录的节点, 两个nodes都是.
with ctx.enter_build_block(key=lambda nodes: print('从回调获得 生成块中创建了什么节点 >>  ', nodes)) as nodes:
    con_list = ctx.controller()
print('从变量获得 生成块中创建了什么节点 >>  ', nodes)
```

#### 使用Tag过滤节点

```python
# -*-coding:utf-8 -*-
from __future__ import print_function, unicode_literals, division
from rig_core.all import *

ctx = Ctx()

# 进入一个新的Tag运行时(不进入其实也能跑,但是这里为了演示就进入了)
with ctx.enter_new_tag_rt('test_tag_rt'):
    # 创建有one标签的控制器
    one_con_list = ctx.controller(tags=['one'])
    # 创建有two标签的控制器
    two_con_list = ctx.controller(tags=['two'])

    # 创建过滤器
    f = ctx.filter()
    # 过滤节点
    nodes = f.tag_equal('one')
    print('搜索到的节点', list(nodes))
```

#### 进入一个新的根对象

```python
# -*-coding:utf-8 -*-
from __future__ import print_function, unicode_literals, division
from rig_core.all import *

ctx = Ctx()

root_con = ctx.controller()
root_grp = ctx.add_group_to_object(root_con)

with ctx.enter_new_root_object(root_con):
    child_con = ctx.controller()
    child_grp = ctx.add_group_to_object(child_con)
```

#### 虚拟骨骼树的使用

```python
# -*-coding:utf-8 -*-
from __future__ import print_function, unicode_literals, division
from rig_core.all import *

ctx = Ctx()

# 创建控制器和组
con_list = ctx.controller_list(tags=['test'], count=10)
grp_list = ctx.add_group_to_object_list(con_list, tags=['test'])

# 将控制器添加虚拟骨骼树下面
ctx.root_joint.add_joint_chain_from_object_list(con_list)

# 将虚拟骨骼树转化为实体骨骼
create_real_joints_from_root(ctx.root_joint)
```

#### 进入一个新的根虚拟关节

```python
# -*-coding:utf-8 -*-
from __future__ import print_function, unicode_literals, division
from rig_core.all import *

ctx = Ctx()

root_con = ctx.controller()
root_grp = ctx.add_group_to_object(root_con)

# 进入一个新的根虚拟关节
with ctx.create_child_joint_as_new_root_joint(obj=root_con):
    # 创建控制器和组
    con_list = ctx.controller_list(tags=['test'], count=10)
    grp_list = ctx.add_group_to_object_list(con_list, tags=['test'])

    # 将控制器添加虚拟骨骼树下面
    ctx.root_joint.add_child_from_object_list(con_list)

# 将虚拟骨骼树转化为实体骨骼
create_real_joints_from_root(ctx.root_joint)
```

# 节点数据库功能

```python
# -*-coding:utf-8 -*-
from __future__ import print_function, unicode_literals, division
from rig_core.all import *

ctx = Ctx()

con = ctx.controller()
grp = ctx.add_group_to_object(con)
# 进入一个新的节点数据库运行时(不进入其实也能跑,但是这里为了演示就进入了)
with ctx.enter_new_all_node_db_rt('test_attributes_name'):
    # 向控制器储存
    ctx.all_node_db_rt[con, 'test_key'] = 'test_all_db_rt_data'
    # 从控制器读取数据
    print('从控制器读取的数据', ctx.all_node_db_rt[con, 'test_key'])
```

## 版权说明

该项目签署了Apache-2.0 授权许可,详情请参阅 LICENSE





            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "maya-rig-core",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7",
    "maintainer_email": null,
    "keywords": null,
    "author": null,
    "author_email": "cpcgskill <cpcgskill@outlook.com>",
    "download_url": "https://files.pythonhosted.org/packages/46/7a/4618bbfe84dd20772606e73ecd6ba1abdc488392a0d68d549060c94a7ecb/maya_rig_core-0.2.5.tar.gz",
    "platform": null,
    "description": "# maya_rig_core\r\n\r\n\u4e00\u4e2a\u597d\u7528\u7684\u7ed1\u5b9a\u6838\u5fc3\u5e93\r\n\r\n## \u76ee\u5f55\r\n\r\n- [\u5feb\u901f\u5f00\u59cb](#\u5feb\u901f\u5f00\u59cb)\r\n    * [\u5b89\u88c5](#\u5b89\u88c5)\r\n    * [\u4f7f\u7528](#\u4f7f\u7528)\r\n- [\u7248\u6743\u8bf4\u660e](#\u7248\u6743\u8bf4\u660e)\r\n\r\n## \u5feb\u901f\u5f00\u59cb\r\n\r\n### \u5b89\u88c5\r\n\r\n\u6ce8\u610f\u4e0b\u65b9\u7684python\u662f\u4f60\u7684Python, \u6b63\u5e38\u60c5\u51b5\u4e0b\u53ef\u4ee5\u76f4\u63a5\u901a\u8fc7python\u8c03\u7528, \u800cMaya\u7684python\u4e00\u822c\u662fC:\\Program\r\nFiles\\Autodesk\\<Maya\u7248\u672c>\\bin\\mayapy.exe\r\n\r\n```commandline\r\npython -m pip install maya-rig-core\r\n```\r\n\r\n\u5728windows\u4e0bmaya\u7684\u5b89\u88c5\u4f8b\u5b50\r\n\r\n\u6ce8\u610f:\r\n\r\n1. \u8bf7\u5c06Maya\u8def\u5f84\u66ff\u6362\u4e3a\u81ea\u5df1\u7684\u3002\r\n2. \u8bf7\u4f7f\u7528cmd\r\n\r\n```commandline\r\n\"C:\\Program Files\\Autodesk\\Maya2018\\bin\\mayapy.exe\" -m pip install maya-rig-core\r\n```\r\n\r\n### \u4f7f\u7528\r\n\r\n#### \u521b\u5efa\u63a7\u5236\u5668\u4e0e\u7ec4\r\n\r\n```python\r\n# -*-coding:utf-8 -*-\r\nfrom __future__ import print_function, unicode_literals, division\r\nfrom rig_core.all import *\r\n\r\nctx = Ctx()\r\ncon = ctx.controller()\r\ngrp = ctx.add_group_to_object(con)\r\n```\r\n\r\n#### \u521b\u5efa\u540d\u79f0\u7a7a\u95f4\u4e0a\u4e0b\u6587\r\n\r\n```python\r\n# -*-coding:utf-8 -*-\r\nfrom __future__ import print_function, unicode_literals, division\r\nfrom rig_core.all import *\r\n\r\nctx = Ctx()\r\nwith ctx.enter_new_name_space(prefix='prefix_'):\r\n    con_list = ctx.controller()\r\nprint('\u5728\u8fd9\u91cc\u4f60\u53ef\u4ee5\u67e5\u770b\u540d\u79f0\u7a7a\u95f4\u4e0a\u4e0b\u6587\u7ed3\u675f\u4e4b\u540e\u7684\u540d\u79f0', con_list)\r\n```\r\n\r\n#### \u521b\u5efa\u751f\u6210\u5757\u4e0a\u4e0b\u6587\r\n\r\n```python\r\n# -*-coding:utf-8 -*-\r\nfrom __future__ import print_function, unicode_literals, division\r\nfrom rig_core.all import *\r\n\r\nctx = Ctx()\r\n# nodes \u5c31\u662f\u8fd9\u4e2a\u751f\u6210\u5757\u8bb0\u5f55\u7684\u8282\u70b9, \u4e24\u4e2anodes\u90fd\u662f.\r\nwith ctx.enter_build_block(key=lambda nodes: print('\u4ece\u56de\u8c03\u83b7\u5f97 \u751f\u6210\u5757\u4e2d\u521b\u5efa\u4e86\u4ec0\u4e48\u8282\u70b9 >>  ', nodes)) as nodes:\r\n    con_list = ctx.controller()\r\nprint('\u4ece\u53d8\u91cf\u83b7\u5f97 \u751f\u6210\u5757\u4e2d\u521b\u5efa\u4e86\u4ec0\u4e48\u8282\u70b9 >>  ', nodes)\r\n```\r\n\r\n#### \u4f7f\u7528Tag\u8fc7\u6ee4\u8282\u70b9\r\n\r\n```python\r\n# -*-coding:utf-8 -*-\r\nfrom __future__ import print_function, unicode_literals, division\r\nfrom rig_core.all import *\r\n\r\nctx = Ctx()\r\n\r\n# \u8fdb\u5165\u4e00\u4e2a\u65b0\u7684Tag\u8fd0\u884c\u65f6(\u4e0d\u8fdb\u5165\u5176\u5b9e\u4e5f\u80fd\u8dd1,\u4f46\u662f\u8fd9\u91cc\u4e3a\u4e86\u6f14\u793a\u5c31\u8fdb\u5165\u4e86)\r\nwith ctx.enter_new_tag_rt('test_tag_rt'):\r\n    # \u521b\u5efa\u6709one\u6807\u7b7e\u7684\u63a7\u5236\u5668\r\n    one_con_list = ctx.controller(tags=['one'])\r\n    # \u521b\u5efa\u6709two\u6807\u7b7e\u7684\u63a7\u5236\u5668\r\n    two_con_list = ctx.controller(tags=['two'])\r\n\r\n    # \u521b\u5efa\u8fc7\u6ee4\u5668\r\n    f = ctx.filter()\r\n    # \u8fc7\u6ee4\u8282\u70b9\r\n    nodes = f.tag_equal('one')\r\n    print('\u641c\u7d22\u5230\u7684\u8282\u70b9', list(nodes))\r\n```\r\n\r\n#### \u8fdb\u5165\u4e00\u4e2a\u65b0\u7684\u6839\u5bf9\u8c61\r\n\r\n```python\r\n# -*-coding:utf-8 -*-\r\nfrom __future__ import print_function, unicode_literals, division\r\nfrom rig_core.all import *\r\n\r\nctx = Ctx()\r\n\r\nroot_con = ctx.controller()\r\nroot_grp = ctx.add_group_to_object(root_con)\r\n\r\nwith ctx.enter_new_root_object(root_con):\r\n    child_con = ctx.controller()\r\n    child_grp = ctx.add_group_to_object(child_con)\r\n```\r\n\r\n#### \u865a\u62df\u9aa8\u9abc\u6811\u7684\u4f7f\u7528\r\n\r\n```python\r\n# -*-coding:utf-8 -*-\r\nfrom __future__ import print_function, unicode_literals, division\r\nfrom rig_core.all import *\r\n\r\nctx = Ctx()\r\n\r\n# \u521b\u5efa\u63a7\u5236\u5668\u548c\u7ec4\r\ncon_list = ctx.controller_list(tags=['test'], count=10)\r\ngrp_list = ctx.add_group_to_object_list(con_list, tags=['test'])\r\n\r\n# \u5c06\u63a7\u5236\u5668\u6dfb\u52a0\u865a\u62df\u9aa8\u9abc\u6811\u4e0b\u9762\r\nctx.root_joint.add_joint_chain_from_object_list(con_list)\r\n\r\n# \u5c06\u865a\u62df\u9aa8\u9abc\u6811\u8f6c\u5316\u4e3a\u5b9e\u4f53\u9aa8\u9abc\r\ncreate_real_joints_from_root(ctx.root_joint)\r\n```\r\n\r\n#### \u8fdb\u5165\u4e00\u4e2a\u65b0\u7684\u6839\u865a\u62df\u5173\u8282\r\n\r\n```python\r\n# -*-coding:utf-8 -*-\r\nfrom __future__ import print_function, unicode_literals, division\r\nfrom rig_core.all import *\r\n\r\nctx = Ctx()\r\n\r\nroot_con = ctx.controller()\r\nroot_grp = ctx.add_group_to_object(root_con)\r\n\r\n# \u8fdb\u5165\u4e00\u4e2a\u65b0\u7684\u6839\u865a\u62df\u5173\u8282\r\nwith ctx.create_child_joint_as_new_root_joint(obj=root_con):\r\n    # \u521b\u5efa\u63a7\u5236\u5668\u548c\u7ec4\r\n    con_list = ctx.controller_list(tags=['test'], count=10)\r\n    grp_list = ctx.add_group_to_object_list(con_list, tags=['test'])\r\n\r\n    # \u5c06\u63a7\u5236\u5668\u6dfb\u52a0\u865a\u62df\u9aa8\u9abc\u6811\u4e0b\u9762\r\n    ctx.root_joint.add_child_from_object_list(con_list)\r\n\r\n# \u5c06\u865a\u62df\u9aa8\u9abc\u6811\u8f6c\u5316\u4e3a\u5b9e\u4f53\u9aa8\u9abc\r\ncreate_real_joints_from_root(ctx.root_joint)\r\n```\r\n\r\n# \u8282\u70b9\u6570\u636e\u5e93\u529f\u80fd\r\n\r\n```python\r\n# -*-coding:utf-8 -*-\r\nfrom __future__ import print_function, unicode_literals, division\r\nfrom rig_core.all import *\r\n\r\nctx = Ctx()\r\n\r\ncon = ctx.controller()\r\ngrp = ctx.add_group_to_object(con)\r\n# \u8fdb\u5165\u4e00\u4e2a\u65b0\u7684\u8282\u70b9\u6570\u636e\u5e93\u8fd0\u884c\u65f6(\u4e0d\u8fdb\u5165\u5176\u5b9e\u4e5f\u80fd\u8dd1,\u4f46\u662f\u8fd9\u91cc\u4e3a\u4e86\u6f14\u793a\u5c31\u8fdb\u5165\u4e86)\r\nwith ctx.enter_new_all_node_db_rt('test_attributes_name'):\r\n    # \u5411\u63a7\u5236\u5668\u50a8\u5b58\r\n    ctx.all_node_db_rt[con, 'test_key'] = 'test_all_db_rt_data'\r\n    # \u4ece\u63a7\u5236\u5668\u8bfb\u53d6\u6570\u636e\r\n    print('\u4ece\u63a7\u5236\u5668\u8bfb\u53d6\u7684\u6570\u636e', ctx.all_node_db_rt[con, 'test_key'])\r\n```\r\n\r\n## \u7248\u6743\u8bf4\u660e\r\n\r\n\u8be5\u9879\u76ee\u7b7e\u7f72\u4e86Apache-2.0 \u6388\u6743\u8bb8\u53ef\uff0c\u8be6\u60c5\u8bf7\u53c2\u9605 LICENSE\r\n\r\n\r\n\r\n\r\n",
    "bugtrack_url": null,
    "license": "Apache Software License (Apache 2.0)",
    "summary": "\u4e00\u4e2a\u597d\u7528\u7684Maya\u7ed1\u5b9a\u6838\u5fc3\u5e93",
    "version": "0.2.5",
    "project_urls": {
        "Bug Tracker": "https://github.com/cpcgskill/maya_rig_core/issues",
        "Homepage": "https://github.com/cpcgskill/maya_rig_core"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5c1fa7bb4066da76736728474a991460f297f3d9bc53e49f02aeaf9e8618c31f",
                "md5": "e6dc0978c397622416eb96ff71270de7",
                "sha256": "f04a596299a55eee8b34456f1c893357385468ba515cab9d615673904878b1ce"
            },
            "downloads": -1,
            "filename": "maya_rig_core-0.2.5-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "e6dc0978c397622416eb96ff71270de7",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7",
            "size": 19072,
            "upload_time": "2024-10-07T11:40:10",
            "upload_time_iso_8601": "2024-10-07T11:40:10.762442Z",
            "url": "https://files.pythonhosted.org/packages/5c/1f/a7bb4066da76736728474a991460f297f3d9bc53e49f02aeaf9e8618c31f/maya_rig_core-0.2.5-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "467a4618bbfe84dd20772606e73ecd6ba1abdc488392a0d68d549060c94a7ecb",
                "md5": "e830500914b05d63a4493b23963bce97",
                "sha256": "7ab4277532f7680739ac629a86e290104fa10c3664852e6531642560af13abe9"
            },
            "downloads": -1,
            "filename": "maya_rig_core-0.2.5.tar.gz",
            "has_sig": false,
            "md5_digest": "e830500914b05d63a4493b23963bce97",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7",
            "size": 15063,
            "upload_time": "2024-10-07T11:40:11",
            "upload_time_iso_8601": "2024-10-07T11:40:11.937213Z",
            "url": "https://files.pythonhosted.org/packages/46/7a/4618bbfe84dd20772606e73ecd6ba1abdc488392a0d68d549060c94a7ecb/maya_rig_core-0.2.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-07 11:40:11",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "cpcgskill",
    "github_project": "maya_rig_core",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "maya-rig-core"
}
        
Elapsed time: 0.30181s