воскресенье, 15 декабря 2013 г.

Описание симметрии для part-unit

Ссылка на просмотр документа

https://docs.google.com/spreadsheet/pub?key=0AsrwJwA0dJabdFVNaVBUQlVWaUVrYUNOM2VLVVFLeVE&output=html

Здесь можно оставить комментарии на самом документе https://docs.google.com/spreadsheet/ccc?key=0AsrwJwA0dJabdFVNaVBUQlVWaUVrYUNOM2VLVVFLeVE&usp=sharing

Поясню относительно масок и симметрии. Симметрия нужна для того что бы те конечности которые нуждаются в дублировании или же те конечности которые мешают другим конечностям были реализованы. Было бы весьма не реалистично делать так что бы можно было летать на одном крыле или скакать галопом на одной ноге. Тип симметрии показывает с чётного или нечётного номера должна начинаться симметрия, это нужно что бы нельзя было воткнуть конечности "боком". Маска дублирования показывает то в каких "слотах" конечность должна быть повторена. А маска блокирования естественно показывает то в каких "слотах" нельзя размещать какую либо конечность.

  • Симметрия рассматривается включительно, то есть нулевой бит в маске указывает на саму же конечность (01234567) , поэтому он игнорируется. Сделано так для упрощения попыток вообразить себе всё это. Например значение 3 = (11) означает простейшую симметрию двух рядом расположенных конечностей. При этом первый бит означает саму же конечность и игнорируется. Но возможно в будущем он будет анализироваться для каких то других целей. Поэтому всё же устанавливайте его в значение True.
  • Бит блокировки на дублированной конечности делает её блокированной, при этом дублирование не рассматривается.
  • То есть если на конечности есть бит блокировки, то бит дублирования рассматриваеться как дополнительная опция.
  • Конечность считается истинно блокированной лишь если на ней есть бит блокирования и нет бита дублирования. Иначе конечность просто дублированная. В качестве примера можно привести крылья и многоножку. Крыло может быть большим и блокировать другие конечности, но если крылья будут крайними, то ничему они мешать не будут. Поэтому для крыльев просто блокирование, а для многоножки блокирование-дублирование.


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

1 комментарий:

  1. Добавил 2 строки в модуль двухмерного редактора морфидов

    Public Const PropertyPartUnitMorfidMaskD As Integer = 6 ' маска дублирования
    Public Const PropertyPartUnitMorfidMaskB As Integer = 7 ' маска блокирования

    ОтветитьУдалить