ria pc game
fle game engine - движок для создания игр
fle game engine - движок для создания игр


Balls and holes PC game / Balls and Holes PC игра
Вакансии
Игродельня
Сегодня
18 февраля 2019 7:01
Вход Регистрация Забыли пароль ?

fle game generator - fle генератор игр - fly snow 3d падающий снег - расширяемый генератор визуальных образов, с музыкой mp3, ogg и генерацией игр
fle game generator - fle генератор игр - fly snow 3d падающий снег версия 1.0.3.1 от 13.12.2016 - расширяемый генератор визуальных образов и игр Представляет независимое приложение, позволяющее генерировать визуальные образы, эффекты погоды (снег, дождь), другие эффекты частиц - звезды, цветовые пятна, шарики, пузырьки, а также создавать игры. Может выполняться как обычное directx 9c
подробнее...

Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
Статьи сайта
megainformatic - Уроки Photoshop - Чудеса - Коллаж от нуля - страница 4

megainformatic - Купить Уроки Photoshop - Чудеса

megainformatic - Уроки Photoshop

megainformatic - Уроки Photoshop - Рисуем волка из мультфильма

megainformatic - Уроки Photoshop - Рисуем волка из мультфильма стр 2

megainformatic - Уроки Photoshop - Рисуем волка из мультфильма стр 3

megainformatic - Уроки Photoshop - Рисуем волка из мультфильма стр 4

megainformatic - Уроки Photoshop - Анимируем волка из мультфильма

megainformatic - Уроки Photoshop - Анимируем волка из мультфильма стр 2

megainformatic - Уроки Photoshop - Анимируем волка из мультфильма стр 3

megainformatic - Уроки Photoshop - Анимируем волка из мультфильма стр 4

megainformatic - Эмулятор игры Ну, Погоди!

megainformatic - Оплата заказа через Сбербанк

megainformatic - Пример игры с исходным кодом Donuts3D

megainformatic - Как создать игру ВЕСЕЛЫЙ БУКВОЕЖКА - программируем сами

megainformatic - Как создать игру ВЕСЕЛЫЙ БУКВОЕЖКА - создаем игровую оболочку

megainformatic - Открытый Полный Исходный код игры Дорога в Город

megainformatic - Как создать игру - Веселый Единственный Буквоежка - программируем основу будущей игры

megainformatic - Как создать игру - Веселый Единственный Буквоежка - выводим заставку

megainformatic - Как создать игру - Веселый Единственный Буквоежка - игровое меню

megainformatic - Как создать игру - Веселый Единственный Буквоежка - движение и анимация героя

Как Создать игру ВЕБ - Веселый Единственный Буквоежка - Программируем сами

Как Создать игру ВЕБ - Веселый Единственный Буквоежка - Программируем сами

megainformatic - Примеры моих работ

megainformatic - Музыкальные темы

megainformatic - Уроки Photoshop - Чудеса

megainformatic - Купить Уроки Photoshop - Чудеса

megainformatic - Онлайн Обучение, Репетитор

megainformatic - Уроки Photoshop - Рисуем и Анимируем

megainformatic - Уроки Photoshop - Рисуем и Анимируем - Урок 1 - Старт

megainformatic - Уроки Photoshop - Рисуем и Анимируем на AllSoft.ru

megainformatic - DirectX 9c - Изучаем пример MultAnimation

megainformatic - megainformatic cms Система Управления Контентом

megainformatic - Темы для WordPress

megainformatic - Что нужно для создания собственного сайта ?

megainformatic - Макет дизайна Вашего сайта

скачать megainformatic cms

megainformatic - Итоги 2010 года

megainformatic - Что нужно для создания собственного сайта ?

megainformatic - как создать инсталлятор для собственной cms

megainformatic - Новости - страница 2

Нововведения в megainformatic cms

Web Администрирование

Уроки Верстки

Система автоматизированной е-майл рассылки

Система автоматизированной е-майл рассылки

megainformatic - Выгрузка файла на сайт

megainformatic - выпадающее меню на html и css

megainformatic - Использование checkbox

Краеугольная особенность работы Web-form на примере смены состояния checkbox

Технологии WEB

Технологии WEB - AJAX-запросы

Часто Задаваемые Вопросы

Продукты

Проблемы с кодировками при отображении страниц

игра Нечто: Необъяснимое Нить Накала - "в плену желаний"

подробнее

     
  Создание своих Тем для WordPress  
     
  Введение  
     
 

Начнём с того, что, как мне кажется, будет вам интересно узнать из области сайтостроения.

Итак, даже если у Вас есть собственная CMS (самописная, как говорят), то всегда полезно знать, как устроены профессиональные CMS. Их великое множество - Joomla, Drupal, ModX, Dle, WordPress и т. д.

Стоит ли осваивать их все или достаточно выбрать какую то одну и прорабатывать её ?

