Тег ик: Тег | htmlbook.ru

Содержание

Что ужасного в использование тэга br? — Хабр Q&A

для этого есть css

p.s ваш сайт говно редкое, если что:)

Ответ написан

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

Ответ написан

br и адаптивный дизайн плохо работают вместе. На пример, Ваш текст «Увеличьте число Ваших клиентов до 3-х раз за 1 месяц, заказав у нас» — сделайте ширину браузера 625 пикселей и посмотрите что получится. Ваш br ломает строку и он там совершенно не нужен.

Так же не стоит использовать br для отступов между строк/абзацев, потому что размер этих отступов никак нормальным способом не задать через стили.
Для абзацев, на пример, есть тег и ему можно задать отступы.

Ответ написан

*** Ответил не читая ***

Посмотрел на исходники страницы и теперь понимаю к чему вам это сказали.
<br><br><br> -
это что? Для кого придумали отступы, не надо их между дивов пихать, это делается простыми отступами.

Ответ написан

Комментировать

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

Например, когда будете писать адаптивные стили, вы сможете изменять размер отступов так, как вам захочется, а теги br нет. Либо скрыть их, либо показать!

Ответ написан

Комментировать

br, как и hr.
Не стоит использовать больше 2.
Так-то можно, у вас фиксированный шаблон, но лучше воспользоваться css.
Закажите сайт на фрилансе, а то от этого у вас клиенты в панике бегут в стенку и теряют сознания

Ответ написан

Комментировать

У каждого тега есть свое назначение, <br> — это переход на новую строку, именно на новую строку, а не абзац (для этого есть <p>) и, тем более, не для задания отступов между блоками (для этого есть padding и margin).

что страшного — то может быть, если использовать

Страшно смотреть на такой код, ладно если вы от и до сами занимаетесь сайтом, но если над ним будут работать другие люди, у них будут в голове только такие мысли: «За что мне это? Что это вообще такое?? Какой ламер это писал? Неужели так трудно выучить назначение тегов? и т.д.». Плюс верстку на br-ах не так просто редактировать, если отступы в css мы можем контролировать и делать с ними все, что угодно, то br верстальщика такой возможности лишают.

Вобщем, br не для оформления, как и другие теги, в принципе. Теги — для разметки, каждый тег используется по своему назначению, а для оформления есть css. Вы же не красите ногти помадой? Надеюсь, что нет, для этого же есть лак.

Ответ написан

Комментировать

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

Ответ написан

Комментировать

<br>
Используется для:
— переноса текста на новую строку.
— пустая разделяющая строка (или 2)
Но не для выравнивание блока.

Ответ написан

Комментировать

Это понятно, но что страшного — то может быть, если использовать
?

Ответ написан

более трёх лет назад

Даже любопытно стало, из-за чего дизайн камнями закидали? по мне самое неудобное — это все слишком крупно — неудобно читать. Было бы интересно почитать более предметный «разнос»…

Ответ написан

«Программист» сказал, что нельзя делать отступы между дивами через br. Для этого есть css. О количестве не было ни слова. Так что всёвыврети:-)

Ответ написан

html — Чем заменить тег br?

Вопрос частый среди новичков, а развёрнутого ответа с рабочими примерами видеть не доводилось. Попробую дать таковой сам.


1. Разделение абзацев

Положим, необходимо отделить один блок текста от другого.

1. C использованием

<br>

Два блока текста отделяются посредством

<br><br>.

<body>
    От колумеллы завернул на срисованный с топографической карты мост греческого носа, разогнался и очутился перед ширью чела, усеянной едва приметными эфемеридами.  Отдельно торчащие волоски обрамляли пушистый каскад, вуалью из тончайшей паутинки прикрывая внитие в пробор посередине. Нежная кожа руки, несомненно, ароматнее цветов на иконах ниже... Тщательно протёр зенки: стоп, я не Виктор Кандинский во власти дебютной галлюцинации.
    <br><br>
    Однако стоило попутчице с ближнего ко входу сидения подвинуть локоть, как проступили пухленькие губки, слабо напоминающие Божьи. Они принадлежали высокой мощной путешественнице с неуклюжей широкой походкой, непринуждённо закинувшей наверх свой и подруги громадные рюкзаки. Помимо профиля с закрытыми очами в ней не содержалось ни на йоту от Эталона, чего, правда, вполне хватало для любования. Тут осенило, как провести эту обездвиживающую и притупляющую ночь.
</body>

2. Без использования

<br>

