Open toons как увеличить картинку
Select File → Project Management → Save Default Settings: all the settings from the current scene will become the project default.
In the Files → Preferences… → Interface dialog you can set the following default units:
- The Unit is used to display all measures in text fields, and applied when moving or changing the size of stage objects.
- The Camera Unit is used to display and define the camera size in the Xsheet → Camera Settings… dialog (see Defining Camera Settings ).
- Choose File → Preferences… → Interface.
- Выполните одно из следующих действий:
- In the Unit option menu choose the unit you want to use as default.
- In the Camera Unit option menu choose the unit you want to use to express the camera size.

Even if a scene has been composited with a specific frame rate for a certain output, it is possible to render it out at a different frame rate by using the Stretch from FPS: To: option in the Output Settings… → More Settings dialog section (see Choosing the Output Settings ).

- Choose Xsheet → Scene Settings… → More.
- В текстовом поле Частота кадров установите значение частоты кадров.

The camera frame size can be expressed in any unit, but will be visualized in the default one chosen in the Preferences… → Interface dialog (see Choosing the Working Unit ).
- Размер камеры X (ширина) и Y (высота), выраженный в Единицах камеры по умолчанию (обычно в дюймах).
- A/R is the aspect ratio value resulting by dividing Width/Height.
- X and Y resolution Pixels of the resulting image frame seen by the camera.
- X and Y DPI values, calculated using the standard formulas: XDpi=XPx/Width, and YDpi=YPx/Height. This two fields can be forced to have the same value, by activating the equal-sign button between them.
- Установите разрешение и A/R для камеры, которую вы хотите сохранить.
- Нажмите кнопку «Добавить» справа от списка предустановленных камер.
- Присвойте имя разрешению камеры и нажмите кнопку ОК.
- Выберите разрешение камеры, которое вы хотите удалить, в списке предустановленных камер.
- Нажмите кнопку «Удалить» справа от списка предустановленных камер.
Color Calibration using Look-up Tables¶

OpenToonz can manage the previsualization of color through the use of 3D Look-up Tables. By applying a 3D LUT file, properly configured for the current display monitor, it will be possible to work on different color spaces, such as Rec. 709, DCI-P3 or Rec. 2020.
Once a 3DLUT is active, all colors displayed on Viewer, Combo Viewer, Flipbook, Color Model, Palette, and Style Editor will be corrected.
Currently, only the .3dl file format is supported. It must follow specification written here.
Currently, only the Windows version of OpenToonz can detect the currently connected monitor. For other platforms only one 3D LUT file can be applied for any type of monitors. (Even on Windows, connecting multiple different monitors at the same time is not supported for now. It will only identify the first registered monitor).
PLEASE NOTE: At the moment, using Plastic deformation together with this feature causes a display issue such that the deformed image is not shown in Camera Stand mode of the Viewer.
To apply a 3DLUT file for previsualizing color:
- Choose File → Preferences… → Interface.
- Activate the Color Calibration using 3D Look-up Table option.
- In the 3DLUT File for [monitor]: option, press the file browser button to navigate and select the desired .3DL file.
- Restart OpenToonz for the changes to take effect.
All the operations performed in the software can be undone by using the Edit → Undo command, even to go back for several steps.
To prevent most of the computer memory to be used by undo operations while you work, a situation that slows down the software performance, it is possible to set a limit for it by specifying the Undo Memory Size (MB) in the Files → Preferences… → General dialog.
After a certain amount of time the computer performance may worsen, as the memory gets fragmented because of the several writing and reading accesses. To prevent this behavior, the Minimize Raster Memory Fragmentation* option can be activated in the Files → Preferences… → General dialog. When activated, a section of computer memory is reserved and used only for operations concerning Raster images.
© Copyright : This page is licensed under a CC-BY-NC 4.0 Int. License Revision 21dd4874 .
OpenToonz: снаружи и внутри