Если Вы новичок в сайтостроении, каким был совсем недавно и я, то лучше для начала остановить свой выбор на чём-то одном, и заняться его изучением.

На данном этапе я хотел бы познакомиться с созданием простого шаблона для CMS WordPress. Собственно этим мы сейчас и займёмся.

 
     
 

Для начала конечно вам необходимо установить denver и wordpress.

Ну а далее - вы займётесь собственно изучением данного урока.

 
     
 

Предположим, что Вы установили wordpress локально на свой компьютер в следующую папку -

C:\WebServers\home\localhost\www\wordpress_ru

 
     
  Если заглянуть в папку установленного wordpress, то там вы найдёте такой путь - wp-content\themes  
     
  Это и есть папка, внутри которой Вы можете размещать собственные шаблоны сайтов для WordPress. В WordPress они именуются Темами.  
     
 

Так что же нужно для того, чтобы создать собственную тему для WordPress ?

А нужно нам следующее:

 
     
  внутри папки themes создаем папку, например, mytheme  
     
 

Открываем эту созданную папку и внутри неё создаем такие файлы -

index.php

header.php

sidebar.php

footer.php

style.css

loop.php

functions.php

 
     
  Кроме того создайте здесь папку images, в которую будете помещать изображения, необходимые для оформления внешнего вида вашей темы.  
     
  Далее, вооружившись каким либо редактором, например, DreamWeaver или даже обычным Блокнотом добавляем в наши файлы следующий код  
     
  В файл index.php  
     
 

<?php
/**
* Главный файл шаблона темы
*
* Это изменяемый файл шаблона для темы WordPress
* и один из 2 обязательных файлов для темы (второй - это style.css).

* Используется для отображения страницы, в том случае, когда
* неопределены другие дополнительные варианты
* т. е., он совмещает вывод главной страницы, когда нет файла home.php.
* Более подробно: http://codex.wordpress.org/Template_Hierarchy
*
* @package WordPress
* @subpackage MyTheme
* @since MyTheme 1.0
*/

get_header(); ?>

<div id="container">
<div id="content" role="main">

<?php
/* Запуск цикла вывода постов блога.
* Если нужно переопределить данную возможность в дочерней теме тогда

* включите в папку новой темы файл loop-index.php для использования особенностей, описанных в нём.
*/

get_template_part( 'loop', 'index' );
?>
</div><!-- #content -->
</div><!-- #container -->

<?php get_sidebar(); ?>
<?php get_footer(); ?>

 
     
  В файл style.css мы добавим такой код  
     
  style.css  
     
  Файлы loop.php и functions.php также можете взять в готовом виде -  
     
  loop.php  
     
  functions.php  
     
  В файл header.php  
     
 

<?php
/**
* Заголовок (Header) для нашей темы.
*
* Отображает содержимое секции <head> и всё до блока <div id="main">
*
* @package WordPress
* @subpackage MyTheme
* @since MyTheme 1.0
*/

?><!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>" />
<title><?php
/*
* Выводим тег <title> в зависимости от содержимого страницы.
*/

global $page, $paged;

wp_title( '|', true, 'right' );

// Имя нашего сайта (блога).
bloginfo( 'name' );

// Добавляем описание для домашней/начальной страницы.
$site_description = get_bloginfo( 'description', 'display' );
if ( $site_description && ( is_home() || is_front_page() ) )
echo " | $site_description";

// Если нужно - добавляем номер страницы:
if ( $paged >= 2 || $page >= 2 )
echo ' | ' . sprintf( __( 'Page %s', 'twentyten' ), max( $paged, $page ) );

?></title>
<link rel="profile" href="http://gmpg.org/xfn/11" />
<link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo( 'stylesheet_url' ); ?>" />
<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>" />
<?php
/* Мы добавим немного JavaScript на страницы с комментариями для
* формирования поддержки сайтов с подпроцессными (threaded) комментариями (когда они используются).
*/

if ( is_singular() && get_option( 'thread_comments' ) )
wp_enqueue_script( 'comment-reply' );

/* Всегда ставим вызов wp_head() до закрытия тега </head>
* вашей темы, либо вы нарушите подключаемость многих плагинов (plugins), которые обычно используют этот обработчик (hook)
* для добавления элементов в <head> таких как
* стили (styles), скрипты (scripts), и мета теги (meta tags).
*/

wp_head();
?>
</head>

<body <?php body_class(); ?>>
<div id="wrapper" class="hfeed">
<div id="header">
<div id="masthead">
<div id="branding" role="banner">
<?php $heading_tag = ( is_home() || is_front_page() ) ? 'h1' : 'div'; ?>
<<?php echo $heading_tag; ?> id="site-title">
<span>
<a href="<?php echo home_url( '/' ); ?>" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a>
</span>
</<?php echo $heading_tag; ?>>
<div id="site-description"><?php bloginfo( 'description' ); ?></div>

