"Assertion failed!"error while using CPlusPlus OP in TouchDesigner
2423 단어 C++TouchDesigner
소개
TouchDesigner의 CPlusPlus OP는 setupParameters
라는 멤버 함수를 사용하여 모든 변수를 운영자 속성에 표시하고 런타임에 변경할 수 있습니다.
이 멤버 함수의 이름 지정과 관련하여 규칙이 있으며 시행 착오가 필요하므로 메모합니다.
변경 전
속도의 최대 값으로 Float 유형의 maxVel
라는 변수를 속성에 표시하고 싶습니다..cpp
파일의 setupParameters
에는 다음 내용이 나와 있습니다.
void
CPlusPlusDATExample::setupParameters(OP_ParameterManager* manager, void* reserved1)
{
{
OP_NumericParameter
np.name = "maxVel";
np.label = "maxVel";
np.defaultValues[0] = 1.0;
np.minSliders[0] = -10.0;
np.maxSliders[0] = 10.0;
OP_ParAppendResult res = manager->appendFloat(np);
assert(res == OP_ParAppendResult::Success);
}
}
오류 내용
빌드는 잘 작동하지만 디버깅과 같은 TouchDesigner를 실행할 때 다음과 같은 오류 메시지가 팝업으로 표시됩니다.
메시지의 내용은 Expression: res == OP_ParAppendResult::Success
에서 Assertion failed가 발생한 것처럼 분명히 .cpp
파일의 OP_ParAppendResult res = manager->appendFloat(np);
가 실패하고 있기 때문입니다.
변경 후
시행 착오의 결과, op.name
의 명명에 의해 에러가 발생하고있는 것을 알았다.
규칙은 첫 번째 문자 만 대문자 공백을 포함하지 않는 문자열이어야합니다.
변경 전에는 C++를 의식한 변수명으로 하고 있었던 것이 좋지 않은 것 같다.
또한 np.label
에는 규칙이없는 것으로 보이며 임의의 문자열 일 수 있으므로 시인성을 중시하고 변경했습니다.
void
CPlusPlusDATExample::setupParameters(OP_ParameterManager* manager, void* reserved1)
{
// speed
{
OP_NumericParameter np;
np.name = "Maxvel"; // 一文字目のみ大文字
np.label = "Maximum Velocity"; // 表記は自由
np.defaultValues[0] = 1.0;
np.minSliders[0] = -10.0;
np.maxSliders[0] = 10.0;
OP_ParAppendResult res = manager->appendFloat(np);
assert(res == OP_ParAppendResult::Success);
}
}
실행 결과
np.name
를 변경하면 위의 오류를 피할 수 있습니다.
실행 결과는 변수의 표시 이름으로 np.label
를 저장하고 파이썬에서 호출 할 때 변수 이름으로 소문자 np.name
를 저장합니다.
Reference
이 문제에 관하여("Assertion failed!"error while using CPlusPlus OP in TouchDesigner), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/syoukera/items/90e3d7c95aaa5593f353
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
속도의 최대 값으로 Float 유형의
maxVel
라는 변수를 속성에 표시하고 싶습니다..cpp
파일의 setupParameters
에는 다음 내용이 나와 있습니다.void
CPlusPlusDATExample::setupParameters(OP_ParameterManager* manager, void* reserved1)
{
{
OP_NumericParameter
np.name = "maxVel";
np.label = "maxVel";
np.defaultValues[0] = 1.0;
np.minSliders[0] = -10.0;
np.maxSliders[0] = 10.0;
OP_ParAppendResult res = manager->appendFloat(np);
assert(res == OP_ParAppendResult::Success);
}
}
오류 내용
빌드는 잘 작동하지만 디버깅과 같은 TouchDesigner를 실행할 때 다음과 같은 오류 메시지가 팝업으로 표시됩니다.
메시지의 내용은 Expression: res == OP_ParAppendResult::Success
에서 Assertion failed가 발생한 것처럼 분명히 .cpp
파일의 OP_ParAppendResult res = manager->appendFloat(np);
가 실패하고 있기 때문입니다.
변경 후
시행 착오의 결과, op.name
의 명명에 의해 에러가 발생하고있는 것을 알았다.
규칙은 첫 번째 문자 만 대문자 공백을 포함하지 않는 문자열이어야합니다.
변경 전에는 C++를 의식한 변수명으로 하고 있었던 것이 좋지 않은 것 같다.
또한 np.label
에는 규칙이없는 것으로 보이며 임의의 문자열 일 수 있으므로 시인성을 중시하고 변경했습니다.
void
CPlusPlusDATExample::setupParameters(OP_ParameterManager* manager, void* reserved1)
{
// speed
{
OP_NumericParameter np;
np.name = "Maxvel"; // 一文字目のみ大文字
np.label = "Maximum Velocity"; // 表記は自由
np.defaultValues[0] = 1.0;
np.minSliders[0] = -10.0;
np.maxSliders[0] = 10.0;
OP_ParAppendResult res = manager->appendFloat(np);
assert(res == OP_ParAppendResult::Success);
}
}
실행 결과
np.name
를 변경하면 위의 오류를 피할 수 있습니다.
실행 결과는 변수의 표시 이름으로 np.label
를 저장하고 파이썬에서 호출 할 때 변수 이름으로 소문자 np.name
를 저장합니다.
Reference
이 문제에 관하여("Assertion failed!"error while using CPlusPlus OP in TouchDesigner), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/syoukera/items/90e3d7c95aaa5593f353
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
시행 착오의 결과,
op.name
의 명명에 의해 에러가 발생하고있는 것을 알았다.규칙은 첫 번째 문자 만 대문자 공백을 포함하지 않는 문자열이어야합니다.
변경 전에는 C++를 의식한 변수명으로 하고 있었던 것이 좋지 않은 것 같다.
또한
np.label
에는 규칙이없는 것으로 보이며 임의의 문자열 일 수 있으므로 시인성을 중시하고 변경했습니다.void
CPlusPlusDATExample::setupParameters(OP_ParameterManager* manager, void* reserved1)
{
// speed
{
OP_NumericParameter np;
np.name = "Maxvel"; // 一文字目のみ大文字
np.label = "Maximum Velocity"; // 表記は自由
np.defaultValues[0] = 1.0;
np.minSliders[0] = -10.0;
np.maxSliders[0] = 10.0;
OP_ParAppendResult res = manager->appendFloat(np);
assert(res == OP_ParAppendResult::Success);
}
}
실행 결과
np.name
를 변경하면 위의 오류를 피할 수 있습니다.
실행 결과는 변수의 표시 이름으로 np.label
를 저장하고 파이썬에서 호출 할 때 변수 이름으로 소문자 np.name
를 저장합니다.
Reference
이 문제에 관하여("Assertion failed!"error while using CPlusPlus OP in TouchDesigner), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/syoukera/items/90e3d7c95aaa5593f353
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여("Assertion failed!"error while using CPlusPlus OP in TouchDesigner), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/syoukera/items/90e3d7c95aaa5593f353텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)