V610 Undefined behavior. Check the shift operator ‘<<‘. The left operand ‘(- 1)’ is negative.
1. The type of the result is that of the promoted left operand. The behavior is undefined if the right operand is negative, or greater than or equal to the length in bits of the promoted left operand.
2. The value of E1 << E2 is E1 left-shifted E2 bit positions; vacated bits are zero-filled. If E1 has an unsigned type, the value of the result is E1 * 2^E2, reduced modulo one more than the maximum value representable in the result type. Otherwise, if E1 has a signed type and non-negative value, and E1*2^E2 is representable in the result type, then that is the resulting value; otherwise, the behavior is undefined.
Настройка сцены¶
Настройки сцены и настройки проекта по умолчанию¶
Когда вы начинаете работать над сценой, она автоматически будет принадлежать текущему проекту, наследуя ее настройки и папки по умолчанию. Таким образом, все сцены, принадлежащие проекту, создаются с одинаковыми настройками, что обеспечивает согласованность производства (см. Управление проектами ).
Настройки касаются различных задач, которые вы можете выполнять в OpenToonz, таких как сканирование или очистка, размер и разрешение камеры, частота кадров, параметры вывода и т.д. Доступ к ним можно получить в диалоговых окнах, которые можно открыть с помощью команд, доступных в соответствующей меню; например, команды настроек сканирования и очистки доступны в меню «Сканирование и очистка».
Настройки для определенной сцены всегда можно изменить независимо от других, и они будут автоматически сохранены при сохранении сцены.
Если вы хотите изменить значения по умолчанию, вы можете сохранить текущие настройки сцены по умолчанию, чтобы все новые сцены, созданные для этого проекта, имели эти значения.
Чтобы сохранить текущие настройки сцены как настройки проекта по умолчанию:
Select File → Project Management → Save Default Settings: all the settings from the current scene will become the project default.
Выбор рабочей единицы¶
Позиции, расстояния и размеры могут быть выражены в нескольких единицах измерения: дюймах, миллиметрах, сантиметрах, полях и пикселах.
Единица поля равна половине дюйма по горизонтальном измерении, и это зависит от A/R, установленного в справочной информации о полях в диалоговом окне «Настройки сцены …» для вертикального размера (см. Использование просмотрщика ). Например, если значение A/R равно 1,77778, два горизонтальных поля равны дюйму, а одно вертикальное поле равно дюйму, деленному на 1,77778.
In the Files → Preferences… → Interface dialog you can set the following default units:
- The Unit is used to display all measures in text fields, and applied when moving or changing the size of stage objects.
- The Camera Unit is used to display and define the camera size in the Xsheet → Camera Settings… dialog (see Defining Camera Settings ).
Вы также можете выразить значения в единицах, отличных от единицы по умолчанию, введя любую из следующих единиц и сокращений: in, inch, «, „“ (два апострофа), cm, mm, fld, field и px после входного значения сама. Как только значение введено, оно преобразуется в единицу измерения по умолчанию.
Если используется значение без определенной единицы, оно должно быть выражено в единице по умолчанию.
Чтобы установить рабочие единицы по умолчанию:
- Choose File → Preferences… → Interface.
- Выполните одно из следующих действий:
- In the Unit option menu choose the unit you want to use as default.
- In the Camera Unit option menu choose the unit you want to use to express the camera size.
Установка частоты кадров¶

Частота кадров — это количество кадров в секунду анимации, которое должно быть установлено в соответствии с типом вывода, который вы хотите воспроизвести, например, оно обычно должно быть 24 для кинематографического производства, 25 для вывода PAL или 30 для NTSC.
Текущую частоту кадров сцены можно установить в диалоговом окне «Настройки сцены …», и она отображается в нижней панели любой панели просмотра. В случае, если воспроизведение активировано, фактическая частота кадров отображается слева.
Помимо влияния на скорость воспроизведения при предварительном просмотре или рендере сцены, частота кадров также определяет количество кадров аудиофайла при его импорте в Xsheet (см. Создание звуковой дорожки ).
Even if a scene has been composited with a specific frame rate for a certain output, it is possible to render it out at a different frame rate by using the Stretch from FPS: To: option in the Output Settings… → More Settings dialog section (see Choosing the Output Settings ).

Чтобы установить частоту кадров:
- Choose Xsheet → Scene Settings… → More.
- В текстовом поле Частота кадров установите значение частоты кадров.
Определение настроек камеры¶