<?php
// Проверка условия, что это пост или страница, имеет сокращенное представление (thumbnail), либо располагается целиком
if ( is_singular() &&
has_post_thumbnail( $post->ID ) &&
(
/* $src, $width, $height */ $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'post-thumbnail' ) ) &&
$image[1] >= HEADER_IMAGE_WIDTH ) :
//Изображение в заголовке страницы
echo get_the_post_thumbnail( $post->ID, 'post-thumbnail' );
else : ?>
<img src="<?php header_image(); ?>" width="<?php echo HEADER_IMAGE_WIDTH; ?>" height="<?php echo HEADER_IMAGE_HEIGHT; ?>" alt="" />
<?php endif; ?>
</div><!-- #branding -->

<div id="access" role="navigation">
<?php
/* Разрешить экранным ридерам (screen readers)/ текстовым браузерам (text browsers) пропустить отображение меню навигации и получить все равно корректный вариант отображения*/ ?>
<div class="skip-link screen-reader-text"><a href="#content" title="<?php esc_attr_e( 'Skip to content', 'twentyten' ); ?>"><?php _e( 'Skip to content', 'twentyten' ); ?></a></div>
<?php
/* Наше навигационное меню. Если оно не заполнено, wp_nav_menu переключается к состоянию wp_page_menu. К меню применяется основная позиция из возможных. Если ничего не присвоено, используется меню с наименьшим ID*/ ?>
<?php wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'primary' ) ); ?>
</div><!-- #access -->
</div><!-- #masthead -->
</div><!-- #header -->

<div id="main">

 
     
  В файл sidebar.php  
     
 

<?php
/**
* Сайдбар (Sidebar) включает области для основных и вторичных виджетов (widget).
*
* @package WordPress
* @subpackage MyTheme
* @since MyTheme 1.0
*/

?>

<div id="primary" class="widget-area" role="complementary">
<ul class="xoxo">

<?php
/* Когда мы вызываем функцию dynamic_sidebar(), она будет разделять
* виджеты на области для этих виджетов. Если вместо этого функция возвратит false,
* тогда sidebar просто не существует, поэтому будет отображен
* сайдбар с содержимым по умолчанию.
*/

if ( ! dynamic_sidebar( 'primary-widget-area' ) ) : ?>

<li id="search" class="widget-container widget_search">
<?php get_search_form(); ?>
</li>

<li id="archives" class="widget-container">
<h3 class="widget-title"><?php _e( 'Archives', 'twentyten' ); ?></h3>
<ul>
<?php wp_get_archives( 'type=monthly' ); ?>
</ul>
</li>

<li id="meta" class="widget-container">
<h3 class="widget-title"><?php _e( 'Meta', 'twentyten' ); ?></h3>
<ul>
<?php wp_register(); ?>
<li><?php wp_loginout(); ?></li>
<?php wp_meta(); ?>
</ul>
</li>

<?php endif; // end primary widget area ?>
</ul>
</div><!-- #primary .widget-area -->

<?php
// A second sidebar for widgets, just because.
if ( is_active_sidebar( 'secondary-widget-area' ) ) : ?>

<div id="secondary" class="widget-area" role="complementary">
<ul class="xoxo">
<?php dynamic_sidebar( 'secondary-widget-area' ); ?>
</ul>
</div><!-- #secondary .widget-area -->

<?php endif; ?>

 
     
  В файл footer.php  
     
 

<?php
/**
* Шаблон для отображения подвала (footer).
*
* Содержит закрывающий блок id=main тег и весь контент
* после него. Вызывает sidebar-footer.php для нижележащих виджетов.
*
* @package WordPress
* @subpackage MyTheme
* @since MyTheme 1.0
*/

?>
</div><!-- #main -->

<div id="footer" role="contentinfo">
<div id="colophon">

<?php
/* Сайдбар в футере? Вы можете настроить
* ваш футер на 4 столбца виджетов.
*/

get_sidebar( 'footer' );
?>

<div id="site-info">
<a href="<?php echo home_url( '/' ) ?>" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" rel="home">
<?php bloginfo( 'name' ); ?>
</a>
</div><!-- #site-info -->

<div id="site-generator">
<?php do_action( 'twentyten_credits' ); ?>
<a href="<?php echo esc_url( __('http://wordpress.org/', 'twentyten') ); ?>"
title="<?php esc_attr_e('Semantic Personal Publishing Platform', 'twentyten'); ?>" rel="generator">
<?php printf( __('Proudly powered by %s.', 'twentyten'), 'WordPress' ); ?>
</a>
</div><!-- #site-generator -->

</div><!-- #colophon -->
</div><!-- #footer -->

</div><!-- #wrapper -->

<?php
/* Всегда используем функцию wp_footer() до закрывающего тега </body>
* вашей темы, иначе вы повредите многие плагины, которые
* обычно используют этот обработчик (hook) для обращения к JavaScript файлам.
*/

