Hello guys,
I'm a newbie to C4D python script / plugin development and please allow me to ask you guys some points.
I tried to write a python tag plugin based on "py-look_at_camera_r13" example but I encountered the error like below when I attach the tag this plugin created.
I looked through this forum and I keep googling but I can't find the proper answer. I think the problem is related to description resource but I'm not familiar with these things. Python plugin development with resource files is pretty confusing...
So please help me! Any help would be greatly appreciated.
My code is below.
text_plugin.pyp
import os
import c4d
PLUGIN_ID = *******
class TestPlugin(c4d.plugins.TagData):
def Init(self, node):
self.InitAttr(node, bool, c4d.TESTPLUGIN_ENABLE)
node[c4d.TESTPLUGIN_ENABLE] = True
pd = c4d.PriorityData()
if pd is None:
raise MemoryError("Failed to create a priority data.")
pd.SetPriorityValue(c4d.PRIORITYVALUE_CAMERADEPENDENT, True)
node[c4d.EXPRESSION_PRIORITY] = pd
return True
def Execute(self, tag, doc, op, bt, priority, flags):
return c4d.EXECUTIONRESULT_OK
if __name__ == "__main__":
register_check = c4d.plugins.RegisterTagPlugin(id = PLUGIN_ID, str = "Test Plugin", info = c4d.TAG_EXPRESSION | c4d.TAG_VISIBLE, g = TestPlugin, description = "Ttestplugin", icon = None)
if register_check:
print("Test Plugin by beatgram")
c4d_symbols.h
enum
{
// End of symbol definition
_DUMMY_ELEMENT_
};
ttestplugin.h
#ifndef _Ttestplugin_H_
#define _Ttestplugin_H_
enum
{
TESTPLUGIN_ENABLE = 1000
}
#endif
ttestplugin.str
STRINGTABLE Ttestplugin
{
Ttestplugin "Test Plugin";
TESTPLUGIN_ENABLE "Enable";
}
ttestplugin.res
CONTAINER Ttestplugin
{
NAME Ttestplugin;
INCLUDE Texpression;
GROUP ID_TAGPROPERTIES
{
BOOL TESTPLUGIN_ENABLE { ANIM ON; }
}
}
Plugin structure
Test Plugin/
test_plugin.pyp
res/
c4d_symbols.h
description/
ttestplugin.h
ttestplugin.res
strings_en-US/
ttestplugin.str
---------- User Information ----------
Cinema 4D version: R23
OS: Windows 10
Language: Python