Каждый из двух блоков текста заключается в тег <p></p>.

<body>
    <p>От колумеллы завернул на срисованный с топографической карты мост греческого носа, разогнался и очутился перед ширью чела, усеянной едва приметными эфемеридами.  Отдельно торчащие волоски обрамляли пушистый каскад, вуалью из тончайшей паутинки прикрывая внитие в пробор посередине. Нежная кожа руки, несомненно, ароматнее цветов на иконах ниже... Тщательно протёр зенки: стоп, я не Виктор Кандинский во власти дебютной галлюцинации.</p>
    <p>Однако стоило попутчице с ближнего ко входу сидения подвинуть локоть, как проступили пухленькие губки, слабо напоминающие Божьи. Они принадлежали высокой мощной путешественнице с неуклюжей широкой походкой, непринуждённо закинувшей наверх свой и подруги громадные рюкзаки. Помимо профиля с закрытыми очами в ней не содержалось ни на йоту от Эталона, чего, правда, вполне хватало для любования. Тут осенило, как провести эту обездвиживающую и притупляющую ночь.</p>
</body>

3. Компиляция Markdown в HTML.

Оборачивание вручную каждого блока текста может занять достаточно продолжительное время. Однако есть средства, облегчающие задачу, как то использование разметки Markdown, — не только по моему мнению много удобнее нативного HTML — с последующей конвертацией в HTML. Для создания отступа в Markdown достаточно создать между блоками текста пустую строку:

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

Как видно, результаты компиляции для различных парсеров Markdown в HTML имеют небольшие различия, но везде блоки текста оборачиваются в тег <p></p> и не используется

<br>.


2. Отступы

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

1. C использованием

<br>

Отделяем друг от друга текст и изображение.

<head>
    <style>
    #SashaDiv {
        font-size: 2rem;
        color: blueviolet;
    }
    </style>
</head>

<body>
    <div>Саша и Её кот</div>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <img src="https://pp.vk.me/c629230/v629230663/17f7f/y31918FBaZs.jpg">
</body>

2. Без использования

<br>
<body>
    <style>
    #SashaDiv {
        font-size: 2rem;
        margin: 0 0 10rem;
        color: blueviolet;
    }
    </style>
    <div>Саша и Её кот</div>
    <img src="https://pp. vk.me/c629230/v629230663/17f7f/y31918FBaZs.jpg">
</body>

Используется свойство CSS margin. Допускается использование от одного до четырёх значений margin, в примере их 3. Первый ноль задаёт отступ от верхнего края элемента, второй — от левого и правого одновременно, третий — от нижнего. Т.е. от блока текста до нижеследующего элемента — иконы — в примере задан отступ, равный 10rem.

Отступы посредством margin корректно работают, если их задать от блочных, не инлайновых элементов.


3. Дополнительные ссылки

1. Где не стоит использовать

<br> и причины тому
  • Is it sometimes bad to use <BR />?
  • Is a br tag semantic?.

2. Использование тега

<br> в качества разделителя параграфов
  • Bed and BReakfast markup (B&BR).

3. margin

  • О свойстве margin на сайте Webref.ru.

Введение в сети VLAN и тегирование

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

Содержание

  1. Введение в сети VLAN и тегирование

  2. Типичные сценарии использования

  3. Тегирование VLAN

    1. VLAN без тегов

    2. VLAN с тегами

    3. Магистраль

  4. Другие статьи по этой теме

Введение в сети VLAN и тегирование

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

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

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

VLAN представляет собой широковещательный домен.  Идентификация сетей VLAN осуществляется по их идентификаторам VLAN ID (целые числа в пределах от 0 до 4095). По умолчанию в любой сети уже создана одна VLAN, имеющая идентификатор VLAN 1. Каждый порт на коммутаторе или маршрутизаторе можно назначить сети VLAN (то есть, разрешить на этом порту отправку и прием трафика по данной VLAN).

Пример. На коммутаторе, трафик, который посылается в порт, принадлежащий VLAN 100, может быть передан любому порту VLAN 100; этот трафик может также транспортироваться через магистральный порт (соединение между коммутаторами) на другой коммутатор и передаваться на все порты VLAN 100 этого коммутатора. Однако трафик не может быть передан на порты с другим идентификатором VLAN ID.

Это позволяет администратору сети эффективно логически разделить коммутатор и при этом обеспечить: одновременную работу множества широковещательных доменов на одной и той же аппаратуре; изоляцию доменов; повышенную производительность сети за счет использования полностью отделенных коммутаторов.

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