Диалоговое окно Настройка камеры… , которое можно открыть из меню Xsheet, содержит параметры для определения текущего размера и разрешения камеры.
Для каждой сцены можно определить более одной камеры, чтобы иметь разные выходные разрешения или для съемки только определенной области сцены (см. Использование схемы сцены ).
The camera frame size can be expressed in any unit, but will be visualized in the default one chosen in the Preferences… → Interface dialog (see Choosing the Working Unit ).
В OpenToonz Камера определяется различными параметрами:
- Размер камеры X (ширина) и Y (высота), выраженный в Единицах камеры по умолчанию (обычно в дюймах).
- A/R is the aspect ratio value resulting by dividing Width/Height.
- X and Y resolution Pixels of the resulting image frame seen by the camera.
- X and Y DPI values, calculated using the standard formulas: XDpi=XPx/Width, and YDpi=YPx/Height. This two fields can be forced to have the same value, by activating the equal-sign button between them.
При вставке значения в одно поле остальные изменяются соответственно по мере необходимости для согласованной камеры. Вы можете решить, какой набор значений должен считаться фиксированным OpenToonz. Кнопки в форме замка и переключатели в крайнем левом столбце параметров камеры позволяют выбрать, какой столбец и ряд значений должны быть сохранены OpenToonz, при этом изменяя другие при необходимости.
Кнопка «Использовать настройки текущего уровня» позволяет настроить камеру для точного кадрирования содержимого выбранного уровня. Просто нажмите эту кнопку, и OpenToonz рассчитает соответствующие значения для камеры.
Разрешения камеры также могут быть выбраны из списка предустановленных настроек камеры. Вы можете добавить любую предустановку камеры, которую вы определили, в список, а также удалить любую предопределенную камеру из него.
Предопределенный список камер сохраняется в файле reslist.txt , хранящемся в projectroot (см. Настройка Projectroot ).
Чтобы добавить предустановку разрешения камеры:
- Установите разрешение и A/R для камеры, которую вы хотите сохранить.
- Нажмите кнопку «Добавить» справа от списка предустановленных камер.
- Присвойте имя разрешению камеры и нажмите кнопку ОК.
Чтобы удалить предустановленное разрешение камеры:
- Выберите разрешение камеры, которое вы хотите удалить, в списке предустановленных камер.
- Нажмите кнопку «Удалить» справа от списка предустановленных камер.
Color Calibration using Look-up Tables¶

OpenToonz can manage the previsualization of color through the use of 3D Look-up Tables. By applying a 3D LUT file, properly configured for the current display monitor, it will be possible to work on different color spaces, such as Rec. 709, DCI-P3 or Rec. 2020.
Once a 3DLUT is active, all colors displayed on Viewer, Combo Viewer, Flipbook, Color Model, Palette, and Style Editor will be corrected.
Currently, only the .3dl file format is supported. It must follow specification written here.
Currently, only the Windows version of OpenToonz can detect the currently connected monitor. For other platforms only one 3D LUT file can be applied for any type of monitors. (Even on Windows, connecting multiple different monitors at the same time is not supported for now. It will only identify the first registered monitor).
PLEASE NOTE: At the moment, using Plastic deformation together with this feature causes a display issue such that the deformed image is not shown in Camera Stand mode of the Viewer.
To apply a 3DLUT file for previsualizing color:
- Choose File → Preferences… → Interface.
- Activate the Color Calibration using 3D Look-up Table option.
- In the 3DLUT File for [monitor]: option, press the file browser button to navigate and select the desired .3DL file.
- Restart OpenToonz for the changes to take effect.
Назначение памяти для операций отмены¶
All the operations performed in the software can be undone by using the Edit → Undo command, even to go back for several steps.
Операции отмены требуют компьютерной памяти для выполнения, и некоторые из них могут требовать больше памяти, чем другие, в зависимости от их сложности.
To prevent most of the computer memory to be used by undo operations while you work, a situation that slows down the software performance, it is possible to set a limit for it by specifying the Undo Memory Size (MB) in the Files → Preferences… → General dialog.
Как только предел достигнут, самые старые операции отмены будут отброшены, чтобы освободить место для новых.
Оптимизация использования памяти¶
При работе с растровыми изображениями, которые в основном представляют собой уровни анимации, сканируемые с помощью OpenToonz или GTS, может потребоваться интенсивное использование компьютерной памяти во время процессов очистки, рисования и рендера.
After a certain amount of time the computer performance may worsen, as the memory gets fragmented because of the several writing and reading accesses. To prevent this behavior, the Minimize Raster Memory Fragmentation* option can be activated in the Files → Preferences… → General dialog. When activated, a section of computer memory is reserved and used only for operations concerning Raster images.
Если вы работаете в основном с векторными изображениями, которые были нарисованы внутри OpenToonz, этот параметр должен быть деактивирован, так как в противном случае раздел зарезервированной памяти не будет использоваться компьютером.
Набор изменений для этой опции действителен только после перезапуска OpenToonz.
© Copyright : This page is licensed under a CC-BY-NC 4.0 Int. License Revision 933c62ce .
OpenToonz: снаружи и внутри

