The FacePoser Editor – по русски!

FacePoser – это инструмент, позволяющий создавать анимацию персонажей в HL2.

 Основное

Мимика

Choreography

Phoneme Editing

Other Tools

Source Code


Главные инструменты, интерфейс

Рабочее пространство FacePoser содержит несколько областей:

1.      Главное окно - показывает имя текущего .VCD (т.е. Valve Choreography Data), значок "*" показывает, что текущий .VCD был изменен.

2.      Главное меню состоящее из expression, choreography, model loading, а Window меню кроме прочего может помочь отображать и прятать не нужные инструменты

3.      Главное рабочее пространство, на котором размещаются инструменты FacePoser

4.      Закладки в нижней части экрана, состоящие из

·         Закладки для каждого инструмента FacePoser (слева)

·         Закладки для загруженных моделейl (справа)

5.      Пара кнопок справа от области закладок for turning on selection snapping and setting the granularity for snapping (значения сохраняются в каждом.VCD файле)

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

Также можно кликать и на самих окнах инструментов – двойной клик используйте чтобы развернуть окошко во всю рабочую область, левым кликом можно закрепить инструмент, правым – наоборот.

FacePoser включает следующие инструменты, описания которых вы найдете ниже:

Разместить окна инструментов каскадом и другими способами, прятать и показывать их и производить другие извращения можно также при помощи меню Window.

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

Expression Creation Tool – Инструмент создания мимики

Expression creation tool (закладка "Expressions") работает с любым загруженным Source engine model файлом (.MDL) в 3d View и контролируется инструментом "Flex Sliders". Алгоритм действий с Flex Sliders таков – с помощью ползунков в окне "Flex Sliders" создайте необходимое выражение, затем делайте правый клик на окошке Expressions и выберите "New Expression", заполните соответствующие поля и получите результат! Одно или несколько выражений можно сохранить в новом классе (группе) выражений создав новый класс сделав левый клик на одном из существующих классов и выбрав соответствующую команду, или через меню expression -> new… (в связи со странным глюком возможно, придется сначала создавать файл .txt чтобы сохранить в нем группу, и еще совет – не закрывайте группы, надежно не сохранив их)

Можете посмотреть на позы лица, используемые для анимации при воспроизведении .wav файлов. Для этого нажмите "Expressions | Load…" из главного меню и выберите phonemes.txt. Также можно загружать и сохранять классы выражений правым кликом на закладке готового класса и выбрав соответствующий пункт контекстного меню.

Если у вас загружена модель и выражения, FacePoser соотнесет их между собой и сделает все что нужно сам. Если возникнут проблемы, нажмите "Expressions | Recreate all bitmaps" чтобы обновить соотнесение фонем с моделью.

Чтобы выбирать выражение, кликните на соответствующем эскизе. Выбрав эскиз вы можете наблюдать соответствующее ему расположение ползунков в Flex Slider. Обратите внимание, что каждый ползунок, имеет галочку- указание, является ли ползунок активным для указанного выражения.

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

Двигая ползунки flex sliders вы увидите, что эскиз будет меняться:

Сначала станет доступным пункт «сохранить» в контекстном меню, появляется звездочка, говорящая о том, что выражение было изменено. Потом вы увидите стрелку и цифры под ней, клик на стрелку позволяет использовать историю изменений, а цифры под ней показывают, сколько произведено изменений всего (правая), а левая показывает, сколько отмен произведено. Пункт контекстного меню "Revert" отменяет все изменения. Просмотреть все изменения выражения можно в 3D окне, а лицо на эскизе измениться только после сохранения изменений.

Можно даже перетаскивать эскизы, удерживая на картинке левую клавишу мыши, и перемещать их не только в своей группе, но и в окно choreography вставляя в канал соответствующего актера.

Использование A/B control. Если вы выбрали сначала одну иконку, а потом другую, то можно вернуться к предыдущей, использовав кнопку A/B, то, как происходит изменение выражения NPC вы можете наблюдать в 3D окне.

Можно восстановить значение выражения на значение «по умолчанию» выбрав соответствующий эскиз выражения и нажав "Zero Sliders" в окне flex sliders.

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

Можно закрывать классы выражений по отдельности или сразу все, пользуясь пунктами контекстного и главного меню "File | Close" или "File | Close all".

Creating a new expression class – создание новой группы (класса) выражений

Группу, называемую phonemes стоит оставить в покое, она подходит всем человекообразным NPC, но возможно, что вы захотите создать собственную группу выражений для какого- то непися (актера) и использовать эту группу своем файле .VCD. Чтобы сделать это, выберите "Expression | New…" в контекстном или главном меню. Теперь создайте файл .txt в папке модели, и как вы его назовете, так и будет названа группа выражений.

Выберите созданную группу выражений, и увидите, что она пуста.