Для того, чтобы сети VLAN можно было реализовать, необходима их поддержка на коммутаторах и маршрутизаторах. Для конфигурации сетей VLAN наиболее часто используется стандартный протокол IEEE 802.1Q., хотя существует и несколько протоколов, являющихся собственными разработками компаний.  Коммутаторы, поддерживающие VLAN, часто называют «управляемыми», однако этот термин не всегда правильно используется специалистами по маркетингу и не гарантирует поддержку VLAN.

Все маршрутизаторы, коммутаторы и беспроводные решения компании Ubiquiti поддерживают протокол VLAN 802.1Q и могут работать с аппаратурой других изготовителей, в которой используется этот протокол.

Типичные сценарии использования

Несколько примеров применений, в которых обычно используются виртуальные сети VLAN:

  • Отделение трафика сети управления от трафика сервера или трафика конечного пользователя.

  • Изоляция чувствительной инфраструктуры, сервисов и хостов, например, изоляция корпоративных пользователей от гостевых пользователей.

  • Приоритезация трафика, реализация правил качества обслуживания QOS (Quality of Service) для конкретных сервисов, например, сервиса IP-телефонии (VoIP).

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

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

Тегирование VLAN

Определение и использование термина «тегирование VLAN» сильно отличается в зависимости от изготовителя оборудования. Для того, чтобы поддерживающее стандарт 802.1Q оборудование идентифицировало принадлежность пакета данных той или иной VLAN, в кадр Ethernet добавляется заголовок, специфицирующий VLAN ID.

Этот тег VLAN ID может быть добавлен коммутатором, маршрутизатором или хостом. Внутри сети, физические порты сконфигурированы, как не имеющие тегов, либо с тегом для конкретной VLAN — определенным безотносительно к приему и передаче трафика, принадлежащего каждому VLAN ID. Рассмотрим эту ситуацию подробнее.

VLAN без тега: такие VLAN часто называют «родными VLAN».  Любой трафик, отправленный хостом в порт коммутатора, не имеющий специфицированого VLAN ID, будет назначен VLAN без тега.

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

VLAN с тегом: При назначении порту VLAN с тегом происходит добавление порта в VLAN, однако, чтобы весь входящий и исходящий трафик мог быть передан, он должен иметь тег с VLAN ID. Хост, подключенный к порту коммутатора, должен быть способен тегировать свой собственный трафик и сконфигурирован с тем же самым VLAN ID.

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

Магистраль: В типичном случае магистральный порт считается принадлежащим всем сетям VLAN; он будет принимать и передавать трафик по любому VLAN ID и обычно сконфигурирован для портов как до коммутаторов и маршрутизаторов, так и портов за ними.

Хотя в каждом семействе продуктов Ubiquiti (EdgeMAX, UniFi, airMAX) используются свои способы конфигурации сетей VLAN, все продукты поддерживают один и тот же способ тегирования, работы без тегов, создания магистралей, управления трафиком и обеспечивают совместную работу.

Дальнейшую информацию по конфигурации сетей VLAN конкретного продукта см. в других статьях по этой теме в разделе ниже.

Другие статьи по этой теме

  • UniFi — использование сетей VLAN с продуктами UniFi Wireless, аппаратурой коммутации и маршрутизации

  • UniFi — как назначить тег трафику VLAN?

  • EdgeMAX — создание виртуальных интерфейсов с идентификаторами VLAN ID

  • EdgeMAX — Добавление сетей VLAN на интерфейс коммутатора

Начало работы с IK-риггингом — Видеоруководство по анимационному дизайну

Из курса: Моушн-графика

Начните работу с IK-риггингом