Прошло уже почти четыре года с тех пор, как PVS-Studio поверял исходный код OpenToonz. Этот проект является очень мощным инструментом для создания двухмерной анимации. За время с последней проверки с его помощью были созданы такие мультипликационные произведения, как Мэри и Ведьмин цветок, Бэтмэн-Нинзя, Промаре и другие. Раз большие студии продолжают пользоваться Toonz, то почему бы не проверить качество исходного кода еще раз?
С предыдущим разбором ошибок можно познакомиться в статье «Плохой код пакета для создания 2D-анимаций Toonz». В целом не похоже, что качество кода сильно повысилось, так что общее впечатление лучше не стало. К тому же, было обнаружено множество тех же ошибок, что и в предыдущей статье. Повторно мы их рассматривать не будем, благо выбрать новые есть из чего.
Впрочем, надо понимать, что наличие ошибок вовсе не обязательно мешает активно и продуктивно использовать программный продукт. Скорее всего, найденные ошибки живут в редко используемых или вовсе в неиспользуемых участках кода, иначе они были бы выявлены в процессе использования приложения и исправлены. Однако, это не значит, что статический анализ избыточен. Просто смысл статического анализа не в поиске старых и неактуальных ошибок, а в удешевлении процесса разработки. Многие ошибки при написании кода могут быть выявлены сразу, а не в процессе эксплуатации ПО. Соответственно, при регулярном использовании статического анализатора, ошибки исправляются на самом раннем этапе. Это экономит и время разработчиков, и деньги компании, и улучшает восприятие продукта пользователями. Согласитесь, неприятно постоянно отписывать разработчикам, что не работает то одно, то другое.
Фрагмент N1
V610 Undefined behavior. Check the shift operator ‘<<‘. The left operand ‘(- 1)’ is negative.
Не совсем ясно, чего автор кода хотел добиться здесь. Использование операторов сдвига с отрицательными числами приводит к неопределенному поведению. То, как поведение операторов сдвига описывается в стандарте, выглядит на первый взгляд немного запутанным, но все-таки сверимся с ним:
1. The type of the result is that of the promoted left operand. The behavior is undefined if the right operand is negative, or greater than or equal to the length in bits of the promoted left operand.
2. The value of E1 << E2 is E1 left-shifted E2 bit positions; vacated bits are zero-filled. If E1 has an unsigned type, the value of the result is E1 * 2^E2, reduced modulo one more than the maximum value representable in the result type. Otherwise, if E1 has a signed type and non-negative value, and E1*2^E2 is representable in the result type, then that is the resulting value; otherwise, the behavior is undefined.
Итак, поведение не определено, если правый или левый операнд имеет отрицательное значение. Если операнд имеет знаковый тип, неотрицательное значение и вмещается в результирующий тип, то поведение будет нормальным.
Фрагмент N2
V517 The use of ‘if (A) <. >else if (A) <. >‘ pattern was detected. There is a probability of logical error presence. Check lines: 156, 160. cameracapturelevelcontrol.cpp 156
Тут переменной m_offset присваиваются различные значения в зависимости от значения m_currentItem. Однако дублирование проверки на BlackSlider бессмысленно, и из тела условия можно увидеть, что в вычислении участвует переменная m_white. Заглянем в возможные значения для m_currentItem.

Оказывается, что возможно еще и значение WhiteSlider, на которое проверка как раз и не производится. Таким образом, вполне возможно, что какой-то из сценариев поведения был потерян из-за ошибки копипасты.
Фрагмент N3
V517 The use of ‘if (A) <. >else if (A) <. >‘ pattern was detected. There is a probability of logical error presence. Check lines: 784, 867. tpalette.cpp 784
Еще одна похожая ошибка. Здесь также у одинаковых условий разные тела, но сделать вывод о возможных вариантах значения tagName уже нельзя. Скорее всего, просто какой-то вариант был упущен, и в итоге мы имеем код, который никогда не будет выполнен.
Фрагмент N4
V547 Expression ‘chancount == 2’ is always true. psd.cpp 720
В эти проверки закралась небольшая логическая ошибка. В проверке под номером один chancount сравнивается с 1, а проверке номер 2 проверяется, что эта переменная меньше или равна 2. В итоге, к условию под номером три единственным возможным значением chancount является 2. К неправильной работе программы такая ошибка может и не приведет, но она усложняет чтение и понимание кода. Например, непонятно, зачем тогда else-ветка…
В целом рассматриваемая в этом фрагменте функция занимает чуть больше 300 строк кода и состоит из таких вот нагромождений условий и циклов.