Для создания в новой группе нового выражения, используйте пункт контекстного меню "New Expression…". Это откроет диалоговое окно, в которое надо ввести имя выражения и его описание, потом жмите "OK". Выражение будет зависеть от того, в каком положении находятся в момент его создания ползунки в окне flex sliders. Потом можно использовать пункт контекстного меню "New" делая правый клик на готовом эскизе выражения, тогда новое выражение будет копией того, на которой вы кликали, потом его, конечно, можно изменить.

Если хотите изменить имя или описание выражения, используйте контекстное меню на эскизе выражения выбирая пункт "Edit…"

Можно использовать скрол мышки, для пролистывания выражений (их эскизов).

Можно растягивать время действия выражения, растягивая его линию в окне Choreography, или просто перемещать захватив мышкой. Переместить выражение в канал Choreography можно простым перетаскиванием. Таким же образом его можно перетащить в окно Flex Animation.

Support for Markov Groups of Expressions

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

Чтобы создать Markov group, выделите в одной группе выражений несколько эскизов выражений (удерживая shift), затем нужен правый клик на одном из выделенных выражений (эскизов), и выберите в контекстном меню "Create Group…", введите имя группы и описание.

Эскизы Markov groups представляют собой почти то же, что и эскизы обычных выражений, но с дополнительной информацией:

Во первых, в них показана значимость (weight) входящих в группу элементов (выражений). По умолчанию, каждое выражение Markov group имеет 100. Т.о., если в Markov group включено 2 выражения, значимость будет 200. Надпись "Prob" показывает вероятность запуска текущего (отображаемого на эскизе группы) из включенных в группу выражений (например, если в ней 2 выражения с одинаковой значимостью, вероятность будет 50%). Вероятность воспроизведения данного выражения зависит и от количества выражений в группе и от значимости данного выражения, чем больше значимость, тем больше вероятность воспроизведения (например, если в группе 2 выражения, и одно имеет значимость 80, а второе 20, то вероятность воспроизведения второго выражения будет 20%).

Во вторых, выше надписи "Prob" написано, какой из элементов показан, сколько их всего, и значимость текущего элемента. Можно просматривать включенные в группу элементы, выделив её, и прокручивая колесо мыши, в это время, включенные в группу выражения (их эскизы) будут обрамлены синим цветом.

Есть 2 способа изменить значимость выражений входящих в состав группы. Первый – как написано выше добраться до нужного элемента группы, и в контекстном меню использовать команду "Change weight of 'ХХХ'. Второй – используя команду в контекстном меню не группы, а обрамленного синем элемента.

Добавить элемент в группу можно выделив группу, сделав правый клик на элементе, который вы хотите добавить, и выбрать в открывшемся меню "Add '[expression name]' to group 'group name'".

Удалить элемент из Markov group тоже просто – выделите группу, откройте контекстное меню обрамленного голубым элемента, которой хотели удалить, и используйте пункт "Remove '(name 'from group)'.

В остальном, Markov group это то же, что и обычное выражение, только при воспроизведении оно выбирает случайное выражение из включенных в него.

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

Чтобы сделать такое переопределение, выберите выражение, и перемещениями ползунков flex sliders создайте выражение, которое вы хотите переопределить. В контекстном меню выражения, выберите "Save <name> as an override for model 'current model'", где <name> это название выражения, а 'current model'" – модель (текущая в 3d View).

Если вы сделали это, то на эскизе выражения появится надпись "++override", означающая, что это выражение назначено какой-то определенной модели. Можно удалить назначение через контекстное меню. Галка "Show overrides" определяет, показать или спрятать их при предварительном просмотре воспроизведении и т.п.

Choreography Tool

Пожалуй, главный инструмент FacePoser – это the choreography tool. Этот инструмент используется для упорядочивания выражений и других анимаций и позволяет получить в пред- просмотре то, что будет в игре. Также инструмент помогает производить взаимодействие между виртуальными актерами.

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

Если scene file пока у вас не открыт, вы увидите соответствующее предупреждение. Для создания нового .VCD пользуйтесь меню Choreography | New from. Для загрузки существующего - Choreography | Load… Если вы создали новый choreography file, в него надо добавить актера вписав любое имя. Если не захотели добавлять его сразу, это можно сделать потом, используя меню Choreography | New Actor.

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

Для добавления канала к актеру, используйте правый клик на имени актера, и выберите в открывшемся контекстном меню "New Channel…"

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

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

Из-за временных проблем (issues), некоторые диалоги игры были разделены на множество .wav файлов. Для иностранных версий, эти .wav файлы рассматриваются как сгруппированные в одиночный .wav файл, для удобства прослушивания. Таким образом, когда .wav файл выбран, меню, по правой клавиши мыши, будет содержать несколько добавочных пунктов для группировки и разгруппировки .wav файлов и запрета заголовков. Если вы не работаете над локализированной, одиночной модификацией игры, вы, возможно, не нуждаетесь этих предупреждениях.