— [EJ] Добро пожаловать в Еженедельник анимационного дизайна, где вы еженедельно повышаете свои знания MoGraph. Я Э. Дж. Хассенфрац, давайте учиться! Оснащение персонажей с использованием обратной кинематической оснастки или оснастки IK часто рассматривается как пугающий и пугающий аспект 3D. В видео на этой неделе я постараюсь помочь вам взглянуть на риггинг в новом свете, показав вам самые основы предмета и то, как вы можете начать адаптировать риггинг в свой собственный рабочий процесс. Итак, вот очень простой персонаж из носка, который рыщет вокруг, пытаясь найти своего другого друга из носка. И это будет демонстрировать очень простое использование IK и динамики IK, о чем я расскажу в следующем видео. Итак, давайте начнем с чистого листа, и я покажу вам, как легко было настроить это с помощью IK. Итак, здесь у нас есть урезанная геометрия носков, и мы собираемся придать ей некоторую структуру, чтобы можно было ее смонтировать и анимировать. Таким образом, риггинг — это в основном настройка структуры костей или суставов объекта или персонажа, и прямо сейчас наша геометрия похожа на слизняка, у нас нет костной структуры, чтобы мы могли ее двигать, но мы собираемся исправить это, добавив несколько суставов. которые в основном представляют собой версию костей Cinema 4D, чтобы определить структуру того, как этот персонаж будет двигаться и изгибаться. Итак, давайте сначала перейдем к нашему виду спереди, и мы создадим несколько соединений в этом виде спереди, поэтому мы нажмем эту верхнюю правую кнопку прямо здесь, чтобы вызвать наш вид четыре вверх, а затем найдем здесь наш вид спереди, и нажмите эту верхнюю правую кнопку на этом виде спереди, чтобы развернуть его, а затем я могу просто изменить его положение, используя клавишу 1 или клавишу 2 для панорамирования и масштабирования, а затем я собираюсь построить несколько суставов, и вы можете найти косяки в меню персонажа здесь. Я собираюсь перейти к инструменту соединения, а не к объекту соединения, инструменту соединения, и чтобы построить и создать несколько соединений, я собираюсь удерживать клавишу Command и щелкать. И вы увидите, что это создает соединение в моем диспетчере объектов. Теперь, точно так же, как вы строите линию с двумя точками, вам нужно два соединения, чтобы построить полное фактическое соединение. Итак, я снова нажму Command + щелчок, и вы увидите, что теперь у нас есть один большой сустав или кость на этой основной части нашего носка. Так что я просто собираюсь пойти дальше и создать еще несколько суставов здесь. Я собираюсь сделать так, чтобы они совпадали с подразделениями моего объекта, как вы можете видеть здесь, эти маленькие петли, эти маленькие подразделения моей геометрии, и я просто нажму Command + щелчок здесь для этого подразделения, Ctrl + щелчок здесь и затем последний на самом кончике носка. Теперь, чтобы отрегулировать некоторые из этих суставов, вы можете либо щелкнуть здесь и настроить их по отдельности, либо удерживать нажатой клавишу 7 и настроить их таким же образом. Я просто поправляю их, меняю положение. И суть игры в том, что чем более плавным вы хотите изгиб, тем больше четкости через суставы вы хотите, так что подумайте о своей руке. Ваше предплечье и плечо — это две кости, и у вас есть один изгиб в локте. Теперь в вашем пальце больше костей, в нем три кости, и вы можете согнуть его гораздо больше, как изгиб, чем в локте, так что просто помните об этом, когда будете строить суставы. Также очень важно, чтобы ваша фактическая геометрия имела достаточное количество подразделений для плавного изгиба. Давайте продолжим и создадим то, что называется цепочкой IK, которая создает связь между всеми этими суставами. Итак, прямо сейчас, если мы продолжим и переместим эти суставы, вы увидите, что это влияет только на суставы перед ним, и на самом деле это очень простой способ анимации персонажа. Чтобы получить правильную позу, вам нужно отредактировать каждый сустав, чтобы получить желаемую позу. Когда я редактирую этот сустав, мне нужно изменить положение каждого сустава в цепочке. И это то, что называется прямой кинематикой или FK. То, что мы хотим сделать, является обратным этому, когда мы контролируем последний сустав в цепи IK, а он контролирует все остальное, и это снова называется IK или инверсной кинематикой, инверсией прямой кинематики. Итак, давайте продолжим и настроим это, поэтому я собираюсь выбрать первый сустав в моей цепочке суставов, нажать Command + и выбрать последний сустав в моей цепочке IK, а затем перейти в «Персонаж», «Команды», «Создать IK». Цепь, и это создаст взаимосвязь между всеми этими соединениями. И вы увидите, что были добавлены две вещи: этот тег IK для обозначения того, что теперь это цепочка IK, а также эта цель. Теперь, если я нажму на эту цель и передвину этот маленький нуль, вы увидите, что это перемещает всю цепочку IK, просто перемещая один объект. Это полная противоположность тому, что мы делали раньше с FK, когда мы перемещали один сустав, и это влияло на все под ним, мы делаем полную противоположность этому. Так что я собираюсь отменить все эти шаги, которые я только что сделал. Таким образом, в основном ваша цель определяет, где находится ваш последний сустав, вроде как ваша рука является целью позиционирования вашей руки, хорошо? Есть одна вещь, на которую стоит обратить внимание: если вы помните настоящую анимацию персонажа носка, так как голова как бы качалась, гибкая часть носка качалась, эта основная часть носка не двигалась, поэтому мы хотим сохранить это. стационарный. Итак, что я собираюсь сделать, чтобы эта цепочка IK не влияла на этот первый сустав. Так что я просто щелкну, перетащу и сдвину этот тег IK вниз, и теперь вы увидите, что эта маленькая зеленая линия теперь строит связь между целью и этим соединением, а не этой целью и самым верхним соединением здесь. Так что теперь, если я передвину цель, вы увидите, что это больше не влияет на этот первый сустав, а это именно то, что нам нужно. Мы можем сделать так, чтобы это качалось, и эта основная часть вообще не двигалась, так что я просто отменю эти изменения положения. Итак, вы заметите, что я перемещаю эти суставы, и это никак не влияет на геометрию нашего носка, что является своего рода проблемой. Итак, что нам нужно сделать, так это построить отношения между суставами и геометрией, выполнив то, что называется связыванием. Здесь мы собираемся привязать наши суставы к нашей геометрии, поэтому для этого мы собираемся выбрать геометрию, которую мы хотим привязать, а затем суставы, к которым мы хотим ее привязать, поэтому я просто нажимаю Shift + щелчок. здесь, так что все суставы плюс носок, вы не хотите выбирать здесь поверхность подразделения, только эту базовую геометрию, и вы собираетесь перейти к персонажу, перейти к команде и перейти к привязке, и вы можно увидеть, даже значок показывает совместную привязку с небольшим кусочком геометрии здесь. Итак, как только я нажму Bind, вы увидите, что теперь этот деформатор кожи является дочерним элементом моей геометрии носка. Теперь посмотрите, что происходит, когда я перемещаю эту цель. Вы можете видеть, что теперь мы фактически деформируем нашу геометрию с помощью суставов. Деформатор кожи построил эту связь между геометрией и суставами. Итак, давайте перейдем к нашему виду в перспективе и просто посмотрим, как это выглядит, и вы можете увидеть, что это что-то вроде изгиба, что-то вроде необычно толстого, так что есть одна вещь, которую мы можем сделать, чтобы исправить что-то подобное, и это должно пойти к нашему весу менеджера. Если я удерживаю Shift и дважды щелкаю вот этот маленький значок «Выражение веса», он вызовет наш «Менеджер веса», и если я отключу свою поверхность подразделения, я действительно смогу увидеть влияние всех этих суставов, закодированных цветом, на моем геометрия носка здесь, поэтому, если я нажму на этот сустав, вы увидите влияние или вес, выделенный красным, и вы увидите то же самое с Joint. 1, Joint.2, Joint.3. , а затем Joint.4 находится в самом конце и на самом деле не оказывает никакого влияния, но вы можете видеть, как прогрессия влияния происходит по всей нашей геометрии, и вы можете видеть, что это не очень гладко. У нас есть все эти коренастые маленькие части здесь. Итак, что я хочу сделать, это сгладить все это, и, к счастью, здесь есть эти команды, где, если вы выберете все свои суставы, мы можем перейти из режима добавления в режим сглаживания и просто увеличить нашу силу настолько, насколько мы хотим. а затем просто нажмите «Применить все», и вы увидите, что все сгладилось. Позвольте мне на самом деле отменить это, и Command + Z, и, может быть, мы снизим силу, может быть, до 50% и посмотрим, как это будет выглядеть, так что мы просто немного сглаживаем это, и мы можем снова нажать «Применить все». и сгладить это много, если мы хотим. Мы можем даже ударить по ней еще три раза, если захотим. Но давайте на самом деле выберем нашу цель и посмотрим, как она теперь изгибается, чтобы вы могли видеть, что если я снова включу свою поверхность подразделения, она изгибается намного более плавно и, я думаю, выглядит немного лучше. Мы можем сгладить это намного больше, если захотим, но я думаю, что это хорошо. Таким образом, менеджер по весу, манипулируя весом, регулирует влияние суставов на их деформацию с помощью этого деформатора кожи. Итак, одна вещь, которую я хочу упомянуть, это то, что IK используется не только для анимации персонажей. Его можно было бы просто использовать как деформатор, используя здесь деформатор кожи. Итак, скажем, мы хотим, чтобы наш носок был неподвижным, но мы, возможно, хотим, чтобы здесь было такое качание по направлению к передней части носка, так что, может быть, что-то в этом роде. И вы можете видеть, что мы в основном просто используем деформатор кожи в качестве деформатора для модели. Итак, теперь, когда вы, надеюсь, разобрались с основами IK и оснастки, обязательно следите за обновлениями MoGraph Weekly на следующей неделе, где мы немного углубимся в тег IK и как мы можем на самом деле использовать динамику и силы гравитации. чтобы воздействовать на наши суставы и автоматизировать некоторую анимацию. Не хотите ждать до следующей недели, чтобы узнать что-то новое? Без проблем. Вот другие способы подпитать свой творческий мозг, чтобы вы были чем-то заняты. Вы можете ознакомиться с другими моими курсами в библиотеке, посетить мой веб-сайт, eyedesyn.com, чтобы получить больше руководств, подписаться на мой канал YouTube, чтобы получать оповещения, когда я публикую новое видео, присоединиться к моей странице Facebook, чтобы ежедневно получать вдохновение от MoGraph, и не отставать. на сегодняшний день во всех моих последних творениях MoGraph в Instagram. Спасибо за просмотр, увидимся здесь снова на следующей неделе.