Фрагмент N5
V614 Uninitialized variable ‘precSegmentIndex’ used. Consider checking the fifth actual argument of the ‘insertBoxCorners’ function. rasterselection.cpp 803
Возможно, здесь ошибка была допущена еще при инициализации переменных precSegmentIndex, currentSegmentIndex, startSegmentIndex, precChunkIndex. Разработчик мог рассчитывать, что инициализация последнего элемента -1 инициализирует тем же значением, что и другие переменные, объявленные в той же строке.
Фрагмент N6
V590 Consider inspecting the ‘s != «» && s == «color»’ expression. The expression is excessive or contains a misprint. cleanupparameters.cpp 416
Эта ошибка, даже скорее недочет, сама по себе приводит лишь к лишнему сравнению. Однако если мы взглянем на код в целом, станет ясно, что лишнее сравнение появилось в результате копипасты из предыдущих условий.

Такая лапша, занимающая десятки и более строк кода, вполне может хранить в себе еще какие-либо ошибки логики, и их поиск при таком форматировании может обернуться мучениями.
Фрагмент N7
V772 Calling a ‘delete’ operator for a void pointer will cause undefined behavior. pluginhost.cpp 1327
Тут само сообщение анализатора уже достаточно исчерпывающее: вызов оператора delete для указателя на тип void приводит к неопределенному поведению. Если была необходима универсальная функция для удаления интерфейсов, возможно её стоило сделать шаблонной.
Фрагмент N8
V568 It’s odd that ‘sizeof()’ operator evaluates the size of a pointer to a class, but not the size of the ‘m_xshHandle’ class object. tstageobjectcmd.cpp 455
Достаточно часто встречающаяся ошибка, которая может произойти как по невнимательности, так и по незнанию. Тут, скорее всего, было дело в невнимательности, поскольку в первом слагаемом this все-таки был разыменован. Если нужен размер объекта, то всегда нужно помнить, что указатель объекта нужно обязательно разыменовать. Иначе мы просто получаем размер самого указателя.
Фрагмент N9
V568 It’s odd that ‘sizeof()’ operator evaluates the size of a pointer to a class, but not the size of the ‘this’ class object. shaderfx.cpp 107
А тут, очевидно, забыли разыменовать указатель this. В итоге получаем не размер объекта, а размер указателя. Как результат, сравниваются только первые 4 или 8 байт (в зависимости от разрядности). Верный вариант кода:
Фрагмент N10
V554 Incorrect use of unique_ptr. The memory allocated with ‘new []’ will be cleaned using ‘delete’. screensavermaker.cpp 29
Часто забывают, что от типа, которым инстанцируется unique_ptr, зависит будет использоваться delete или delete[]. В итоге, если инстанцировать указатель как в рассматриваемом фрагменте, при этом выделяя память через new[], может возникнуть неопределенное поведение, так как освобождение будет происходить через delete. Чтобы этого избежать, нужно добавить к типу указателя квадратные скобки: std::unique_ptr<char[]>.
Фрагмент N11
V521 Such expressions using the ‘,’ operator are dangerous. Make sure the expression ‘m_to, m_from = it->first.getNumber()’ is correct. flipbook.cpp 509
Возможно, программист ожидал, что можно присвоить одно значение нескольким переменным, просто выписав их через запятую. Однако оператор «,» в С++ работает иным образом. В нем первый операнд выполняется, и результат «сбрасывается», далее вычисляется второй операнд. И, хотя переменная m_to инициализируется в последующем цикле, если что-то пойдет не так или кто-то неаккуратно произведет рефакторинг, возможно, что m_to так и не получит значения. И вообще, в любом случае этот код выглядит странно.
Фрагмент N12
V532 Consider inspecting the statement of ‘*pointer++’ pattern. Probably meant: ‘(*pointer)++’. trop.cpp 140
Маленький недочет, который может дополнительно путать человека, читающего код. Инкремент, как и задумывалось, смещает указатель. Однако после этого происходит бессмысленное разыменование. Лучше просто написать pix++.
Фрагмент N13
V773 The function was exited without releasing the ‘autoCloseUndo’ pointer. A memory leak is possible. vectortapetool.cpp 575
Подобных предупреждений было больше 20. Зачастую где-то в конце функции производится освобождение памяти, но для более ранних return этот необходимый шаг оказывается пропущен. Так и здесь. В конце указатель передается TUndoManager::manager()->add(), который берет на себя удаление указателя, однако выше присутствует return для которого этот метод забыли позвать. Так что всегда стоит помнить о своих указателях при любом выходе из функции, а не просто вписывать удаление куда-то в конец блока или перед последним return.
Однако, если для сокращенной версии кода, эта ошибка выглядит очевидной, то в реальном более запутанном коде, отследить такую проблему может быть затруднительно. Тут и поможет никогда неустающий статический анализатор.
Фрагмент N14
V522 Dereferencing of the null pointer ‘region’ might take place. palettecmd.cpp 94
Тут можно предположить, что разработчик перепутал правила short-circuit evaluation и подумал, что если первая проверка указателя вернет false, то далее разыменования такого нулевого указателя не произойдёт. Однако для оператора «||» все совсем наоборот.
Фрагмент N15
V561 It’s probably better to assign value to ‘ca’ variable than to declare it anew. Previous declaration: xshcellmover.cpp, line 319. xshcellmover.cpp 323
V561 It’s probably better to assign value to ‘cb’ variable than to declare it anew. Previous declaration: xshcellmover.cpp, line 320. xshcellmover.cpp 324xshcellmover.cpp 323
Возможно еще одна копипаста, но с не совсем обычной сутью ошибки. Обращение к x было заменено на y, но вот тип переменной в начале строки, из-за которого и происходит локальная передекларация, убрать забыли. В итоге, вместо смены ориентации позиций для исходных ca и cb, создаются новые локальные ca и cb, с которыми далее ничего не происходит. А вот внешние ca и cb продолжают свое существование со значениями для x.
Заключение N1
В процессе написания статьи мне стало интересно потыкать и попробовать что-нибудь сделать в этой программе. Может мне повезло, но странное поведение не заставило себя ждать: зависание, отображение моих манипуляций с планшетом после отвисания и странный квадрат после нажатия Ctrl+Z. К сожалению, повторить это поведение у меня не вышло.