wp_footer();
?>
</body>
</html>

 
     
  Теперь Вам остается только активировать созданную тему через админку WordPress и увидеть результат !  
     
  В следующем нашем уроке мы разберем как создается меню навигации.  
     
подробнее

Искатели приключений - Зеленый Шарик

Midnight Castle, Принцесса Таверн это игры.

Принцесса Таверн игра

Midnight Castle game

Можно говорить лишь о том, что знаешь.

Узнать - поиграть.

И дальше уже выбор: понравилось / не понравилось.

А мне понравилась идея живого мыслящего океана из фильма Солярис, а вот
фильм к сожалению совершенно не понравился. Не такая видно подача информации.

Солярис фильм

Но это дело вкуса.

Если Вы знаете, фильм снят по роману Станислава Лема. Автор тоже не в восторге от
этого фильма.

Ключевая фраза: фильм про злой космос. Лем же считает, как и все романтики,
что он добрый (космос).

Итак, бизнес ( Принцесса Таверн ), полуночные замки ( Midnight Castle ) и немного самоиронии
погружают нас в обыденное ничто.

Это путь в никуда. Тупиковый.

Впрочем, не ищите в нем глубокого смысла. Его нет. Разум отдыхает. Прагматизма ноль.

Кстати, интересно, а какая это сила надиктовала Лему его роман про Солярис ?

Может наш, земной океан, тоже умеет мыслить ?

Только мы об этом не знаем ? Не способны постичь.

И только космос космос и космос вокруг. Для кого-то он злой, для других добрый.

Злой для тех, кто там побывал ? А добрый - для тех, кто мечтает побывать ?

Те кто никогда не смогут там побывать должны впасть в депрессию ?

Может все-таки смогут ?

Я заговорил о бизнесе, ну или о любой работе, которая приносит нам наш хлеб.

Если у вас есть таверна ( Принцесса Таверн ), Вы всецело занимаетесь этим делом.

Вкалываете, получая какой-то доход (или не получая его - если разоритесь).



Определенная стратегия все же приводит к успеху.

А полуночный замок ( Midnight Castle ) ?

Ну это как всегда жажда тайны, неизвестность, ночь и ... таинственный замок.

В котором Вы никогда не были.



Кстати, я хотел поговорить совсем не об играх, и даже не про те, которые указал, просто к слову пришлось, взяты, как говорится, навскидку, наугад.



Гораздо чаще я погружаюсь в недра архитектуры кода и разговариваю на непонятном непосвященному языке, да не с кем-нибудь, а с самим его величество ЭВМом !

Вот и сейчас, я без устали твержу ему, что он должен сделать.

Потом пробую, смотрю правильно ли я выразил то, что хотел и нет ли явных ошибок или логических неувязок.

Потому что ОН то у нас, почти никогда не допускает ошибок, а вот я вынужден подстраиваться под его правила.

Наградой мне будет сотворенное чудо.



Но чей-то голос твердит: экшена хочу, экшена хочу в 3д.

Будет тебе экшн (action).

Нужно бродить и искать врагов. Нашел - убей или они убьют тебя.

Это шутер.

В смысле shooter, а не какой-то человек, который решил пошутить и насмешить.

Хотя в реальности кто-то может и пошутить, т. е. поиграть в шутер.



Думается, чел, что у тебя энтузиазма хоть отбавляй.

Если ты все еще играешь в шутеры.

А я давно уже не играю, потому что достойные все прошел, а недостойные недостойны моего внимания. Увы.

Гта, хитмэн давно себе лежат на полочке. Фаркрай иногда попадается под руку.

Но что поделаешь, времена уже не те.



Оказывается есть она - еще одна напасть - зовется ЗЕЛЕНЫЙ ШАРИК.

В казуалки уже играешь ?

Хуже.

Я их делаю.

И что, кто-нибудь играет уже в них ?

Конечно, а как же, крутые шутеры или что там у нас, ага стратегии RTS, быстро приедаются.

Или нет ?



Да кому как.

Но не каждый может посвящать играм часы и даже десятки и сотни часов.

А вот в казуалки или в обычные простенькие мини-игры, где играть можно в любое удобное и
неудобное время и прерваться в любой момент.

Или не играть.

А например поспать или посидеть просто так у окна.

Не Windows конечно, а у обычного окна со стеклом.

Но что-то мне кажется не получится из ЗЕЛЕНОГО ШАРИКА очередной казуалки.

Да не потому что интереса нет, а как раз наоборот.

Вот уже он и с зомби встретился, и растение какое-то у себя взрастил.

И Дэйв Сумасшедший, который из Растения против Зомби уже к нему приходил.

Вообщем Костя Коробкин.

Каникулы Зеленого Шарика.

Каникулы Зеленого Шарика Сумасшедший Дэйв

Каникулы Зеленого Шарика Костя Коробкин

Каникулы Зеленого Шарика Горохострел