Содержание

Предельное вращение объекта с меткой IK — оснастка

bentraje

#1

Привет,

Я пытаюсь создать механическую руку IK с частями, которые либо вращаются вперед, либо скручиваются, но не то и другое вместе.
Проблема в том, что IK вращает все оси объекта, чтобы достичь точки, что приводит к неожиданному поведению.

Здесь вы можете посмотреть видео-иллюстрацию:
https://www.dropbox.com/s/6xk4nek2j1ai7m4/c4d139_limit_rotation_in_ik.mp4?dl=0

Зеленая линия — это настройка IK. Другой — это установка FK с предполагаемым поведением, но я бы предпочел настройку IK.

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

В настоящее время я не могу сориентировать/повернуть объекты/суставы, затронутые IK.

Есть ли способ обойти это?

ЭдАрт

#2

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

1 Нравится

Бентраже

#3

Именно этого я и боялся (т.е. написать свой собственный ИК-решатель). Поскольку это выходит за рамки моего текущего набора навыков.

В любом случае, спасибо @EdArt за подтверждение.

разрез

#4

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

И все, что вы ведете, может быть ограничено, зажато, переназначено и т. д.

1 Нравится

Бентраже

#5

RE: Но, может быть, вы можете попробовать прочитать выбранную вами изолированную ось и использовать ее в качестве драйвера для вторичной цепи. Вы часто можете извлечь необходимую информацию.

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

