当前位置: 首页 > news >正文

blender-bpy程序化控制物体脉冲变大动画测试(代码移植自sizebox),不建议用于渲染动画,效果不是连续变大的spurt growth

blender-bpy程序化控制物体脉冲变大动画测试(代码移植自sizebox),不建议用于渲染动画,效果不是连续变大的spurt growth

import bpy
import time# ===== 可调参数 =====
GROW_DURATION = 1.0      # 生长阶段持续时间(秒)
GROW_SPEED = 0.2          # 生长速度因子(每秒钟 scale 乘 (1 + GROW_SPEED))
IDLE_DURATION = 5.0       # 暂停阶段持续时间(秒)
OBJECT_NAME = "Cube"      # 要控制的物体名称(改为你自己的物体名)
# ===================# 存储物体状态(因为可能有多个物体需要独立控制)
state = {"growing": False,"grow_start": 0.0,"last_scale": 1.0      # 初始缩放值(可根据物体实际缩放修改)
}def spurt_growth_handler(scene):"""每帧调用的更新函数"""obj = bpy.data.objects.get(OBJECT_NAME)if obj is None:return  # 物体不存在,跳过
current_time = time.time()  # 使用系统时间(与帧率无关)# 初始化状态(第一次运行时)if not hasattr(spurt_growth_handler, "initialized"):state["grow_start"] = current_timestate["growing"] = Truestate["last_scale"] = obj.scale.x  # 假设是均匀缩放spurt_growth_handler.initialized = True# 状态机if state["growing"]:# 生长阶段:指数增长delta = current_time - state["grow_start"]if delta < GROW_DURATION:# 计算新的缩放值factor = 1 + GROW_SPEED * deltanew_scale = state["last_scale"] * factorobj.scale = (new_scale, new_scale, new_scale)else:# 生长结束,进入暂停state["growing"] = Falsestate["grow_start"] = current_time# 记录当前缩放作为下次生长的基准state["last_scale"] = obj.scale.xelse:# 暂停阶段:等待 IDLE_DURATION 后再次生长if current_time >= state["grow_start"] + IDLE_DURATION:state["growing"] = Truestate["grow_start"] = current_time# 重置基准缩放(可选,如果你希望每次从当前大小开始)state["last_scale"] = obj.scale.x# 将处理函数注册到 Blender 的帧更新事件
def register():bpy.app.handlers.frame_change_pre.append(spurt_growth_handler)def unregister():bpy.app.handlers.frame_change_pre.remove(spurt_growth_handler)# 如果直接运行脚本,自动注册
if __name__ == "__main__":register()

 

http://www.jsqmd.com/news/389992/

相关文章:

  • 这次终于选对! 更贴合继续教育的降AI率软件 千笔·专业降AIGC智能体 VS 知文AI
  • 高级概率知识1:大数定律:从0到1避坑指南(附完整代码)
  • 拖延症福音 8个一键生成论文工具测评:专科生毕业论文+开题报告高效写作指南
  • 新手也能上手!专科生专用的AI论文工具 —— 千笔AI
  • 导师严选! 更贴合继续教育的降AIGC平台 千笔·降AI率助手 VS 云笔AI
  • 题解:洛谷 P1080 [NOIP 2012 提高组] 国王游戏
  • 题解:洛谷 P1012 [NOIP 1998 提高组] 拼数
  • 2026国内耐用的除尘器厂商推荐排行榜单,带你了解行业好厂,RTO/滤筒除尘器/活性炭箱/旋风除尘器,除尘器制造厂推荐榜 - 品牌推荐师
  • 2024年9月GESP真题及题解(C++七级): 矩阵移动 - 详解
  • 题解:洛谷 P4447 [AHOI2018初中组] 分组
  • 题解:洛谷 P4995 跳跳!
  • 别再瞎找了!AI论文网站 千笔写作工具 VS WPS AI,自考写论文更高效!
  • 题解:洛谷 P1094 [NOIP 2007 普及组] 纪念品分组
  • 题解:洛谷 P1208 [USACO1.3] 混合牛奶 Mixing Milk
  • 题解:洛谷 P5019 [NOIP 2018 提高组] 铺设道路
  • 题解:洛谷 P1090 [NOIP 2004 提高组] 合并果子
  • ABC445G Knight Placement 题解
  • 题解:洛谷 P1478 陶陶摘苹果(升级版)
  • 题解:洛谷 P1106 删数问题
  • 题解:洛谷 P3817 小A的糖果
  • 题解:洛谷 P1803 凌乱的yyy / 线段覆盖
  • Spark大数据处理:技术、应用与性能优化【2.7】
  • Android Studio 中 Activity 的五种启动模式
  • 微信小程序查看备案号
  • 题解:洛谷 P1223 排队接水
  • 2026年市场上可靠的下水道疏通企业有哪些,下水道疏通排行榜行业优质排行榜亮相 - 品牌推荐师
  • Spark大数据处理:技术、应用与性能优化【2.6】
  • 前端必备:NVM管理Node版本不翻车,新手老手都能用
  • 题解:洛谷 P2240 【深基12.例1】部分背包问题
  • 写作压力小了,AI论文工具千笔 VS 万方智搜AI,研究生专属高效之选!