Но на самом деле, несмотря на такое поведение и привитие привычки регулярно нажимать Ctrl+S, OpenToonz впечатляет своим масштабом и функционалом. Все-таки не зря им пользуются и крупные студии.
И мое художество как бонус:
Заключение N2
В случае OpenToonz очевидно, что пытаться исправить сразу все обнаруженные анализатором ошибки станет большой задачей, которая застопорит процесс разработки. Для таких случаев существует подход «Массового подавления», когда технический долг заносится в suppress-базу анализатора и дальнейшая работа с анализатором проводится уже на основе свежих срабатываний. Ну а если появляется время, то можно и поразбирать технический долг.
P.S. Напоминаю, что разработчики открытых проектов могут использовать бесплатный вариант лицензирования PVS-Studio.

Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Victoria Khanieva. OpenToonz.
Open toons как увеличить картинку
Open toons как увеличить картинку
-
  /  Блог   /  
- OpenToonz: Как экспортировать анимацию в уменьшенном разрешении
OpenToonz: Как экспортировать анимацию в уменьшенном разрешении
OpenToonz: снаружи и внутри

V610 Undefined behavior. Check the shift operator ‘<<‘. The left operand ‘(- 1)’ is negative.
1. The type of the result is that of the promoted left operand. The behavior is undefined if the right operand is negative, or greater than or equal to the length in bits of the promoted left operand.
2. The value of E1 << E2 is E1 left-shifted E2 bit positions; vacated bits are zero-filled. If E1 has an unsigned type, the value of the result is E1 * 2^E2, reduced modulo one more than the maximum value representable in the result type. Otherwise, if E1 has a signed type and non-negative value, and E1*2^E2 is representable in the result type, then that is the resulting value; otherwise, the behavior is undefined.
V517 The use of ‘if (A) else if (A) ‘ pattern was detected. There is a probability of logical error presence. Check lines: 156, 160. cameracapturelevelcontrol.cpp 156

V517 The use of ‘if (A) else if (A) ‘ pattern was detected. There is a probability of logical error presence. Check lines: 784, 867. tpalette.cpp 784
V547 Expression ‘chancount == 2’ is always true. psd.cpp 720

V614 Uninitialized variable ‘precSegmentIndex’ used. Consider checking the fifth actual argument of the ‘insertBoxCorners’ function. rasterselection.cpp 803
V590 Consider inspecting the ‘s != «» && s == «color»’ expression. The expression is excessive or contains a misprint. cleanupparameters.cpp 416