Каникулы Зеленого Шарика  Горохострел Ядовитые горошины

Каникулы Зеленого Шарика Ядовитые горошины

Каникулы Зеленого Шарика Петька и Василий Иванович

Каникулы Зеленого Шарика Подводный мир Тайны Морских Глубин

Каникулы Зеленого Шарика Подводный мир Тайны Морских Глубин

Каникулы Зеленого Шарика Остров Сокровищ

А что там будет я еще и сам не знаю, но чувствую, что получается уже как-то так
занимательно даже. И хочется продолжать.

Надеюсь я посеял у Вас в душе толику интереса и Вы нашли для себя что-то полезное, что могло бы Вас заинтересовать.



Спасибо за внимание !



подробнее

Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 7

Предлагаем вашему вниманию онлайн-комикс Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp).

анонсы других продуктов

онлайн-комикс Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - страница 7

если кликать картинку она будет последовательно меняться в размерах от 620 до 2048 пиксель.

[страница 1] [страница 2] [страница 3] [страница 4] [страница 5]  [страница 6] [страница 7] 

подробнее

megainformatic.ru Синицин А. С. Шарики на лифте - Как создать игру - Создание фона заднего плана

 

 

к содержанию

21.09.2016, 11.10.2016

 

Ну что ж, пришла пора нам научиться рисовать фон для нашей игры. Фон заднего плана не должен заслонять собой вид персонажей. Т. е. персонажи на его фоне не должны теряться. Поэтому задача заднего плана - с одной стороны придать игре соответствующую атмосферу - место где мы находимся, а с другой не быть слишком броским и ярким - чтобы персонажи (у нас в игре - это шарики) на таком фоне были хорошо видны и сразу же бросались в глаза, а не терялись.

Приведем примеры правильных и неправильных фонов.

 

Шарики на лифте - Как создать игру - Создание фона заднего плана - Правильный фон, выгодно оттеняющий действующих лиц (шариков)

Шарики на лифте - Как создать игру - Создание фона заднего плана - Неправильный фон, действующие лица на его фоне теряются.

 

 

Конечно приведенный второй пример, является вымышленным. В игре Шарики на лифте, такого не будет. Но он сделан, чтобы продемонстрировать Вам то, как фон должен контрастировать с персонажами.

 

 

Фон должен содержать по-возможности цвета и оттенки, которых почти нет у персонажей. Формы и объекты элементов фона должны по возможности отличаться от форм имеющихся у персонажей. Т. е. как на приведенном рисунке - если персонажи круглые и ярко-красные, то фон не должен содержать в себе таких элементов. Если же по задумке это необходимо, тогда сделано это должно быть так, чтобы максимально завуалировать такие элементы, а акцент сделать именно на персонажах.

 

 

Поверьте, если Ваши герои будут теряться на игровом фоне, то вряд ли игрок сможет что-то понять в происходящем, если конечно это не является задумкой данного уровня :))) Где игрок на таком скрадывающем персонажей фоне должен их отыскать. :)))) Но такое требуется крайне и крайне редко !

 

 

Что ж, если с этим всё ясно - посмотрим какие есть фоны в игре Шарики на лифте и научимся создавать свои.

Шарики на лифте - Как создать игру - Создание фона заднего плана - какие есть фоны в игре Шарики на лифте

 

 

Из приведенного выше рисунка становится понятным, что должны присутствовать 3 изображения: back_bg.jpg - самый дальний от наблюдателя фон - задний план; middle_bg.tga - фон среднего плана; front_bg.tga - фон переднего плана;

 

 

Обратите внимание, что back_bg.jpg - это jpg файл - и его использование тут возможно благодаря тому, что самый дальний - задний план не будет содержать в себе никаких прозрачных элементов - он полностью заполнит всё пространство; middle_bg.tga - и front_bg.tga - это уже tga файлы, с альфа-маской, поскольку данные фоны не являются сплошь непрозрачными, в них даже больше прозрачного, чем непрозрачного и это необходимо для того, чтобы - средний фон показал игроку как бы стену дома, поросшую растениями, но с окнами, а фон для переднего плана - это какие-то кусты и цветники на подоконниках и балконах; Теперь понятно для чего у этих фонов много прозрачного пустого пространства.

 

 

Итак, создадим свой фон заднего плана. Создаем новое изображение 1200 х 1200 пиксель, 72 dpi.

Шарики на лифте - Как создать игру - Создание фона заднего плана - создадим свой фон заднего плана. Создаем новое изображение 1200 х 1200 пиксель, 72 dpi.

 

 

Обращаю Ваше внимание на то, что фон должен быть цикличен. Т. е. по вертикали и горизонтали края плавно переходят друг в друга без резких и явных границ.

 

 

При рисовании у меня уже выработались определенные правила, поэтому я просто буду описывать их, а Вы - учиться, а после применения на практике и вырабатывать свои собственные правила.

 

 