Думаю, для этого требовалось нечто большее, чем просто изоляция, такая как «возможно» и поведение «если еще». К сожалению, логика ускользает от меня с цепочкой, превышающей 3 сустава.

разрез

#6

Я не имел в виду, что это само по себе решение вашей проблемы. Управление одной осью из трех не приведет к такому же результату. Вот что я имел в виду под «измерительной марионеткой». Я просто отвечал на идею о том, что единственный способ ограничить решатель — написать другой решатель.

Это просто общий способ извлечения информации из более сложной информации, например, извлечение поворота предплечья из ручного контроллера.

1 Нравится

Бентрадже

#7

@clesage

Я последовал вашему предположению, что это «измерительная марионетка». Пока работает для того, что мне нужно

Пока примечания и ограничения следующие:
1а) Двухзвенная цепь. Одним из них является кукольная совместная цепочка (с ИК). А другая цепочка суставов — это просто типичный FK, который ограничен только одной осью вращения цепочки марионеточных суставов.
1b) Только три соединения в цепи. Более того, это дало некоторый непредсказуемый результат
2) Основание сустава повернуто (или направлено к контроллеру)
3) Полюсный вектор (расположенный вверху) ограничен по положению (кроме Y) контроллером.
4) Соединение IK не совпадает по математике с типичным соединением FK, но достаточно близко.

2 и 3 гарантируют, что ИК во всех случаях плоская и не скручивает конец, а только изгибает. Так что даже несмотря на то, что это «Управление одной осью из 3». Это все еще работает, поскольку другая ось практически не имеет значений.

Еще раз спасибо за ответ. Желаю отличного дня!

ЭдАрт

#8