V772 Calling a ‘delete’ operator for a void pointer will cause undefined behavior. pluginhost.cpp 1327
V568 It’s odd that ‘sizeof()’ operator evaluates the size of a pointer to a class, but not the size of the ‘m_xshHandle’ class object. tstageobjectcmd.cpp 455
V568 It’s odd that ‘sizeof()’ operator evaluates the size of a pointer to a class, but not the size of the ‘this’ class object. shaderfx.cpp 107
V554 Incorrect use of unique_ptr. The memory allocated with ‘new []’ will be cleaned using ‘delete’. screensavermaker.cpp 29
V521 Such expressions using the ‘,’ operator are dangerous. Make sure the expression ‘m_to, m_from = it->first.getNumber()’ is correct. flipbook.cpp 509
V532 Consider inspecting the statement of ‘*pointer++’ pattern. Probably meant: ‘(*pointer)++’. trop.cpp 140
V773 The function was exited without releasing the ‘autoCloseUndo’ pointer. A memory leak is possible. vectortapetool.cpp 575
V522 Dereferencing of the null pointer ‘region’ might take place. palettecmd.cpp 94
V561 It’s probably better to assign value to ‘ca’ variable than to declare it anew. Previous declaration: xshcellmover.cpp, line 319. xshcellmover.cpp 323
V561 It’s probably better to assign value to ‘cb’ variable than to declare it anew. Previous declaration: xshcellmover.cpp, line 320. xshcellmover.cpp 324xshcellmover.cpp 323


Select File → Project Management → Save Default Settings: all the settings from the current scene will become the project default.
In the Files → Preferences… → Interface dialog you can set the following default units:
- The Unit is used to display all measures in text fields, and applied when moving or changing the size of stage objects.
- The Camera Unit is used to display and define the camera size in the Xsheet → Camera Settings… dialog (see Defining Camera Settings ).
- Choose File → Preferences… → Interface.
- Выполните одно из следующих действий:
- In the Unit option menu choose the unit you want to use as default.
- In the Camera Unit option menu choose the unit you want to use to express the camera size.

Even if a scene has been composited with a specific frame rate for a certain output, it is possible to render it out at a different frame rate by using the Stretch from FPS: To: option in the Output Settings… → More Settings dialog section (see Choosing the Output Settings ).

- Choose Xsheet → Scene Settings… → More.
- В текстовом поле Частота кадров установите значение частоты кадров.

The camera frame size can be expressed in any unit, but will be visualized in the default one chosen in the Preferences… → Interface dialog (see Choosing the Working Unit ).
- Размер камеры X (ширина) и Y (высота), выраженный в Единицах камеры по умолчанию (обычно в дюймах).
- A/R is the aspect ratio value resulting by dividing Width/Height.
- X and Y resolution Pixels of the resulting image frame seen by the camera.
- X and Y DPI values, calculated using the standard formulas: XDpi=XPx/Width, and YDpi=YPx/Height. This two fields can be forced to have the same value, by activating the equal-sign button between them.
- Установите разрешение и A/R для камеры, которую вы хотите сохранить.
- Нажмите кнопку «Добавить» справа от списка предустановленных камер.
- Присвойте имя разрешению камеры и нажмите кнопку ОК.
- Выберите разрешение камеры, которое вы хотите удалить, в списке предустановленных камер.
- Нажмите кнопку «Удалить» справа от списка предустановленных камер.
Color Calibration using Look-up Tables¶

OpenToonz can manage the previsualization of color through the use of 3D Look-up Tables. By applying a 3D LUT file, properly configured for the current display monitor, it will be possible to work on different color spaces, such as Rec. 709, DCI-P3 or Rec. 2020.
Once a 3DLUT is active, all colors displayed on Viewer, Combo Viewer, Flipbook, Color Model, Palette, and Style Editor will be corrected.
Currently, only the .3dl file format is supported. It must follow specification written here.
Currently, only the Windows version of OpenToonz can detect the currently connected monitor. For other platforms only one 3D LUT file can be applied for any type of monitors. (Even on Windows, connecting multiple different monitors at the same time is not supported for now. It will only identify the first registered monitor).
PLEASE NOTE: At the moment, using Plastic deformation together with this feature causes a display issue such that the deformed image is not shown in Camera Stand mode of the Viewer.
To apply a 3DLUT file for previsualizing color:
- Choose File → Preferences… → Interface.
- Activate the Color Calibration using 3D Look-up Table option.
- In the 3DLUT File for [monitor]: option, press the file browser button to navigate and select the desired .3DL file.
- Restart OpenToonz for the changes to take effect.
All the operations performed in the software can be undone by using the Edit → Undo command, even to go back for several steps.
To prevent most of the computer memory to be used by undo operations while you work, a situation that slows down the software performance, it is possible to set a limit for it by specifying the Undo Memory Size (MB) in the Files → Preferences… → General dialog.
After a certain amount of time the computer performance may worsen, as the memory gets fragmented because of the several writing and reading accesses. To prevent this behavior, the Minimize Raster Memory Fragmentation* option can be activated in the Files → Preferences… → General dialog. When activated, a section of computer memory is reserved and used only for operations concerning Raster images.
© Copyright : This page is licensed under a CC-BY-NC 4.0 Int. License Revision 21dd4874 .
Open toons как увеличить картинку
Как масштабировать изображения до размера экрана в Pygame
Select File → Project Management → Save Default Settings: all the settings from the current scene will become the project default.
In the Files → Preferences… → Interface dialog you can set the following default units:
- The Unit is used to display all measures in text fields, and applied when moving or changing the size of stage objects.
- The Camera Unit is used to display and define the camera size in the Xsheet → Camera Settings… dialog (see Defining Camera Settings ).
- Choose File → Preferences… → Interface.
- Выполните одно из следующих действий:
- In the Unit option menu choose the unit you want to use as default.
- In the Camera Unit option menu choose the unit you want to use to express the camera size.