Сначала я подыскиваю идею - подходящую картинку, которая послужит основой для будущего фона. Если эта картинка представляет фото или рисунок - это уже хорошая основа. Если же она у Вас пока только в голове - попытаемся изобразить её в виде контуров.

 

 

Шарики на лифте - Как создать игру - Создание фона заднего плана - идея картинки в виде контуров

Далее будем постепенно прорисовывать картинку шаг за шагом.

 

 

Картинка состоит из элементов - домов, групп деревьев, участков дороги и т. п. Но я не буду подробно описывать процесс создания всего, что есть, т. к. он будет циклически повторяющимся. Вместо этого я сделаю акцент на примере создания этих элементов, а потом уже покажу финальный результат. Научившись создавать каждый вид элемента Вы легко сможете создать любые его варриации, а также объединить элементы в одну общую картинку.

 

 

Для удобства ориентирования можно на отдельном слое отметить элементы цифрами. А файлы сохранять как element_1, element_2 и т. д. Тогда при сборке итоговой картинки вы уже не запутаетесь.

 

 

Шарики на лифте - Как создать игру - Создание фона заднего плана - метки элементов на картинке

 

 

Вот как например может выглядеть дом, в окружающей его зелени деревьев. Я намеренно показал контуры пурпурными, а не черными. Так их легче отделять от фонового заполнения.

 

Шарики на лифте - Как создать игру - Создание фона заднего плана - дом, в окружающей его зелени деревьев

 

 

На итоговой картинке контуры будут черными. Вот такими.

 

Шарики на лифте - Как создать игру - Создание фона заднего плана - дом, в окружающей его зелени деревьев - черные контуры

 

 

 

 

Продемонстрирую фрагмент того, что у вас может получиться.

 

Шарики на лифте - Как создать игру - Создание фона заднего плана - дом, в окружающей его зелени деревьев

 

 

 

 

Нашу картинку делаем бесшовной - т. е. стираем, при помощи инструмента Ластик, аккуратно границы. В итоге это может выглядеть вот так -

 

 

 

 

 

Шарики на лифте - Как создать игру - Окончательный вариант фона

 

 

 

 

В игре он не будет виден весь целиком. Поэтому особых требований к фону нет. Но всё же он и не должен быть слишком уж безобразным. Если это примерно соблюдается и если у вас есть достаточно времени для его прорисовки - то можно добиться максимально желаемого качества. У меня получилось так - мы видим на скриншоте как части фона заднего плана видно сквозь просветы в фонах переднего и среднего планов.

 

 

 

 

 

Шарики на лифте - Как создать игру - мы видим на скриншоте как части фона заднего плана видно сквозь просветы в фонах переднего и среднего планов.

 

 

Другие фоны - для среднего и переднего плана рисуются по примерно такому же принципу. Вы можете посмотреть как это сделано в игре или придумать какие-то свои варианты.

 

В следующем уроке мы вставим созданную нами на протяжение трех уроков графику - прыгающий шарик и нарисованный фон в игру.

 

 

 

к содержанию

  [Все уроки 3ds max] [Галерея моделей] [далее]  
 
 

Основы 3D-анимации, экспорт скелетной анимации

дата публикации: 9.10.2007

Цели и задачи статьи: показать способы создания анимации в 3Ds Max 7.0 или выше (можно использовать и ранние версии, но с оговорками указанными ниже) и использования ее в Delphi DirectX - играх.

Системные требования

- Наличие среды Delphi 6, 7 или выше для компиляции исходного кода, наличие 3Ds Max 7.0 или выше для создания моделей и анимаций;

- Операционная система Windows 98SE/2000/XP sp2 или выше с установленным DirectX 8.1 или выше;

- минимум ПК уровня Pentium III с тактовой частотой 1000 МНz или выше, RAM 128 Mb и выше, 32 Mb Video RAM и выше, DirectX-совместимая звуковая карта, мышь.

- Рекомендуется наличие DirectX SDK 8.1 или выше (для изучения DirectX);

- Терпение, старание и желание создавать компьютерные игры.

Введение

Наверное нет смысла объяснять что игра без анимации - это всё равно что паровоз без колес. В современных играх применяется 2D и 3D анимация. И если 2D анимация у Вас не вызывает особых вопросов значит Вы готовы к изучению основ 3D анимации.

В DirectX SDK Вы найдете примеры реализации различных видов анимации - от 2D до 3D. 2D анимация и способ ее реализации показан в примере игры из DirectX SDK 8.1 адаптированной автором на Delphi 6-7 - Donuts3D. Ее можно с успехом применять для анимированных текстур (например вода, небо, лава и т.п.) и 2D-объектов используемых в 3D-сцене. Всё что требуется для создания 2D-анимации - это набор кадров и их последовательное отображение.

От программиста требуется только выборка нужных кадров из специально подготовленного для этих целей изображения и показ их на экране в нужной последовательности с нужной скоростью.