Choreography Events (Events – в переводе с английского – «событие»)

В системе choreography возможно несколько типов событий:

Expression (Выражение)

Актер принимает соответствующее выражение, когда оно активировано, и перестает принимать, когда оно перестанет быть активным. Можно заставить актера принять 2 выражения одновременно, разместив перекрывающиеся выражения в разных каналах, а можно заставить менять их в определенное время используя Ramp Tool (см. далее)

Gesture (жест, телодвижение…)

The actor triggers the named gesture. Gestures представляют собой кривые линии которые редактируют в Gesture Tool (см. далее). Пересекающиеся Gesture в местах пересечения затухают. "NULL Gesture" можно использовать для плавного затухания Gesture (при пересечении).

Sequence (последовательность)

Командует актеру проиграть определенную последовательность анимации.

WAV File/Speak event

Актеры воспроизводят только звуки, имена которых занесены в файл game_sounds.txt (это может относится и к необработанному .wav файлу, если вы используете такую бяку) который содержит теги фонемы (и следовательно viseme) созданные в PhonemeEditor. Кликните кнопку "Show all sounds", чтобы лицезреть звуки, not marked at CHAN_VOICE in the sounds.txt files, otherwise, the list is restricted to such files. You can also choose a raw .wav file using the Choose File… button or by typing in the relative path into the Speak .WAV combo box text file

Look at (Смотреть на…)

Актера можно заставить смотреть на другого актера сцены (но только глазами ?)

Move to (Идти к…)

Актер будет идти к указанному актеру или другой досягаемой цели. При редактировании можно использовать предварительный просмотр пошаговый и плавный (pitch/yaw) для постановки сцены. Однако на движке это будет выглядеть не совсем так. (This is ignored by the engine, but is useful for making sure the actors move their heads as scripted in the .VCD file.)

Замете, что при перемещении актер использует систему Source engine AI, так что в зависимости от обстановки (типа препятствий), время перемещения актера в игре может изменяться. Если завершение перемещения критично для продолжения сценки, необходимо добавлять "Pause" во время перемещения актера, а в конце движения - "Resume Condition". Это позволит сцене приостановить воспроизведение во время перемещения актера, и возобновиться когда актер дойдет до нужной точки.

Face

Лицо одного из актеров на сцене. (на него будет смотреть наш актер?)

Flex animation

Используется для анимации с помощью splines (кривых). (Смотри Expression Tool).

Fire Trigger

Запускает AI trigger.

Generic

Это нужно для кодирования CSceneEntity в игровом .dll коде для обработки (processing).

Sub-scene («Под-сцены»)

Высокоуровневый .VCD может моделировать несколько или одну "sub-scenes" которые будут по отношению к нему вложенными. Однако обратите внимание что эти самые "sub-scenes" не могут иметь своих "sub-scenes" (в текущем релизе).

Permit Responses

At certain times during a scene, an actor might not be speaking and if the player is doing something which generates an response from the response system, then if the actor's scene is at a time when a "Permit Responses" event is allowed, then the actor can play the interjected response while continuing to be an actor in the .VCD.

Заметьте, что для взгляда, перемещения, and facing, возможно сделать так, чтобы целевым актером стал игрок, если выбрать имя актера "!player". Есть и другие специальные целевые имена, "!self", "!enemy", "!friend", и "!target#" при которых конкретные цели будут определены дизайнером уровня который на карте укажет их с помощью ентити logic_choreographed_scene.

Creating and editing events (создание и редактирование «событий»)

Чтобы создать event, откройте контекстное меню любого пустого канала любого актера, к которому вы хотите добавить event. Заметьте, что позиция мыши во время клика будет определять время начала запуска создаваемого event (потом это время можно изменить). Выберите, например, "New Event | Expression". Вы сможете выбрать выражение (из текущего класса выражений), вписать имя, и время начала и конца (некоторые Event имеют настройку называющуюся "fire and forget"). Для завершения создания жмите OK. Note that start times can be relative to any existing timing tags embedded in relation to other events in the scene, such as SPEAK events. If you move the SPEAK event or the tag within the event, any relatively offset events will be moved along with the SPEAK event. Furthermore, depending on the type of event, there are additional parameters that show up in the various Add/Edit event dialogs.

The new event will show up in the channel area of the current actor. Because the above example created an Expression, a face icon will show up under the bar showing the duration of the event. You can drag the bar with the left mouse button to move the event. Hovering the mouse or clicking near the left/right edge will show a sizing cursor allowing you to change the start or end time by clicking and dragging with the mouse button at that point.

Для удаления event можно нажать клавишу "Del" на клавиатуре или использовать соответствующий пункт контекстного меню.