Even if a scene has been composited with a specific frame rate for a certain output, it is possible to render it out at a different frame rate by using the Stretch from FPS: To: option in the Output Settings… → More Settings dialog section (see Choosing the Output Settings ).

- Choose Xsheet → Scene Settings… → More.
- В текстовом поле Частота кадров установите значение частоты кадров.

The camera frame size can be expressed in any unit, but will be visualized in the default one chosen in the Preferences… → Interface dialog (see Choosing the Working Unit ).
- Размер камеры X (ширина) и Y (высота), выраженный в Единицах камеры по умолчанию (обычно в дюймах).
- A/R is the aspect ratio value resulting by dividing Width/Height.
- X and Y resolution Pixels of the resulting image frame seen by the camera.
- X and Y DPI values, calculated using the standard formulas: XDpi=XPx/Width, and YDpi=YPx/Height. This two fields can be forced to have the same value, by activating the equal-sign button between them.
- Установите разрешение и A/R для камеры, которую вы хотите сохранить.
- Нажмите кнопку «Добавить» справа от списка предустановленных камер.
- Присвойте имя разрешению камеры и нажмите кнопку ОК.
- Выберите разрешение камеры, которое вы хотите удалить, в списке предустановленных камер.
- Нажмите кнопку «Удалить» справа от списка предустановленных камер.
Color Calibration using Look-up Tables¶

OpenToonz can manage the previsualization of color through the use of 3D Look-up Tables. By applying a 3D LUT file, properly configured for the current display monitor, it will be possible to work on different color spaces, such as Rec. 709, DCI-P3 or Rec. 2020.
Once a 3DLUT is active, all colors displayed on Viewer, Combo Viewer, Flipbook, Color Model, Palette, and Style Editor will be corrected.
Currently, only the .3dl file format is supported. It must follow specification written here.
Currently, only the Windows version of OpenToonz can detect the currently connected monitor. For other platforms only one 3D LUT file can be applied for any type of monitors. (Even on Windows, connecting multiple different monitors at the same time is not supported for now. It will only identify the first registered monitor).
PLEASE NOTE: At the moment, using Plastic deformation together with this feature causes a display issue such that the deformed image is not shown in Camera Stand mode of the Viewer.
To apply a 3DLUT file for previsualizing color:
- Choose File → Preferences… → Interface.
- Activate the Color Calibration using 3D Look-up Table option.
- In the 3DLUT File for [monitor]: option, press the file browser button to navigate and select the desired .3DL file.
- Restart OpenToonz for the changes to take effect.
All the operations performed in the software can be undone by using the Edit → Undo command, even to go back for several steps.
To prevent most of the computer memory to be used by undo operations while you work, a situation that slows down the software performance, it is possible to set a limit for it by specifying the Undo Memory Size (MB) in the Files → Preferences… → General dialog.
After a certain amount of time the computer performance may worsen, as the memory gets fragmented because of the several writing and reading accesses. To prevent this behavior, the Minimize Raster Memory Fragmentation* option can be activated in the Files → Preferences… → General dialog. When activated, a section of computer memory is reserved and used only for operations concerning Raster images.
© Copyright : This page is licensed under a CC-BY-NC 4.0 Int. License Revision 21dd4874 .
OpenToonz: снаружи и внутри

V610 Undefined behavior. Check the shift operator ‘<<‘. The left operand ‘(- 1)’ is negative.
1. The type of the result is that of the promoted left operand. The behavior is undefined if the right operand is negative, or greater than or equal to the length in bits of the promoted left operand.
2. The value of E1 << E2 is E1 left-shifted E2 bit positions; vacated bits are zero-filled. If E1 has an unsigned type, the value of the result is E1 * 2^E2, reduced modulo one more than the maximum value representable in the result type. Otherwise, if E1 has a signed type and non-negative value, and E1*2^E2 is representable in the result type, then that is the resulting value; otherwise, the behavior is undefined.