пример 2D-анимации - шагающий человечек

Ситуация с 3D-анимацией несколько иная. В 3D анимации учавствует уже не плоское изображение (хотя может учавствовать и оно), а трехмерная модель состоящая из некоторого количества объектов - вершин, граней, примитивов. Также как и в случае с 2D анимацией - мы имеем модель находящуюся в разных состояниях во времени. Эти состояния - кадры (frames). Анимацию можно производить непрерывно и постепенно меняя состояние нужного объекта в каждом кадре, а можно и ограничиться так называемыми ключевыми кадрами (keyframes).

пример 3D анимации - шагающий RoBoo

Ключевые кадры - это положения задаваемые для модели аниматором, а все промежуточные между ними кадры программа просчитывает сама используя линейную или другой вид интерполяции.

Итак, любая анимация 3D модели - это трансформация (смещение, вращение, масштабирование - Translate, Rotate, Scale) суб-объектов модели (вершин, граней, примитивов). Условно можно выделить следующие виды анимации -

- вершинная (или морфинг) - анимируются трансформации отдельных вершин.

- объектная - модель создается как набор простых примитивов любой формы и конфигурации, но таких чтобы каждый из них можно было анимировать простой трансформацией - смещением, вращением, масштабированием. Таким образом вершины модели разбиваются на логические группы - в виде отдельных составных ее частей.

- скелетная (Skinned Mesh) - относительно новый вид анимации (по крайней мере для новичков в 3D-программировании) включает в себя концепцию использования скелета. Суть ее заключается в том, что вся модель снова представляется как единый меш (Mesh). Внутрь меша внедрена другая - более примитивная модель называемая скелетом. Скелет состоит из отдельных примитивов называемых костями (Bones). Каждая вершина привязана к определенной кости (костям). Степень влияния отдельных костей на вершину называется весовым коэффициентом (Weights), представляется числом с плавающей точкой (тип Single) и лежит в диапазоне от 0 до 1. Сумма всех весов костей влияющих на данную вершину должна составлять 1. Кости совершенно не влияющие на данную вершину имеют весовой коэффициент для нее 0, влияющие >0. В Direct3D8 на вершину не должно влиять более 4 костей, а на практике часто встречается влияние только лишь одной кости. Анимируя скелет мы тем самым анимируем и связанные с данными костями вершины.

Все эти виды анимаций применяются в 3D-играх и имеют свои достоинства и недостатки. Морфинг - этой самый простой вид анимации с точки зрения объема необходимых вычислений. Но объем получаемых выходных файлов для анимации морфингом слишком большой. Поэтому для сокращения объема применяют ряд оптимизаций - уменьшение FPS (Frames Per Second) - частоты кадров, уменьшение количества вершин модели и различные способы упаковки информации об анимации, применение межкадровой интерполяции. Объектная анимация более удобна за счет сокращения объема выходных данных, но требует большей работы с моделями и больше вычислений. Скелетная анимация в свою очередь требует еще больше предварительной работы над моделью и еще большего количества вычислений, но объем анимированной модели значительно сокращается. Кроме того, скелетную анимацию можно использовать не только для одной, но и для многих других подобных моделей, что еще больше сокращает объем необходимых медиа-файлов игры.

Примеры анимаций

Анимация методом морфинга показана в DirectX SDK в примере приложения Dolphin. Адаптированное для Delphi приложение представлено в базовых уроках Delphi DirectX.

Примеры объектной и скелетной анимации мы с Вами создадим на протяжении данной статьи.

Создаем анимированные модели

Сначала поговорим о том, в какой формат будем экспортировать анимированную модель из 3Ds Max.

Для экспорта анимаций в произвольный формат можно воспользоваться возможностями MAXScript языка встроенного в 3Ds Max или даже написать собственный плагин. Но для этого Вам понадобится MAX SDK.

Если будем экспортировать в формат X с использованием плагина из DirectX SDK 9.0 - DXExtensionsMax.gup то столкнемся с проблемой того, что объектная анимация экспортируется без проблем (для Direct3D9), а вот скелетная - увы почему-то не поддерживается (даже для Direct3D9!). Для анимации вершин нужно выводить каждый кадр в отдельный файл, а затем все это оптимизировать и упаковывать в один файл с анимированной цепочкой кадров.

Поэтому для экспорта скелетной анимации придется писать свой плагин или экспортер. Можно на первых порах воспользоваться и сторонними экспортерами, например, Я нашел в Интернете экспортер PandaDXExport. Этот экспортер устанавливается точно также как и DXExtensionsMax.gup Но он требует очень аккуратного обращения. К сожалению отсутствует исходник экспортера. Но это уже личное дело его автора, потому что экспортер распространяется бесплатно! Подготовка моделей для экспорта должна вестись очень аккуратно, иначе это приведет к нарушениям в полученной экспортированной модели. Ниже Мы попытаемся разобраться в проблемах экспорта с помощью PandaDXExport и обойти возможные ошибки и сложности.