Эй, извините, мой ответ был немного скудным по этому поводу — @clesage совершенно прав в том, что касается связей, маскирование определенных осей от ограничений и соединений Ik может приблизить вас к желаемому поведению, и если вы нашли решение, которое работает для вас, фантастика.
Единственная причина, по которой я бы выступил против этого, заключается в том, что если вам нужно истинное обратное кинематическое решение, детерминистические ограничения принципиально не могут его предоставить. Требуется итерация и осведомленность либо о непосредственных соседях, либо о системе в целом.
Исключением является связь, для которой известно полностью аналитическое решение, например, этот пример https://researchspace.csir.co.za/dspace/bitstream/handle/10204/4944/Claasens1_2010.pdf?sequence=1&isAllowed= y — в этом случае можно управлять системой с одной итерации через граф узлов, но это непросто настроить.

1 Нравится

Бентраже

#9

@EdArt
Только что посмотрел на это, и действительно, это выше моего понимания. Но это определенно удобная ссылка на будущее.

Спасибо, что поделились!

Файлы настроек IK и определения тегов XML

Перейти к концу метаданных

Темы, рассматриваемые в этом разделе, включают:

Файл настройки инверсной кинематики

В файле настройки инверсной кинематики необходимо указать три свойства:

  1. Модель, к которой должен применяться решатель IK;
  2. Используемые веса ошибок маркера и координаты; и
  3. Конкретные испытания, которые будут использоваться решателем.

Пример файла настройки инверсной кинематики приведен в примере ниже: 
Пример файла настройки IK : XML-файл для файла настройки инверсной кинематики

  0" encoding="UTF-8"?>

 subject01.osim 
<Файл IKTaskSet="gait2354_IK_Tasks.xml"/>
<Имя IKTrialSet="">
<объекты>

 subject01_walk1.trc 
 subject01_walk1.mot 
 
 0,4 ​​2,0 ​​
 
 subject01_walk1_ik.mot  

 


 
 

Параметры выполнения IK

Параметры/свойства для запуска инструмента IK заключены в открывающий и закрывающий теги  и . При желании можно использовать атрибут имени name=»subject01″ для указания имени выполнения, хотя он нигде не используется.

Модель

Свойство  задает имя файла модели OpenSim (.osim), которая будет использоваться для сопоставления экспериментальных данных и/или значений координат. Как правило, это масштабированная модель для конкретного объекта, созданная инструментом масштабирования.

Задачи IK

Задачи IK используются для указания весов на маркере и условий ошибок координат, используемых решателем IK. Набор задач ИК задается в свойстве . В файлах настроек и определениях XML-тегов для IK он указывает на внешний файл (gait2354_IK_Tasks.xml) с использованием атрибута file , но IKTaskSet можно указать в самом файле установки. Отдельный файл задач ИК полезен, если несколько моделей (субъектов) будут использовать один и тот же набор задач ИК. Детали для указания файла задач IK представлены ниже.

Свойства каждого испытания

Несколько экспериментальных испытаний для одного и того же субъекта/модели могут быть обработаны во время одного выполнения IK. Инструмент IK последовательно обрабатывает каждое испытание и выводит отдельные файлы движения для каждого набора настроек испытания (IKTrial).

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

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

Экспериментальные значения маркеров и координат

Свойство  задает файл .trc, содержащий траектории маркеров для этого испытания. Эти траектории дают экспериментальные позиции маркеров, которые IK попытается сопоставить, как описано в разделе «Как работает инверсная кинематика».

Свойство  задает файл .mot, содержащий экспериментальные значения координат (например, углы суставов, рассчитанные с использованием анатомических систем отсчета) для этого испытания. Эти значения считываются из файла, только если существует задача IK для координаты, для которой тег имеет значение true (см. в примере файла задачи IK ниже).

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

Диапазон времени

Тег  указывает время начала и окончания вычисления IK (например, от t=0,4 с до t = 2,0 с в приведенном выше примере). Значения времени представлены в тех единицах времени, которые использовались в файлах маркеров и координат, которые должны иметь общий диапазон друг с другом. Обратите внимание, что IK не требует, чтобы время выражалось в секундах. Однако будущие динамические анализы, которые вычисляют ускорения, должны иметь время, выраженное в секундах.

Время начала, предшествующее первым доступным данным маркера/координат, привязывается к начальному времени данных. Точно так же время окончания привязывается к конечному времени данных, если это необходимо. Моменты времени, не совпадающие с дискретным временем в наборе экспериментальных данных, привязываются к ближайшему моменту времени до указанного времени. Например, указанное конечное время 0,410 с будет привязано к 0,400 с, если следующий момент времени составляет 0,417 с от системы захвата движения с частотой дискретизации 60 Гц.

