Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docs: Add Russian translation. #30291

Open
wants to merge 3 commits into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions docs/list.json
Original file line number Diff line number Diff line change
Expand Up @@ -1951,14 +1951,14 @@
"Полезные ссылки": "manual/ru/introduction/Useful-links"
},

"Next Steps": {
"How to update things": "manual/en/introduction/How-to-update-things",
"How to dispose of objects": "manual/en/introduction/How-to-dispose-of-objects",
"How to create VR content": "manual/en/introduction/How-to-create-VR-content",
"How to use post-processing": "manual/en/introduction/How-to-use-post-processing",
"Matrix transformations": "manual/en/introduction/Matrix-transformations",
"Animation system": "manual/en/introduction/Animation-system",
"Color management": "manual/en/introduction/Color-management"
"Следующие шаги": {
"Как обновить предметы": "manual/ru/introduction/How-to-update-things",
"Как избавиться от объектов": "manual/ru/introduction/How-to-dispose-of-objects",
"Как создавать VR-контент": "manual/ru/introduction/How-to-create-VR-content",
"Как использовать постобработку": "manual/ru/introduction/How-to-use-post-processing",
"Матричные преобразования": "manual/ru/introduction/Matrix-transformations",
"Анимационная система": "manual/ru/introduction/Animation-system",
"Управление цветом": "manual/ru/introduction/Color-management"
}

},
Expand Down
147 changes: 147 additions & 0 deletions docs/manual/ru/introduction/Animation-system.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<base href="../../../" />
<script src="page.js"></script>
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
<h1>Анимационная система ([name])</h1>

<h2>Обзор</h2>

<p class="desc">

В анимационной системе three.js вы можете анимировать различные свойства ваших моделей:
кости [page:SkinnedMesh skinned and rigged model], морфинговые цели, различные свойства материала (цвета,
непрозрачность, логические значения), видимость и преобразования. Анимированные свойства
могут быть плавными, исчез, затухал и деформировался. Весовые и временные масштабы
различных одновременных анимацию на одном и том же объекте, а также на разных объектах
можно менять независимо. Могут быть различные анимации на одном и на разных объектах
было синхронизировано.<br /><br />

Чтобы добиться всего этого в одной однородной системе, используется система анимации
three.js [link:https://github.com/mrdoob/three.js/issues/6881 has completely changed in 2015] (остерегайтесь устаревшей информации!), и теперь
он имеет архитектуру, аналогичную Unity/Unreal Engine 4. На этой странице представлен
краткий обзор основных компонентов системы и то, как они работают вместе.

</p>

<h3>Анимационные клипы</h3>

<p class="desc">

Если вы успешно импортировали анимированный 3D-объект (неважно, есть ли у него кости или
цели морфинга или и то, и другое) — например, экспортируя их из Blender с помощью
[link:https://github.com/KhronosGroup/glTF-Blender-IO glTF Blender exporter] и
загрузка его в сцену three.js с помощью [page:GLTFLoader] — одного из полей
вета должен быть массивом с именем "animations", содержащим [page:AnimationClip AnimationClips]
для этой модели (см. список возможных загрузчиков ниже).<br /><br />

Каждый `AnimationClip` обычно содержит данные для определенной активности объекта. Если
сетка — это персонаж, например, для цикла ходьбы может быть один AnimationClip, второй для
прыжка, третий для уклонения и так далее.

</p>

<h3>Дорожки ключевых кадров</h3>

<p class="desc">

Внутри такого `AnimationClip` данные для каждого анимированного свойства хранятся в
отдельный [page:KeyframeTrack]. Предполагая, что объект персонажа имеет [page:Skeleton skeleton],
одна дорожка ключевого кадра может хранить данные об изменениях положения кости предплечья.
C течением времени разные отслеживают данные об изменении ротации одной и той же кости,
третьи положение дорожки, вращение или масштабирование другой кости и так далее. Должно
быть ясно, что AnimationClip может состоять из множества таких дорожек.<br /><br />

Предполагая, что модель имеет цели морфинга (например, один морф мишень показывает
дружелюбное лицо, а другая — сердитое лицо), каждая дорожка содержит информация о том,
как [page:Mesh.morphTargetInfluences influence] определенного морфа меняется цель во время исполнения клипа.

</p>

<h3>Анимационный микшер</h3>

<p class="desc">

Сохраненные данные составляют только основу для анимации — фактическое
воспроизведение контролируется [page:AnimationMixer]. Вы можете представить это не
только как плеер для анимации, но и как как симуляция аппаратного обеспечения, такого как
настоящий микшерная консоль, который может управлять несколькими анимациями
одновременно, смешивая и объединяя их.

</p>

<h3>Анимационные действия</h3>

<p class="desc">

`AnimationMixer` сам по себе имеет очень мало (общих) свойств и методов, потому что он
можно контролироваться с помощью [page:AnimationAction AnimationActions]. Настроив `AnimationAction` вы можете
пределить, когда определенное `AnimationClip` будет воспроизведено, поставлено на паузу
или остановлнено на одном из микшеров, и если часто клип придется повторять, будь то
должно выполняться с затуханием или масштабированием времени, а также некоторыми
дополнительными вещами, такими как кроссфейдинг или синхронизация.

</p>

<h3>Группы объектов анимации</h3>

<p class="desc">

Если вы хотите, чтобы группа объектов получила общее состояние анимации, вы можете
использовать [page:AnimationObjectGroup].

</p>

<h3>Поддерживаемые форматы и загрузчики</h3>

<p class="desc">
Обратите внимание, что не все форматы моделей включают анимацию (особенно OBJ), и что
только некоторые loaders three.js поддерживают последовательности [page:AnimationClip AnimationClip].
Несколько Loaders, которые поддерживают этот тип анимации:
</p>

<ul>
<li>[page:ObjectLoader THREE.ObjectLoader]</li>
<li>THREE.BVHLoader</li>
<li>THREE.ColladaLoader</li>
<li>THREE.FBXLoader</li>
<li>[page:GLTFLoader THREE.GLTFLoader]</li>
</ul>

<p class="desc">
Обратите внимание, что 3ds max и Maya в настоящее время не могут экспортировать несколько
анимаций (то есть анимации, которые не являются на той же временной шкале)
непосредственно в один файл.
</p>

<h2>Пример</h2>

<code>
let mesh;

// Создайте AnimationMixer и получите список экземпляров AnimationClip
const mixer = new THREE.AnimationMixer( mesh );
const clips = mesh.animations;

// Обновляйте mixer для каждого кадра
function update () {
mixer.update( deltaSeconds );
}

// Воспроизведение определенной анимации
const clip = THREE.AnimationClip.findByName( clips, 'dance' );
const action = mixer.clipAction( clip );
action.play();

// Воспроизведение всех анимаций
clips.forEach( function ( clip ) {
mixer.clipAction( clip ).play();
} );
</code>

</body>
</html>
Loading
Loading