Autodesk 3ds Max, Blender).
Істотне полегшення праці аніматора гарантують лише середовища з пунктів 2. і 3, тому у разі gif-аніматорів використовується вже готове безліч зображень. У професійних же середовищах комп'ютерної анімації художнику не обов'язково промальовувати кожен кадр або аніматору його фіксувати, програма сама «обчислить» перехід зображення з одного положення в інше. Це називається Твінінг (tweening) - процес генерації проміжних кадрів між двома малюнками, що створює враження, що перший малюнок поступово перетворюється на другий. Розглянемо, як це робиться.
Уявімо тимчасову шкалу (кінострічку) як доріжку, що складається з окремих кадрів. Припустимо, що в кадрі №1 об'єкт повинен знаходитись зліва, а в кадрі №100 - справа. Ці два кадри відзначаються як ключові для даного об'єкта. У них він розташовується на початку і кінці руху (рис. 3). Всі інші кадри - проміжні - не вимагають фіксації об'єкта - зображення в них створить комп'ютерна програма. Вона сама вирахує, де і в який момент повинен стояти об'єкт. Зрозуміло, що якщо ми ходимо зробити пересування об'єкта по кривій, то і ключових кадрів доведеться зробити більше (або використовувати спеціальні засоби, що надаються програмою, для створення траєкторії).
Рис. 3. Положення об'єкта в першому кадрі кінострічки (ліворуч) і в сотий (праворуч).
1.6 Спеціальні ефекти
Спецефект, спеціальний ефект (англ. specialeffect, скор. SPFX, SFX або FX) - технологічний прийом в кінематографі, на телебаченні та в комп'ютерних іграх, застосовуваний для візуалізації сцен, які не можуть бути зняті звичайним способом або не існують у дійсності (наприклад, для візуалізації сцен битви космічних кораблів в далекому майбутньому).
Спецефекти також часто застосовуються, коли природна зйомка сцени занадто затратна в порівнянні зі спецефектом (наприклад, зйомка масштабного вибуху). Спецефекти застосовуються і для поліпшення або модифікації вже попередньо відзнятого матеріалу (наприклад, для накладення погодної карти як фон для телеведучого, що розповідає про прогноз погоди).
Спецефекти умовно поділяють на дві групи - візуальні і механічні ефекти. До візуальних відносяться оптичні ефекти (комбіновані зйомки), а також комп'ютерна графіка. Механічні (фізичні) спецефекти - це обробка матеріалів перед зйомкою. Сюди відноситься моделювання, піротехніка і технічні пристосування, спеціальний грим. Існують також звукові спецефекти.
Методи виконання спецефектів також застосовуються при виконанні монтажних переходів між монтажними кадрами, наприклад, поширений метод витіснення зображення.
графіка комп'ютерний анімація контент
2. ПРАКТИЧНА ЧАСТИНА
У розробленій грі використовується комп'ютерна 2D анімація. Вона призначена для анімації руху персонажів у 4 напрямках, для реалізації цього використовується 4 графічних файлу формату .png, що містять по 4 кадру, для кожного персонажа. Приклади файлів представлені на малюнках 4 і 5.
Рис. 4 Анімація руху вниз для головного героя
Рис. 5 Анімація рухи вліво для супротивника
Для створення анімації спочатку необхідно створити самого персонажа. За всі дії, пов'язані з персонажем відповідає клас Actor. Повний лістинг цього класу представлений у Додатку А.
За створення персонажа відповідає конструктор класу. У ньому знаходяться змінні, що відповідають за текстури, ширину і висоту, напрям, кількість життів і швидкість персонажів.
public Actor (string textureFolder, ContentManager cont, int countFrames, int hp, int speed, Physics gamePhysics)
{. content=cont; .DownWalk=cont.Load lt; Texture2D gt; (textureFolder + @ /downMove ) ;. UpWalk=cont.Load lt; Texture2D gt; (textureFolder + @ / upMove ) ;. LeftWalk=cont.Load lt; Texture2D gt; (textureFolder + @ /leftMove ) ;. RightWalk=cont.Load lt; Texture2D gt; (textureFolder + @ /rightMove );
. countFrames=countFrames;=DownWalk.Width/countFrames;// Ширина=DownWalk.Height;// Висота
=Vector2.Zero;=Vector2.Zero;=new Rectangle (0, 0, Width, Height) ;. hp=hp; .Speed ??= speed;
this.gamePhysics=gamePhysics;
//Ні з чим не перетинається=Vector4.Zero;
}
За анімацію персонажів відповідає методи heroAnimation (відповідає за переміщення кадрів), MoveUp, MoveDown, MoveLeft, MoveRight - відповідають за рух персонажа в 4 напрямках і DrawMotion (відповідає за анімацію персонажа).
void heroAnimation (float elapsedTim...