https://github.com/movimentum/movideos
Sources for Movimentum youtube movies
https://github.com/movimentum/movideos
manim manim-animations manim-python youtube youtube-video
Last synced: about 1 month ago
JSON representation
Sources for Movimentum youtube movies
- Host: GitHub
- URL: https://github.com/movimentum/movideos
- Owner: movimentum
- License: other
- Created: 2024-11-10T19:09:36.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-12T21:23:27.000Z (over 1 year ago)
- Last Synced: 2025-01-11T20:44:07.597Z (over 1 year ago)
- Topics: manim, manim-animations, manim-python, youtube, youtube-video
- Language: Python
- Homepage:
- Size: 1.69 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Описание
Здесь выложены коды, сопроводительные материалы и инструменты, которые
использовались при создании видео для youtube-канала
[Movimentum](https://www.youtube.com/@movicave)
и теперь открыто распространяются под лицензией
[CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/deed).
Математические анимации созданы с помощью движка
[manim-community](https://www.manim.community/)
# Требования
`manim 0.19.1`
`python 3.11, 3.13`
Имейте в виду, что со временем старые сцены могут прекратить рендериться из-за
изменения различных компонентов (например, в папке `custom`),
которые необходимы для них.
# Использование
Склонируйте репозиторий на локальный компьютер. Анимируемые сцены находятся
в папках `_{год}` и `_test_scenes`.
Для успешной сборки следует добавить путь до корневого каталога репозитория
к переменной окружения `PYTHONPATH`.
Автор использует дистрибутив-экосистему [Анаконда](https://www.anaconda.com/)
и работает в python-среде разработки **Spyder**, используя spyder-projects.
В этом случае Spyder сам выставит нужное значение в `PYTHONPATH`.
Для удобного рендеринга видео есть два способа. В обоих случаях результат
сохраняется в папке `media` корневого каталога.
### Создание видео в 4k
Запустите скрипт `render_scene.py`, указав в нём относительный путь до файла
сцены и имя сцены
```python
fpath = '_test_scenes/creatures/creature_unity.py'
sname = 'CreatureUnityTest'
```
### Быстрый просмотр в низком качестве
Внизу каждого скрипта со сценой обычно будет бойлерплейт типа
```python
#%% Тестовый рендер
if __name__ == '__main__':
dev_render(__file__, SceneName)
```
Требуется поменять `SceneName` на имя интересующей сцены и запустить скрипт.
# Дополнительные возможности
## Пропуск рендеринга
При создании сложных сцен удобно пропускать их части при рендеринге для
экономии времени. Для этого существует метод сцены
`self.next_section('section_name', skip_animations=True)`
В данном репозитории имеется вспомогательный класс `SceneExtension`, который
поможет не просто игнорировать рендеринг конкретного раздела, но и даст
возможность разом игнорировать все затребованные в коде пропуски рендеринга.
```python
from manim import *
from movi_ext import *
# Если требуется рендерить все разделы не зависимо от того, что указано в
# параметрах self.next_section, нужно выставить здесь True
SceneExtension.render_all_sections = False
class SceneWithSectionRendering(Scene, SceneExtension): # наследуем класс-помощник
def construct(self):
self.next_section('first_part', skip_animations=SceneExtension.skip(False))
# Эта часть не будет рендериться при использовании dev_render
self.next_section('first_part', skip_animations=SceneExtension.skip(True))
# А эта часть будет
```