Вы можете изменять свойства любого event, используя пункт контекстного меню "Edit | Event <name>". Или можно выделить желаемый event и нажать Alt-Enter.

Further details about any event under the mouse are shown along the bottom of the Choreography Editor.

Using the timeline (использование линии времени)

There is some additional information in the time line at the top of the screen. First, (depending on how much of the scene you can see based on your current zoom level) there is a dashed blue line showing the end time of the final event in the scene. In addition, there are typical VCR controls (Play, Pause and Stop) in the top left of the tool window. The Space bar can also be used to play or stop the scene. If you click the play button and have some active events, they will be played back for viewing in the 3d view area. Clicking play will show a green time scrubber at the top as it moves from left to right. If the current playback time is not within the view, the current time is still printed at the top left.

Various tools in FacePoser use a scrubber. The scrubbers all match the current playback time. You can click and drag a scrubber to manually play the scene forward or backward. Or you can click in the horizontal tray where the scrubber is drawn to have the scrubber automatically play until the clicked position. Note that all of the scrubbers across all of the tools in FacePoser are synchronized to each other.

If you left-click and drag a scrubber, the current scrub position is shown with a vertical bar.

The Choreography view also has a slider for changing the playback rate, so you can watch the preview in faster or slower than normal speed.

If you move the mousewheel in an active tool (or, in a few cases where the mousewheel already performs another function, hold Shift and move the mousewheel) then the tool will zoom in/out based on the movement of the mousewheel.

A scene can have "global" Pause events placed. To create a Pause event, right-click anywhere in the channel name or channel tray for any actor and choose "New Section Pause…" from the menu. You can give the section pause a name, and you can have the section pause optionally perform an automatic action. The need for the section pause events arises out of the need for triggering of certain events that have ambiguous end times. For instance, as noted above, a "move to" event might be triggered which will cause the AI to start the actor moving to his/her next position. Due to obstacles, movement speed, etc., it is not possible to exactly determine how long it will take the actor to arrive at the location. This is a good location for a Pause event. In general, you can simply institute a section pause just after issuing the "Move To" event to an actor. The AI system will later notify the scene that the "Resume Condition" for the pause has been satisfied (assuming you checked the "Resume condition" checkbox in the event properties for the events overlapping the Pause point).

In other words, you would tag the "move to" event that you are waiting for as a "Resume Condition". To tag an event as a resume condition, you can right-click on the event in the channel tray and edit its properties and click the check box labeled: "Event must complete for paused scene to resume".

It is possible that an actor being told to move to a spot, etc., can fail to arrive in that spot for some reason. In this case, the scene designer can decide to automatically take one of two actions: 1) resume the scene anyway, or 2) cancel playback of the rest of the scene. To set the automatic resume action, right-click on the blue triangle marker for the "Section Pause" event and choose "Edit" from the menu. In the properties dialog, you'll notice a checkbox next to the word "Automatically". If you check this box, then you can choose what action to automatically perform. The drop-down list allows you to choose to either "Resume" or "Cancel" and the final text entry area allows you to specify how long of a delay to allow before automatically taking action.

During playback of the scene in the engine, if any AI event that is marked as a "resume condition" takes less time than the "automatic" action you've specified, the automatic action is skipped since it was not needed.

Like the Section Pause event, the "Loop" point event is similarly a global trigger for the scene. Instead of pausing however, the Loop point event allows resetting the .VCD clock backward to the beginning of the .VCD or to a specified time offset. Using this event near the end of your .VCD is useful for making it loop. You can specify that the event should loop a set number of times, maximum, or that it loops forever by editing the Loop point's properties.

Events that don't have an end time (i.e., which are just triggered at the start time) are shown without a "sizing" bar and can only be moved left or right in time by dragging them around. To specify an end time, right-click on the event and edit the end time and check the checkbox next to End Time. (Note: the End Time must be after the Start Time). An end time of -1.0 is the same as specifying "no end time".

Other Choreography Features (другие возможности Choreography)

In general you cannot accidentally move events between channels. To drag an event from one channel to another, hold down Shift as you are dragging.

Because multiple events can overlap in a single channel, the right mouse menu on an event has a "Move event <name> to back option" which can make it easier to see and select underlying events. In addition, FacePoser will expand the layout of the channel vertically to accommodate overlapping events.

Events can be copied to and pasted from the clipboard from the right mouse menu.

Events can be exported and imported from simple event text files (also from the right mouse menu).

You can see the Ramp of all events only by choosing "Ramp only" from the right-click menu.

You can ask the FacePoser to verify that all animation sequences are valid (i.e., non-looping if needed and of correct duration) by choosing "Check sequences"