Обратите внимание, что файл маркера используется для определения фактических временных шагов (кадров), для которых вычисляется IK. Кроме того, если используется файл координат, значения времени строк данных в файле координат должны совпадать со значениями времени данных в файле маркеров. OpenSim сообщит об ошибке, если соответствующее время в файле координат не будет найдено.

Выходной файл

 указывает имя файла движения, созданного IK. Столбцы этого файла:

  • Непредписанные обобщенные координаты (определенные с помощью IK), за которыми следует
  • Предписанные обобщенные координаты (с фиксированными значениями, не найденными с помощью IK), за которыми следует
  • Любые пользовательские данные (данные, найденные в  , который не используется непосредственно IK, например, силы реакции земли)


Каждая строка представляет момент, для которого IK определила координаты, соответствующие временам в файле данных маркера. В файле движения (.mot) каждый столбец имеет связанную метку, определяющую координату соединения, реакцию грунта, центр давления и т. д. значения.

Файл задач инверсной кинематики

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

 
 

<объекты>

 <вес>1 
 <вес>0,5
 <вес> 0,5 
 <вес> 0,1  


  0 
  0 
  0 
  0 
 

Пример файла задачи IK:  Аннотированный XML-файл для файла задач инверсной кинематики

 

При желании можно использовать атрибут имени (например, name=»gait2354_IK», как показано выше), чтобы указать имя выполнения для IKTaskSet, правда нигде не используется.

Задачи маркеров

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

Свойство <вес> задает вес, умноженный на квадрат ошибки для этого маркера. Эти веса представляют собой w i , появляющиеся в формуле, приведенной в Как работает инверсная кинематика. Больший вес означает, что член ошибки для этого маркера будет более значительным в уравнении наименьших квадратов, поэтому вычисление IK попытается найти более близкое соответствие между положением этого маркера и его экспериментальным положением по сравнению с маркером с меньшим масса. По умолчанию вес маркера принимается равным нулю, что указывает на то, что IK-решатель не будет пытаться сопоставить этот маркер с его экспериментальной позицией. Вес по умолчанию используется, если <вес> не указан или если  опущен для маркера.

Позиции экспериментальных маркеров здесь не указаны. Они берутся из файла .trc, указанного в свойстве файла , указанном в примере файла установки IK.

Координатные задачи

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

В  можно указать три свойства:  и . Эти свойства не являются обязательными.

Тег

Свойство  задает вес, умноженный на квадрат ошибки для этой координаты. Эти веса представляют собой ω i , появляющиеся в формуле, приведенной в Как работает инверсная кинематика. Они сообщают IK-решателю, насколько точно он должен попытаться сопоставить заданную координату с ее экспериментальным значением: чем больше вес, тем ближе должно быть совпадение.

Напомним из Как работает инверсная кинематика , что существует два типа координат: предписанные и непредписанные. Если в модели OpenSim указана координата, которая должна быть заблокирована ( имеет значение  true ), то это заданная координата. Символ замка в окне координат также будет в заблокированном положении для этой координаты. Заданным координатам будет присвоено точное значение, и они не будут решаться ИК. Таким образом, свойство <вес> не влияет на заданные координаты; это актуально только для непредписанных координат.

Для непредписанной координаты, если <вес> не указан или если его  не указан, вес этой координаты считается равным нулю, а это означает, что IK не будет пытаться сопоставить эту координату с каким-либо конкретным значением.

Укажите экспериментальные значения для сопоставления

Как для предписанных координат, так и для непредписанных координат с ненулевыми весами необходимо указать экспериментальное значение для сопоставления. Один из способов сделать это — указать файл .mot с помощью тегов  и  . Если для параметра установлено значение true , то экспериментальные значения координат для этой координаты берутся из файла .mot, указанного в свойстве в примере файла настройки IK.

Если для параметра установлено значение false или он не указан, то вместо изменяющейся во времени траектории из файла используется постоянное экспериментальное значение. Это постоянное значение происходит из:

  • Свойство   или, если оно не указано, то
  • Свойство   в модели OpenSim .osim или, если оно не указано затем
  • Свойство элемента в модели OpenSim .osim.

В Примере IK Task File подтаранный и mtp углы заблокированы (прописаны) в файле модели. Это указано в окне координат (символ замка находится в закрытом положении). Таким образом  используется, чтобы указать, что они должны быть заблокированы на уровне 0 радиан.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *