使用您的C4D脚本动作都出现了“未知文件格式”的错误提示

使用问题 · 3979 次浏览
Homjie 创建于 2023-05-15 11:37

不知道是我系统问题还是脚本的问题呢

win10    quicker1.38.4


回复内容
Anlv 2023-05-15 11:50
#1



实测没有碰到问题,这个动作是调用系统自带的运行从外部执行.py脚本文件。你可以尝试使用自带的脚本使用看看。


···

"""
AR_SelectActiveCamera

Author: Arttu Rautio (aturtur)
Website: http://aturtur.com/
Name-US: AR_SelectActiveCamera
Version: 1.0
Description-US: Selects the active camera

Written for Maxon Cinema 4D R25.010
Python version 3.9.1
"""

# Libraries
import c4d

# Functions
def main():
    doc = c4d.documents.GetActiveDocument() # Get active Cinema 4D document
    doc.StartUndo() # Start recording undos
    bd = doc.GetActiveBaseDraw() # Get active base draw
    activeCam = bd.GetSceneCamera(doc) # Get active camera
    selection = doc.GetSelection() # Get active selection
    if len(selection) != 0: # If there is selected items
        for s in selection: # Iterate through selection
            doc.AddUndo(c4d.UNDOTYPE_BITS, s) # Record undo
            s.DelBit(c4d.BIT_ACTIVE) # Deselect object
    doc.AddUndo(c4d.UNDOTYPE_BITS, activeCam) # Record undo
    activeCam.SetBit(c4d.BIT_ACTIVE) # Select camera
    doc.EndUndo() # Stop recording undos
    c4d.EventAdd() # Refresh Cinema 4D

# Execute main()
if __name__=='__main__':
    main()
   


# 激活后在对象管理器将对象设为焦点

from typing import Optional
import c4d

doc: c4d.documents.BaseDocument # The active document
op: Optional[c4d.BaseObject] # The active object, None if unselected

def main() -> None:
    c4d.CallCommand(100004769) # 滚动到所选对象


if __name__ == '__main__':
    main()
    c4d.EventAdd()

Anlv 最后更新于 2023-05-15 11:51
Homjie 回复 Anlv 2023-05-16 16:31 :

测试r25不行,重新在另一台电脑上的r19安装使用该动作,还是显示"未知文件格式"

测试:在C4D中使用脚本编辑器使用代码,可以使用,说明代码没有问题,
测试:脚本扩展名改为py格式,打开方式用C4D打开,显示"未知文件格式"
测试:所有带“Cinema_4D执行脚本”子程序都是显示"未知文件格式"

所以我估计是“Cinema_4D执行脚本”子程序的问题或者C4D打开方式的问题

Homjie 最后更新于 2023-05-16 16:35
Anlv 回复 Homjie 2023-05-16 18:25 :

可否尝试将py格式脚本拖拽入C4D窗口查看是否正常执行。

这个动作执行的步骤是获取前台运行的C4D路径

例如C:\Program Files\Maxon Cinema 4D 2023\Cinema 4D.exe

然后运行 "C:\Program Files\Maxon Cinema 4D 2023\Cinema 4D.exe" "脚本的具体路径"

模拟将python脚本用C4D的方式打开。

目前猜测的可能性

1)不支持的python环境。

2)C4D版本不支持直接运行python脚本。

3)C4D安装目录有非法字符(可能性很小,路径前后有双引号排除空格问题)。

Anlv 最后更新于 2023-05-16 18:30
Anlv 2023-05-15 12:06
#2


所有 Cinema 4D 执行脚本的动作,子程序都有脚本代码存在,可以另存为py文件后放入c4d的脚本目录使用。

Tips:现有的脚本都经过2023.2.1测试可用。

Homjie 2023-05-17 02:38
#3

1,我的C4D是在d盘(D:\AAA-soft\Big\C4D),不知道横杠符号"-"有没有影响,只是我使用其他的其他的功能,包括插件都是正常的。

2,py直接拖入C4D-显示"未知文件格式"

3,我安装了最新python3.10版本,所以应该不是python的问题


Anlv 回复 Homjie 2024-09-25 16:37 :

抱歉遗漏了这个问题,

新的更新中已经基于进程路径执行脚本代码,理论上应该是规避了路径的错误。

回复主贴