Передернувшись, Карина стала листать дальше. Девушки были разные: темные, светлые, у одной кожа почти черная, но все они были… Карина не могла подобрать нужный эпитет, но в конце концов решила, что «чуждые» – самое то. А когда сообразила, что девушки явно позировали, то немного успокоилась. Если бы Никос знал их лично, то где-то проскочила бы картинка, где отсутствует это позирование. Но все равно ей не хотелось надевать на себя ни одну из предложенных личин: наверное, чтобы не напоминать Никосу об оригинале. Карина вздохнула и выключила жезл.
Никос вопросительно посмотрел на нее.
Ник
– Выбрала?
Карина помялась и отрицательно покачала головой. Интересно, что ее не устраивает? Я ведь ей показал не уродин, а довольно красивых женщин. В основном из фильмов.
– Почему?
– Не знаю. Мне кажется, к таким личинам будет слишком большое внимание. С мужской стороны. – Карина старалась не встречаться со мной глазами.
Я немного подумал.
– А что скажешь вот про эту? – Перед нами появилась довольно молодая симпатичная девушка. Не красавица, но чем-то цепляющая взгляд. Правда, в джинсах – такой я ее запомнил лучше всего.
– Кто это?
– Моя сестра, – чуть помедлив, ответил я.
В глазах Карины загорелся неподдельный интерес:
– Ты не говорил, что у тебя есть сестра.
– Я много чего не говорил.
– Может, у тебя и жена есть?
– Нет, – улыбнулся я.
Карина встала и обошла иллюзию вокруг.
– Согласна. Мне подходит, – наконец вынесла вердикт чародейка.
– Хорошо, – кивнул я. – Тогда буду ее использовать как эталон. Только мне надо решить еще несколько моментов, связанных с динамичной привязкой, чтобы личина была живая.
Задача оказалась неожиданно сложной, но интересной. Во-первых, я сначала примерил иллюзию лица сестренки к Карине и с огорчением понял, что есть много нестыковок. У Карины глаза скорее миндалевидные и чуть шире расставлены. У сестренки носик курносый, а у Карины прямой. И еще много мелочей, препятствующих простому наложению маски. Дело в том, что личина, дабы выглядеть натуральной и естественной, должна как можно плотнее прилегать к лицу, не говоря уж о том, чтобы повторять его мельчайшие мимические движения. В результате то, что получилось, уже лишь отдаленно напоминало лицо моей сестрицы, но, слава богу, от этого не стало выглядеть хуже. Просто по-другому. Еще нужно было добиться, чтобы накладка фиксировалась в нужном месте и не смещалась при движении головы. Но это решалось довольно просто: специальные фиксирующие плетения, внедренные в кожу лица, четко удерживали маску. А вот сделать так, чтобы наложенное лицо повторяло мимику (это во-вторых), сложнее было на порядок. Я даже примерно не представлял, как это реализовать.
Мною были испытаны несколько вариантов, вплоть до реагирования на эмоциональные проявления в ауре, но все оказалось не то. И вот тут мне помогли уже частично подключившиеся вычислительные мощности Компа. В первую очередь хочется заметить, что я испытал некоторый шок от того, как он работает. Ну сами посудите – нужных алгоритмов у него нет, но зато когда я с достаточно большой деталировкой представил, что мне необходимо получить, как это вычислять (алгоритм «на пальцах») и в каком виде выдавать результаты, то нужные действия он выполнил очень оперативно.
То есть на основе представленного мной алгоритма он выстроил самоподстраивающуюся и улучшающуюся по ходу дела программу расчетов, сделал привязку к моей виртуальной модели магии, что крутилась у меня в голове, и выдал необходимые расчеты по формированию плетений (естественно, на основе моих знаний, ибо именно ими он оперировал). По сути, у меня в голове сидит мечта любого программиста: не влезая в нудные мелочи, продумать всю структуру, архитектуру, алгоритмы. Но при этом не нужно ручками все это кодить, закапываясь в отвлекающие внимание детали, всплывающие проблемы технологического характера и прочие скучные и неприятные вещи. А после этого на выходе получаешь готовый результат. Ну… почти готовый, но все равно чувствуешь себя эдаким богом… Единственное «но» – ты сам должен знать и уметь то, чем оперирует Комп. Это не палочка-выручалочка, которая заменяет знания. Комп не может за тебя придумать алгоритм, а вот облегчить по максимуму работу – тут он оставляет все известные мне компьютеры и способы оптимизации далеко позади.
В результате я все же решил эту задачу, и вот каким образом. Сначала в поверхностный слой кожи лица внедряется мелкоячеистая сетка из инфонитей, являющихся своего рода геометрическими датчиками. На пересечении нитей ставятся логические блоки привязки (тут пригодилось мое воспоминание об использовании демонами татуировок-плетений). Такая же сетка формируется на некотором расстоянии от лица. Где-то она соприкасается с кожей, где-то чуть отходит – все зависит от маски, ее формы и формы лица человека, который натягивает маску. Дальше она стыкуется нужными связями между точками пересечения нитей в сетке на маске и на лице. Все изменения геометрических параметров поверхности лица с нужными коэффициентами передаются на сеть иллюзии, а отдельный модуль меняет изображение согласно новым условиям поверхностной привязки.
Получилось довольно прилично. Правда, для каждого нового человека и для каждой маски-иллюзии надо проводить новые расчеты, но все же результат того стоит. Даже мельчайшие изменения в выражении лица точно передаются личине, нет никакого ощущения скульптурности или «неживого лица». В общем, я доволен результатом. Карина тоже. Еще где-то с полчаса она корчила рожи своим конструктам, играющим роль зеркала.
Следом встала проблема использования всей этой конструкции. Для себя или для Карины я мог накладывать личину ручками, но велика вероятность, что это надо будет сделать очень быстро или что Карине придется самой включить или выключить личину. Поэтому все это надо засунуть в амулеты, да еще точно спозиционировать точки привязки на лице для сетки детекторов…
Сначала потренировался на себе. Пальцем дотрагиваюсь до своих висков, носа, подбородка, расставляя маркеры, потом формирую сеть и внедряю в лицо, потом остальное. Небольшие неточности такой примерной привязки особо не влияют на результат. Проверил несколько вариантов, пока не добился при максимальном упрощении минимального снижения качества, и принялся упаковывать все это в амулет. В случае с Кариной проще всего использовать уже имеющийся у нее амулет плеера: все равно она его постоянно таскает и не снимает, часто погружаясь в фантазии, навеваемые музыкой.
Сделав, дал попробовать Карине. Невольно улыбнулся: выглядело это так, будто чародейка крестилась. Активировала амулет, коснулась им точки между глазами, кончика носа, подбородка, внешних кончиков глаз у висков, потом активация второго шага и… Оп! Совсем другой человек. Единственный недостаток моей системы в том, что глаза и губы оставались оригинальные, то есть того человека, на которого накладывалась маска. Слишком выразительные элементы декора, чтобы подменять их. Кроме того, через иллюзию ничего не видно, а если делать, чтобы было видно, то такие полупрозрачные глаза сразу привлекают внимание своей необычностью, а то и неестественностью.
Убедившись, что все в порядке, принялся делать личину и для себя. Выпендриваться сильно не стал. Прошерстив свою память, выбрал из когда-то виденных людей незапоминающееся лицо второстепенного персонажа из второсортного фильма. Карина, взглянув, фыркнула:
– Никогда бы не обратила на тебя внимания. Совершенно ничем не примечательная личность.
– На то и расчет, – довольно улыбнулся я.
А пока до города оставалось время, я стал оптимизировать эту технологию и для преобразования одежды.
До окончательного разворачивания вычислителя осталось около суток, плюс-минус некая погрешность. Но вроде бы неприятных неожиданностей в виде плавающего сознания и восприятия, а также их выключения, больше не предвиделось. По крайней мере, Комп с определенной долей вероятности это гарантировал. Потом еще прогон тестов, но это все недолго будет.