You can turn off sequence processing from the preview (keeping the camera mostly on the actors' faces) by un-checking the "Process sequences" menu option.

Finally, because the FacePoser supports multiple actors you should associate the .VCD actor slots with loaded .MDLs. You can do this from the right-click menu or from the models tab in the main window tool area at the bottom right of the application.

You can also associate a .BSP or map file with a .VCD, so that the relative positions of targets and the names of other actors/entities can be loaded when browsing in various properties dialogs.

Phoneme Editor and Extraction Tool

In order to perform phoneme extraction you must have the Microsoft Speech API 5.1 (SAPI 5.1) installed. It can be downloaded from Microsoft's web site at the following URL:

http://www.microsoft.com/speech/download/old/sapi5.asp

The FacePoser application contains a tool for editing phoneme/word tags for the .wav files that actors can use with the "SPEAK" event. You can either load a scene that contains a spoken .wav file and the select any of the SPEAK events in the Choreography View, or you can directly load a .wav file by clicking the "Load" button along the bottom of the Phoneme Editor view.

Once you've loaded a .wav file, the display will show the general wave form of the sound file. In addition, along the top, the display shows the previously recognized words of the sentence, while along the bottom the display shows the previously tagged phonemes of the spoken .wav. Useful information about the .wav file is displayed in the bottom section of the view. The full text of the sentence, and information about the currently selected phoneme/word is displayed along the right side of the workspace. There is a scroll bar at the top to allow sliding the view of the wave view left/right. In addition, the mouse wheel can be used to zoom in/out. The zoom factor is shows at the bottom left of the tool window. Finally, there is a tab control that allows changing from manipulation of phonemes to editing of phoneme emphasis or of close captioning/localization information.

Phoneme Editor Tools

The row of buttons along the bottom of the editor view have these functions:

Redo Extraction

Resubmits the sound file to the speech recognizer. If this is successful, a new list of words/phonemes will show up "inset" from the original data. To accept the new data and begin editing it, right-click in the workspace (in the wave form display) and choose "Commit extraction" from the context menu. To remove the inset data, right-click and select "Clear extraction" from the menu. Note, committing the results doesn't clobber the original .wav file, that only occurs when you click the "Save Changes" button, or you say "Yes" to the "Save file" prompt when changing .wav files or quitting the FacePoser application.

Save

Press the save changes button to save the working .wav file out to disk.

Load

Load a new .wav file into the editor for editing.

In addition, there are several less often used commands available from the right mouse context menu:

Play

This option has three sub-options to play the original .wav, the edited wav or just the selected portion, if a selected portion is active. Playing and stopping the .wav can also be accomplished by pressing the Spacebar.

Load/Save

These options either load a new .wav or save the changes made to the current .wav.

Stop

Stops all sound playback on the sound engine

Also, there are additional options available from the right-click menu.

Deselect

If you've marked some portions of the .wav file as selected by dragging the left mouse along the wave form, you can click this button to remove all such markings.

Redo extraction

Same as above

Redo extraction of selected words

This option requires that you have a portion of the wave form selected as well as a contiguous set of words form the sentence selected. The option will send the subset of the sentence off to the phoneme extraction tool and will display the results when finished. The tool will not change the positions of words, though it will wipe out and re-populate any phonemes belonging to words in the set. Sometimes the phoneme extractor has a hard time with long sentences. In such cases, working on sections of the sentence piecemeal can help with extraction.

Commit extraction

If word/phoneme data has been processed by the extraction system, choosing "Commit" will overwrite the current working data.

Clear extraction

Throws away the "uncommitted" data.

Cleanup words/phonemes

Iterates through all phonemes and words and finds words that are within a couple of pixels of touching (or are overlapping by such and amount) and fixes up the start/end times of the words/phonemes.

Change Speech API

The SDK version of FacePoser supports Microsoft SAPI 5.1 for performing automatic phoneme extraction from .wav files.

Import / export word data to .txt

If you need to work with the .wav file in a sound tool which strips our data chunks, you can save the original data lump into a .txt file and reapply after you edit the .wav externally.

Disable voice duck

The Source engine automatically lowers non-voice volume levels when a spoken wav is playing back. This behavior can be disabled for a spoken .wav by choosing "Disable voice duck" from the right-click menu.

Other Controls

In addition to these buttons, the mouse and keyboard can be used to perform various actions on the words/phonemes/wave form.

The general interaction UI works as follows:

To select, simply left-click on items.
To deselect, click outside the item area for type of item being used
To shift the position of an item left, right, hold down the SHIFT key
To shift a boundary/edge of an item, hold down the CTRL key

Note that the cursor will reflect the appropriate mode (4 way cursor == item can be shifted, East-West cursor means item can be resized)

Waveform Editing

To select a portion of the waveform, simply click and drag with the left mouse button. To move the selection area, hold SHIFT and use the left mouse to drag the area. To resize the selection, hover the mouse over the solid blue lines at either edge while holding the CTRL key. To deselect, click anywhere outside of the current selection, or press the ESCAPE key. You can play the current selection or re-extract phonemes using the right mouse context menu or by hitting the SPACE bar.

Word Editing

Use the left mouse to select words. Once selected, one or more words can be moved by holding down the SHIFT key and using the mouse to drag the selection. If a single word is selected, it can be moved by holding down the SHIFT key and using the RIGHT or LEFT arrow on the keyboard to shift it pixel by pixel. The size of a word can be adjusted by holding the CTRL key and hovering the left mouse over the edge of the word, then clicking and dragging the edge left or right. The right boundary (end time) of a word can be adjusted using the keyboard by holding CTRL and using the RIGHT/LEFT arrows.

To deselect words, click anywhere outside of the word area (e.g., just above the words area works just fine)

Right clicking without words selected brings up a context menu with just a couple of options: First, the "Edit sentence text…" option allows you to specify the entire text of the current sentence. Clicking okay to exact the dialog will cause phoneme extraction to be performed again. Additionally, "Cleanup words phonemes" is an available option any time a .wav is loaded.

If you have one or more words selected, the right menu shows additional options:

Delete 'word' - You can delete the selected word(s) using this option.

Edit 'word' - If there is just one word selected, you can type in new text for the word by selecting this option. Only one word may be entered.

Insert word before/after 'word' - If you have a single word selected, and there is sufficient time before/after the word, then you can insert a new word by choosing this menu item. A dialog appears in which you can type a single word, once you click OK, another dialog appears which allows you to pick one or more phonemes for the word just entered. You can type a space separated list of phonemes, or click one or more phoneme buttons to create the phoneme list for the newly entered word, or just click Cancel to put in a word with no phonemes.

Add phoneme to 'word' - If the selected word doesn't have any phonemes, you can choose this option to allow entry of a string of one or more phonemes to use for the word.

Select all words before/after 'word' - If a single word is selected, you can use this option to select the rest of the row in either direction (so you can shift everything down with the mouse easily)

Deselect all - Deselects all words/phonemes currently selected

Merge words - If two or more contiguous words are selected, choosing "Merge words" will make the start time of each word match the end time of the previous word

Separate words - If two or more contiguous selected words are close together, this option will provide a bit of space between the words.

Clear Undo - Resets undo information, deleting the undo history.

Phoneme Editing

The phoneme area behaves almost identically to the word area as far as mouse and keyboard interaction are concerned.

When using the mouse to drag one or more selected phonemes/words, selection rubber band while dragging as well as the entire move is bounded to a valid amount of space.

Phoneme Editor Keyboard Shortcuts

ESCAPE - if a .wav is currently being played, stop playback. If not, deselects all words/phonemes/selection areas

PGUP/PGDN - moves the keyboard focus either to the word area (PGUP) or the phoneme area (PGDN). The current focus area is shown by a light green bar along the top or bottom edge of the word or phoneme display. Clicking/manipulating words or phonemes will set the focus appropriately.

RIGHT/LEFT arrow - The right/left arrows move and select the next or previous word or phoneme. For phonemes, the arrows cycle within a word.

TAB/SHIFT + TAB - You can change words at any time by using the TAB key.

SHIFT + ARROW KEY - Move the selected word/phoneme to right or left

CTRL + ARROW KEY - Resize end position of selected word phoneme

INSERT / SHIFT + INSERT - Insert a new word to right/left of selected word/phoneme

DELETE - Delete selected word(s) (which deletes all phonemes of the word, too) or delete selected phoneme(s).

UP or CTRL+RETURN - Edit the selected word or phoneme.

CTRL+Z - Undo
CTRL+Y -Redo

SPACE - Play selection or entire wav file.

Phoneme Emphasis Editing

By clicking on the "Emphasis" tab with a .wav loaded, you'll see most of the view grayed out but there will now be a work area with a blue line at the center of the screen. You can create an emphasis spline by laying down points using the CTRL key and left-clicking on points in the work area.

Once you have placed points, you can select them (shown in red) by dragging a rectangle around the desired points with the mouse. To move the points, just left-click on one or more selected points and move the mouse. If you right-click in the work area, there are various options for selecting/deselecting all points and for undo/redo of editing changes.

The emphasis track scales the intensity of phonemes during playback. For certain phonemes, you may want to author a "weak" and "strong" version and add these to the "phonemes_weak" and "phonemes_strong" expression class files. Note that Valve did not actually use this feature in shipping HL2 (but in theory, it should work).

The blue center line is normal emphasis of the phonemes in the "phonemes" class. As the line goes to the top, the amount of the phoneme from phonemes is faded out and the phoneme from "phonemes_strong" is faded in. If a phoneme doesn't have strong or weak override, then the absolute scale for emphasis is appropriately clamped.

Close Captioning Tool

By default, the English text is inserted into the close captioning view as a single "phrase". The right mouse menu allows splitting up or joining of phrases to get the close captioning data to lay out as desired.

Playing the .wav from this view shows a mini-preview of the close captioning in the upper right corner.

You can embed formatting parameters into phrases, choosing "edit" from the mouse menu gives a legend of available options.

Line breaks, color changes, bold, italic and extra lingering (default 2 seconds) for phrases can all be accomplished by embedding appropriate HTML-like codes into the CC phrase data.

Flex Animation Tool

The Flex Animation tool дает больше возможностей лицевой анимации, чем Expression tool.

The Flex Animation tool allows more control over facial expressions than the poses created with the. Instead of setting the Flex Sliders to specific positions, the tool allows animation of both the amplitude and left/right portion of such sliders along a smooth curve.

If you create a new "Flex animation" event or select one from the currently visible .VCD scene data, then the "Flex Animation" tool will contain information useful for animation of individual flex control sliders.

When an event is selected in the expression view, the name of the event is displayed in the top left corner as a reference. In addition, for each flex controller, there is a work which indicates the name of the controller at the left and whether that controller is currently enabled (active controllers are highlighted in green). Furthermore, for active controllers, the number of sample points is also shown in brackets in red text.

Right-clicking brings up a context menu with the following options:

Expand:
All - maximize all rows.
Used - only rows with one or more sample points.
<Track name> - expand only the track you right-clicked on.

Collapse:
All - collapse all rows.
<Named track> - collapse only the track you right-clicked on.

Enable/Disable - Doesn't change expansion, but turns influence on/off so you can isolate one or more tracks.

In addition, the context menu has timing tag editing info (timing tags are explained below):

Insert timing tag - allows placing a named timing tag at the mouse click position.

If you right-click on the triangle marker for a timing tag you can:

Unlock timing tag/Lock timing tag - locks/unlocks tag under mouse
Delete timing tag - Delete tag under mouse

You can move a timing tack by left-clicking in it and moving the mouse.

Furthermore, right-clicking inside the drawing area of any individual flex controller row (whether collapsed/minimized or not) will bring up the following context menu:

Copy/Paste - copies all sample points to clipboard, these can be pasted into another row (replacing the contents of the other row completely) (CTRL+C/CTRL+V shortcuts)

Select all - selects all sample points

Deselect all - deselects sample points (ESC is shortcut)

Delete - Deletes selected sample points (DEL key is a shortcut)

Edit left/right/Edit amount - switches edit mode for stereo/paired controllers (SPACE key is shortcut for switching)

To place sample points, place the mouse over the drawing area of a non-collapsed flex controller row, hold the CTRL key and click the left mouse button.

To select a sample point, place the mouse over an existing sample point, then left-click on the point. To add to the selection or toggle the selection of a point, hold SHIFT and select a point.

To move one or more selected sample points, click with the left mouse or the right mouse one of the selected points and drag the selection while holding the left mouse down. The left mouse drags the magnitude of the point, but leaves the time unchanged. The right mouse can be used to move the time, but not change the magnitude of a selected point. If you hold the CTRL key you can freely drag one or more selected points along the time or magnitude axes.

You can select points within a selection rectangle by clicked and dragging a rectangle inside the edit area of a flex controller track. You can hold SHIFT while dragging a rectangle if you don't want to deselect all points outside of the rectangle.
If you click anywhere in the edit area that's not a selected point, all selected points will be deselected.

Selected points are highlighted in red; all other points are shown in blue.

You can select points among multiple tracks and certain commands like "delete " will delete all selected points across all tracks.

Certain operations can be performed on a vertical sub-slice of the event, which can be thought of as covering all of the tracks at once. First, you must select the points in a vertical slice. You do this by clicking just above the workspace of the first track and dragging out a selection area. A blue area will be drawn once you release the mouse after moving it horizontally. All sample points between the start and end time of this rectangle will be selected. They can be manipulated or deleted as a group. You can move the selection area by hold SHIFT and left-clicking with the mouse to move the entire area, or by holding CTRL and moving either the left or right edge of the selection area. Simply click outside of the selection area to clear the selection.

Paired flex controller items are edited as above except there is a second spline that shows the left/right panning of the flex controller over time. Paired items show left and right and current edit mode along the left edge of the area when expanded. You can toggle between modes by hitting the SPACE bar. The current mode is shown along the left edge of the edit area. The spline and all points for the other mode are shown in light gray.

As a further aid to getting relative timings correct, any relative tag names for overlapping events (such as a .wav file relative tag) are be displayed in the Flex Animation tool as a blue triangle/name markers with a light blue vertical line at the appropriate time position. These relative tags can be used to synchronize flex animation sample points to tags associated with .wav file and other playback events.

There are a few additional functions available from the right mouse menu.

If you like the facial expression at a certain time, you can create one from a snapshot of the slider positions at that time by selecting "Create Expression…" from the menu.

There are functions to import and export flex animation splines to simple text files.

You can sort the flex animation tracks by usage (used before empty) or alphabetically by name from the Sort menu.

The final part of the UI for the Expression Tool is something called "Timing Tags". These are tags used just by the current flex animation event for dealing with timing issues. Timing tags, once locked, can be moved and all sample points on the left / right of the timing tag until the left/right edge of the edit area (or until the next closest locked timing tag) will move in such a way as to preserve the general shape of the sample point spline after the move. Thus, you could use a timing tag to correspond to a relative tag name and then just move the locked timing tag to compensate for movement of the relative tag. The timing tags can be locked/unlocked by right-clicking on them. Furthermore, you can delete tags by right-clicking and choosing "delete" from the context menu. You can also move timing tags by using the left mouse to select and drag the vertical timing tag line. As noted above, if a locked tag is moved in this manner, the general shape of the spline to the left and right of the locked tag is preserved.

The scrubber in the Flex Animation tool works just like the main scrubber in the Choreography View.

Ramp Tool

The Ramp Tool determines the absolute magnitude of any event over time. It is useful for creating an envelope describing how quickly to fade in and out of an event, but because it's based on Catmull-Rom splines, much more complicated envelopes are easily described.

The UI for the ramp tool is identical to that of editing a single flex animation slider in the Flex Animation tool.

The general shape of the ramp is also drawn as a black line over each event in the Choreography View.

Scrubbing works as with the other tools.

Gesture Tool

The gesture tool allows for altering the playback timing of a gesture sequence for an actor model.

The gesture tool consists of a "Playback Time" top section and an "Original Time" bottom section. The way this tool works is that relative tags are inserted at various points along the timeline and then the time at which that tag happens in the Playback Time area can be offset from the time in the Original Time during playback. In other words, Playback Time is a real time clock and you can hit marks in the underlying gesture animation faster or slower than actual time based on the positions of the corresponding tags. The green scrubber at the top shows real time, while the red informational scrubber at the bottom of the screen shows where in the actual gesture animation playback is occurring at the time.

You can add additional timing tags by selecting "Insert Timing Tag…" from the right-click menu. You can then drag the timing of the tag from either the top or the bottom in order to adjust relative timing position.

You can delete tags using the right menu.

Choosing "Revert Timing Tags" will line up timing tags vertically, i.e. at the same time. This can be used to "restart" any relative timing you are trying to accomplish.

You can move timing tags with the left mouse. You cannot move a tag past another already placed tag. This preserves that playback will move forward smoothly in the animation and playback frame rate will be the parameter which is varied.

Control Panel

There are only a couple of things to note here, first is a model spacing slider which spreads models apart when you have more than one model active in the 3d View.

The second is the "All tools drive mouth" checkbox. When this is selected, any scrubber from any tool window will drive the WAV events and thus cause sounds to be played, etc. If not, then only scrubbing in the main choreography window will cause sound to be heard.

Waves Browser

The Waves Browser can be used for quickly navigating all of the sounds used by the game and previewing them or selecting them for editing in the Phoneme Editor.

Time Sample Snapping

The final controls of note are the fps and snap controls in the lower right of the main window tool bar. When snapping is on, you can change the granularity of sample point positioning for events and spline samples by clicking the "<n> fps" button and typing in a different nominal frame rate. For instance, if you click snap so that it indicates "snap: on" and click <n> fps and enter 10 fps, then many of the tools will show your current mouse time position as a frame and sub-frame indicator

E.g., at 10 fps, time 1.8 would be 1 + 8 /10 seconds and frame 18.

All mouse manipulation will snap to this granularity when the snap button is marked on. The current fps and snap settings are saved into your .VCD file.

FacePoser Source Code

The code for the FacePoser tool itself is not currently in the SDK. However, all of the code for a choreography scene (including actors, channels, and raw events) is included in the SDK in the game_shared folder as choreo*.cpp/.h. In addition, the server.dll code for the logic_choreographed_scene entity is included in the SDK at dlls/sceneentity.*. All of the code for setting up the facial controllers is contained in the server at dlls/baseflex.* and in the client at cl_dll/c_baseflex.*.


© 2004 Valve Corporation. All rights reserved. Valve, the Valve logo, Half-Life, the Half-Life logo, the Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the Counter-Strike logo, Source, the Source logo, Hammer and Counter-Strike: Condition Zero are trademarks and/or registered trademarks of Valve Corporation.  Microsoft and Visual Studio are trademarks and/or registered trademarks of Microsoft Corporation.  All other trademarks are property of their respective owners

  Рейтинг@Mail.ru

Хостинг от uCoz