Для экспериментов с экспортом Вам понадобится следующая модель - roboo (60 Кб). шагающий двуног

Это просто "Шагающий двуног" - бокс с вычлененными при помощи Bevel и Extrude двумя конечностями, с внедренным скелетом из двух конечностей и базовой кости. Также содержатся объекты Dummy как захваты для управления анимированием. О моделировании персонажей будет рассказано в отдельных статьях посвященных урокам по 3Ds Max.

 
Итак, предположим, что Вы уже скачали архив roboo и распаковали например, в папку SkinnedMeshExperim, установили плагин PandaDXExport.
 
Откройте файл roboo_anim_go.max из 3DS Max 7 (или выше) и попробуйте экспортировать его командой File > Export > Panda DirectX (название этого пункта будет зависеть от того, что вы пропишете в конфигурационном файле plugin.ini в папке установленного 3Ds Max).
 
Экспорт скелетной анимации Пандой
 
Когда Вы введете подходящее имя и нажмете кнопку Save (Сохранить) перед Вами появится окно параметров экспорта Панды. Задайте следующие параметры экспорта -
 
 
 
 
 
И нажмите ОК. При этом модель должна благополучно экспортироваться в файл X с именем, которое Вы указали.
 
Для проверки результата экспорта можно воспользоваться утилитой MeshView из DirectX SDK 8.1 или DirectX Viewer из DirectX SDK 9.
 
Кроме того, поскольку целью нашего экспорта является использование анимаций в Delphi DirectX 3D-игре, мы проверим проигрывание экспортированной анимации в приложении SkinnedMesh. (1,6 Mb).
 
Для компиляции и исполнения Вам понадобятся файлы из архива с ОБЩИМ КОДОМ (772 Кб). Замечания по компиляции и исполнению читайте в readme.txt вложенный внутри данного архива!
 

В папке архива SkinnedMesh после распаковки вы найдете папку Media. В ней содержатся три примера анимации - nx4.x, tiny.x и robooPDX.x.

nx4 - подлодка из проекта Тайны Морских Глубин: Операция Тайфун, показана анимация объектов - вращающихся винтов;

tiny.x - оригинал из DirectX SDK 8.1, 9;

robooPDX.x - то, что вы должны получить в процессе экспорта модели из файла roboo_anim_go.max

 

Для проверки данных анимированных моделей откройте файл проекта SkinnedMesh.dpr из среды Delphi, откройте unit SkinnedMeshUnit.pas, в классе CMyD3DApplication найдите реализацию функции InitDeviceObjects найдите строчку кода m_szPath := 'Media\tiny.x';

И задайте другую модель из имеющихся - nx4.x или robooPDX.x

Перекомпилируйте приложение и запустите полученный исполнимый файл. Если получаете ошибку об отсутствии файла D3DX81ab.dll скопируйте этот файл из папки с ОБЩИМ КОДОМ в папку с исполнимым файлом SkinnedMesh.exe и снова запустите приложение SkinnedMesh.exe.

 
пример работающего приложения
 
Roboo экспортировался в Х без проблем. Остановимся теперь на экспорте более сложных, но близких к реальным игровым приложениям примерах моделей.
 
Модели должны быть очень аккуратно подготовлены к экспорту. Что это значит? Это значит что любые огрехи в анимации или моделировании непременно скажутся на качестве выходной модели если вообще не приведут к ее порче. Чтобы продемонстрировать Вам неверный экспорт и ошибки скачайте архив с некорректной моделью - uncorrect_model (115 Кб).
 
Распакуйте архив в какую-нибудь папку и откройте файл human_skeleton_animate_go.max из 3Ds Max. Попробуйте экспортировать в формат X экспортером PandaDXExport.
 
Полученную модель проверьте в приложении SkinnedMesh или утилитами MeshView из DirectX SDK 8.1 или DirectX Viewer из DirectX SDK 9.
 
пример некорректной модели
 
Налицо сразу 3 ошибки - часть головы оторвана и движется вместе с рукой; периодически мелькает нулевая позиция меша - с разведенными в стороны руками; отсутствует текстура.
 
Корни данной некорректной модели лежат в основе ее создания. Чтобы избежать создания таких ошибок рассмотрим процесс подготовки модели и ее скелета более подробно.
 
[далее]
 
     
  [Все уроки 3ds max] [Галерея моделей] [далее]  
     
megainformatic live chat
Начать беседу
X
 

Оставленные комментарии



fle game engine - движок для создания игр
fle game engine - движок для создания игр


Something: Unexplained 2 captive of desires / Нечто: Необъяснимое 2 в плену желаний
Костя Коробкин Комикс Коллекционное издание - 6 комиксов, 81 страница, 220 mp3 треков
megainformatic Размещение баннерной рекламы у нас
Время загрузки: 1,2954