Ja/Choreography creation/Implementation: Difference between revisions

From Valve Developer Community
< Ja
Jump to navigation Jump to search
No edit summary
 
m (fix)
Line 1: Line 1:
[[Category:Japanese]]
[[Category:Japanese]]
originally translated by [[User:RumikoHoshino|RumikoHoshino]], 2005/9/13<br />
originally translated by [[User:RumikoHoshino|RumikoHoshino]], 2005/9/13<br />
original English version: [[Choreography Implementation]](訳注:オリジナル�?�記事�?�未完�?�?��?��?��?�??れ�?�も役立�?�情報�?��?�る�?��?�翻訳�?��?��?��?��?�)<br />
original English version: [[Choreography Implementation]] (訳注:オリジナルの記事は未完成ですが、それでも役立つ情報があるので翻訳しています)
振り付�?�シーン�?�実装
振り付けシーンの実装
 


==Introduction==
==Introduction==
?れ?振り付?を行??シーンを??よ??Source Engine??り込む????実際的?テクニックを紹介?る???ページ??。????焦点?vcdファイル????効果的?使用方法??。????関連??テクニック?faceposer????ら???ンマーやXSI????外部?も広?る??も?????り??。


振り付�?�シーン�?�基本�?素�?��?�れる�?��?�?��?��?��?�る�?��??�?��?��?��?SDK�?��?��?�れ�?��?�るサンプルマップを実行�?��?��?�る�?��?��?��?�:<code>"...\SteamApps\<your username>\sourcesdk_content\hl2\mapsrc\sdk_faceposer.vmf"</code> �?��?�マップ�?�HL2�?�製作中�?��?ュートリアル�?��?��?�作られ�?�も�?��?��?�。
これは振り付けを行ったシーンをどのようにSource Engineに取り込むかという実際的なテクニックを紹介するためのページです。ここでの焦点はvcdファイルとその効果的な使用方法です。しかし、関連したテクニックがfaceposerにとどまらず、ハンマーやXSIといった外部にも広がることもしばしばあります。


振り付けシーンの基本要素になれるためにまずするべきことは、SDKに含まれているサンプルマップを実行してみることです:<code >"...\SteamApps\<your username>\sourcesdk_content\hl2\mapsrc\sdk_faceposer.vmf"</code > このマップはHL2の製作中にチュートリアルとして作られたものです。


[[Hammer_User%27s_Guide|?ンマー]]?らマップをコンパイル??Hl2?読?込???。??マップ?使用?れ??る全??VCD?以下?場所??り??: <code>"...\SteamApps\<your username>\half-life 2\hl2\scenes\ChoreoExamples"</code> ?能??れ?マップを????ら??れら?VCDをFacePoser?見??る??を?????。も?HL2?起動???る間?VCDを編集?る?ら?コンソール?<code>scene_flush</code>を入力????れ?らマップを?スタート?る?変更??VCDを見る????????。


(以下�?�アウトライン�?��??案�?��?�。肉付�?��?��?��?�る�?��?��?�変更�?��?��?��??�?��?�。)
[[Hammer_User%27s_Guide|ハンマー]]からマップをコンパイルし、Hl2に読み込みます。このマップで使用されている全てのVCDは以下の場所にあります: <code >"...\SteamApps\<your username>\half-life 2\hl2\scenes\ChoreoExamples"</code > 可能であればマップを遊びながら、これらのVCDをFacePoserで見てみることをすすめます。もしHL2が起動している間にVCDを編集するなら、コンソールで<code >scene_flush</code >を入力し、それからマップを再スタートすると変更したVCDを見ることができます。
 
(以下はアウトラインの提案です。肉付けしているうちに変更していきます。)
 
==なぜVCDを使うのか?==
*強力。VCDは広い範囲の要素を一緒に、そして精密に振付けることができます -- 音、特殊効果、アクターへの指示(ブロッキング)、アニメーション、そしてシーン・マップのロジックなど
*早い繰り返しテスト。 VCDの変更を見るのにマップを再コンパイルする必要はありません。Scene_Flushを使います。特にイベントのタイミングを調整するのに適切です。
 
==Source EngineでのVCDの再生方法==
*マップ内で[[Logic_choreographed_scene|Logic choreographed scene]]エンティティを使用
*[[Response_System|Response System]]を使用
**Lead/follow振る舞いサンプル(aftermath後?)
 
 
==シーンへのアプローチと計画==
*どの要素が関わっているのか?
*どのアクターが関わっているのか?
*プレイヤーはどのように関わるか?
*どのようにシーンがマップロジックに組み込まれるか?  
**シーンが始まる条件
**シーンの一時停止・再開、インタラプトを行う条件
**できるだけ多くをVCDから駆動することの効用
***極めて重要なFire Trigger(トリガー発射)イベント


==??VCDを使????==
*強力。VCD?広?範囲??素を一緒??????精密?振付?る???????? -- 音?特殊効果?アクター??指示(ブロッキング)?アニメーション?????シーン・マップ?ロジック??
*早?繰り返?テスト。 VCD?変更を見る??マップを?コンパイル?る必???り??ん。Scene_Flushを使???。特?イベント?タイミングを調整?る???切??。


==Source Engine??VCD??生方法==
*マップ内?[[Logic choreographed scene]]エンティティを使用
*[[Response System]]を使用
**Lead/follow振る舞?サンプル(aftermath後?)


==シーン??アプロー??計画==
*???素?関????る???
*??アクター?関????る???
*プレイヤー???よ??関?る??
*??よ??シーン?マップロジック?組?込?れる??
**シーン?始?る?件
**シーン?一時?止・?開?インタラプトを行??件
**???る??多??をVCD?ら駆動?る???効用
***極?????Fire Trigger(トリガー発射)イベント
==Blocking out a scene==
==Blocking out a scene==
*Info_targetエンティティ
*Info_targetエンティティ
*DebugText�?�使用
*DebugTextの使用
*新�?��?�ダイアログエントリー�?�追加
*新しいダイアログエントリーの追加
*シーンロジック機能�?�導入
*シーンロジック機能の導入
 
==!Target#の使用==


==!Target#�?�使用==
"#"の部分に1-8までの数字が入った"!Target#"という名前("!Target1", "!Target2",..."!Target8")はFaceposer内での特別な一時的な名前になっています。VCD内で"!Target#"の名前を使っていると、エンティティ[[Logic_choreographed_scene|Logic_choreographed_scene]]のプロパティからその名前が実際に指すエンティティを指定できます。この柔軟な名前を使った方法は、様々な場所で使われるが、アクターとイベントターゲットの名前は毎回違うようなVCDにおいて役立ちます。
"#"�?�部分�?�1-8�?��?��?�数字�?�入�?��?�"!Target#"�?��?��?��??�?("!Target1", "!Target2",..."!Target8")�?�Faceposer内�?��?�特別�?�一時的�?��??�?�?��?��?��?��?��?��?�。VCD内�?�"!Target#"�?��??�?を使�?��?��?�る�?��?エンティティ[[Logic_choreographed_scene]]�?�プロパティ�?�ら�??�?��??�?�?�実際�?�指�?�エンティティを指定�?��??�?��?�。�?��?�柔軟�?��??�?を使�?��?�方法�?��?様々�?�場所�?�使�?れる�?��?アクター�?�イベントターゲット�?��??�?�?�毎回�?��?�よ�?��?�VCD�?��?��?��?�役立�?��?��?�。


"!Target#"�?��??�?�?�アクター�?�もイベントターゲット�?�も使�?��?��?��?��?��??�?��?�。''(Figs 2a , 2b)''
"!Target#"の名前はアクターにもイベントターゲットにも使うことができます。''(Figs 2a , 2b)''  


{| border=0 cellspacing=0 cellpadding=0
{| border=0 cellspacing=0 cellpadding=0
| [[Image:Choreo_TargetName02a_actor.jpg|thumb|250px|left|Fig. 2a - Faceposer�?�"!Target1"�?��??�?�?��?��?��?�アクター''(クリック�?��?�拡大)'']]
| [[Image:Choreo_TargetName02a_actor.jpg|thumb|250px|left|Fig. 2a - Faceposerで"!Target1"と名前がついたアクター''(クリックして拡大)'']]
| [[Image:Choreo_TargetName02b.jpg|thumb|250px|left|Fig. 2b - Faceposer�?�Move To�?�対象を"!Target2"�?��?��?�指定''(クリック�?��?�拡大)'']]  
| [[Image:Choreo_TargetName02b.jpg|thumb|250px|left|Fig. 2b - FaceposerでMove Toの対象を"!Target2"として指定''(クリックして拡大)'']]  
|}
|}


"!Target#"�??�?�?��?��?�エンティティを指�?��?��?�マップ内�?�Logic_choreographed_sceneエンティティ�?�プロパティ�?�指定�?��?��?�。''(Fig 2c)'' Note that there are 8 Target keyvalues in the Logic_Choreographed_Scene�?�プロパティ�?��?�Targetキー�?リュー�?�8�?��?�り�?�??れ�?�れ�?�"!Target#"("!Target1"..."!Target8")�?��??�?�?�対応�?��?��?��?��?�。[[Image:Choreo_TargetName02c.jpg|thumb|250px|left|Fig. 2c - �?ンマー�?�"!Target1"�?��?��?�エンティティを指�?��?�を指定。�?��?�場�?��?��?�"!Target1"をNPC_CITIZENエンティティ�?��??�?�?��?�る"Claude"を指�?�設定�?��?��?��?�る''(クリック�?��?�拡大)'']]  <br style="clear:both" />
"!Target#"名前がどのエンティティを指すかはマップ内のLogic_choreographed_sceneエンティティのプロパティで指定します。''(Fig 2c)''  


===�?�考イラスト===
注意 Logic_Choreographed_SceneのプロパティにはTargetキーバリューが8つあり、それぞれが"!Target#"("!Target1"..."!Target8")の名前に対応しています。


リンク追加予定
[[Image:Choreo_TargetName02c.jpg|thumb|250px|left|Fig. 2c - ハンマーで"!Target1"がどのエンティティを指すかを指定。この場合では"!Target1"をNPC_CITIZENエンティティの名前である"Claude"を指す設定にしている''(クリックして拡大)'']]
<br style="clear:both" />


==シーン�?�一時�?�止/�?開==
==シーンの一時停止/再開==
*Global Pauseイベント�?�使用
*Global Pauseイベントの使用
*自身を一時�?�止�?��?�るFire Triggerイベント�?�使用
*自身を一時停止させるFire Triggerイベントの使用
*一時�?�止�?��?�VCD�?�振る舞�?�
*一時停止したVCDの振る舞い
**イベント�?�アクティブ�?��?��?�(lookAt-対象を見る�?faceTo-対象�?��?��??�?moveTo-対象�?�移動�?�る�?��?�)
**イベントはアクティブなまま(lookAt-対象を見る、faceTo-対象に向く、moveTo-対象に移動するなど)
**ジェス�?ャイベント�?�"ループ"部分を繰り返�?�
**ジェスチャイベントの"ループ"部分を繰り返し
*Nag�?�設定
*Nagの設定


==アクター�?�コントロール==
==アクターのコントロール==
*NPCエンティティ�?�インプット�?Start Scripting(スクリプト開始)
*NPCエンティティのインプット、Start Scripting(スクリプト開始)
*NPCエンティティ�?�フラグ�? Use Alternate Collisions
*NPCエンティティのフラグ、 Use Alternate Collisions
*従�?��?��?��?�アクター�?�使用
*従来にないアクターの使用
**Generic_actorエンティティ
**Generic_actorエンティティ
**ラジオ�?�例
**ラジオの例
**ラマー
**ラマー


==シーン??プレイヤー?関与==
*トリガー?使用?Lookトリガー?AI_Script_Condition
**Eli?研究所?例
===プレイヤー?らコントロールを奪?===
スクリプトシークエンスを映画的?見?るmachinimaを作??る???プレイヤー?カメラ?コントロールを奪????必?????????。マップ??カットシーン????プレイヤー?カメラ?コントロールを奪???[[point_viewcontrol]]エンティティを使?? [[Path_corner | path_corner]]?[[path_track]]ノード?設定を??????。以下?シーンを設定?る基本的?ステップ??(今回?アクタースクリプト?マップ???場所??る?家庭?????)


* シーン内�?��?�カメラ�?置�?�移動�?�計画
==シーンでのプレイヤーの関与==
* point_viewcontrollerをシーン�?��?置
*トリガーの使用、Lookトリガー、AI_Script_Condition
* ステップ1�?��?�計画�?�基�?��??�?path_corners�?�path_tracks�?��?ットワークを�?置
**Eliの研究所の例
* �?��?�カメラ�?�よるシークエンス�?�マップ開始�?��?�も�?�始�?�る場�?�logic_autoエンティティを�?置�?��?��??�?�"OnMapSpawn"アウトプットをpoint_viewcontroller�?�"Enable"インプット�?�接続�?��?��?�。�??�?��?��?��?�場�?��?�何�?�別�?�インプット�?�point_viewcontrollerを"Enable"�?��?��?�。
 
===プレイヤーからコントロールを奪う===
スクリプトシークエンスを映画的に見せるmachinimaを作成するには、プレイヤーのカメラのコントロールを奪うことが必要になってきます。マップでのカットシーンのためにプレイヤーのカメラのコントロールを奪うにはpoint_viewcontrolエンティティを使い、 path_cornerとpath_trackノードの設定をおこないます。以下がシーンを設定する基本的なステップです(今回、アクタースクリプトとマップが同じ場所にあると家庭しています)
 
*シーン内でのカメラ位置と移動の計画
*point_viewcontrollerをシーンに配置
*ステップ1での計画に基づき、path_cornersとpath_tracksのネットワークを配置
*このカメラによるシークエンスがマップ開始とともに始まる場合logic_autoエンティティを配置してその"OnMapSpawn"アウトプットをpoint_viewcontrollerの"Enable"インプットに接続します。そうでない場合は何か別のインプットでpoint_viewcontrollerを"Enable"します。
 
*Point_viewcontroller
point_viewcontrollerは使用可能("enable")になるとプレイヤーのカメラコントロールを奪い、マップ内のエンティティの場所にカメラを設定します。
 
プロパティ
 
Name: point_viewcontrollerエンティティの名前
 
EntitytoLookAt: 使用可能な時にカメラを向けるエンティティの名前
 
TargetAttachment: もし設定すると、カメラは'EntitytoLookAt'で指定したエンティティにある特定のAttachmentに注目します。
 
Hold: 'Hold'で指定した時間がすぎるとカメラはコントロールを開放します。カメラが無限にコントロールする必要がある(machinima映画など)場合は、Flagタブで'Infinite Hold Time'をチェックしてください。
 
PathCorner: トラックシークエンスで最初に移動するpath_cornerの名前
 
フラグ
 
StartAtPlayer: これがオンだとカメラはプレイヤーの視点から開始し、そうでない場合はpoint_viewcontrollerの視点から開始します。
 
FollowPlayer:
 
FreezePlayer:
 
Infinite Hold Time:
 
Snap to goal angles:
 
Make player non-solid:
 
Interruptable by player:
 
 
 


*Point_viewcontroller
point_viewcontroller?使用?能("enable")??る?プレイヤー?カメラコントロールを奪??マップ内?エンティティ?場所?カメラを設定???。


プロパティ
**Alyxイントロのサンプル
*乗り物
**Breenシーンサンプル


Name: point_viewcontrollerエンティティ????
EntitytoLookAt: 使用?能?時?カメラを??るエンティティ????
TargetAttachment: も?設定?る??カメラ?'EntitytoLookAt'?指定??エンティティ??る特定?Attachment?注目???。
Hold: 'Hold'?指定??時間???る?カメラ?コントロールを開放???。カメラ?無??コントロール?る必???る(machinima映画??)場???Flagタブ?'Infinite Hold Time'を?ェック???????。
PathCorner: トラックシークエンス?最??移動?るpath_corner????


フラグ


StartAtPlayer: �?�れ�?�オン�?��?�カメラ�?�プレイヤー�?�視点�?�ら開始�?��?�??�?��?��?��?�場�?��?�point_viewcontroller�?�視点�?�ら開始�?��?��?�。
==シーンでのアニメーションの再生==
FollowPlayer:
===ジェスチャーイベント===
FreezePlayer:
Infinite Hold Time:
Snap to goal angles:
Make player non-solid:
Interruptable by player:


ジェスチャーイベントはSource Engineのキャラクタを生き生きとしたものにできるとても強力かつ柔軟な方法です。ジェスチャーイベントは特別の合成ルールをもった特殊なアニメーション種類を使います。これらは一般的にすでにあるシークエンスの上にかぶせるアニメーションです。例えば、鼻をひっかくジェスチャーアニメーションを作成したなら、キャラクタが座っていても、立っていても、歩いていても、走っていても同時にこのジェスチャを再生できます。さらにジェスチャーの強さ、タイミングをFaceposer内で調整することができます。たとえジェスチャーのライブラリが小さくても、それらを常に効果的に使うことができることに気がつくでしょう。


ジェスチャーイベントとして使うことができるアニメーションはPostureMacros.qciとGestureMacros.qciの2つのマクロを使ってモデルに埋め込まれています。現在のところこれらのqciは<code >"...\Steam\SteamApps\<your username>\sourcesdk_content\hl2mp\modelsrc\humans_sdk"</code >にあります。詳細情報のリンクを追加する予定です。


**Alyxイントロ�?�サンプル
====ポーズ(Postures)、ジェスチャー(Gestures)、ボディジェスチャー(BodyGestures)====
*乗り物
**Breenシーンサンプル


==シーン�?��?�アニメーション�?��?生==
今まで使ってきた"ジェスチャー"という言葉は広範にわたるものでした。これは特別な合成ルールをもったアニメーション全てを指していました。実際のところ多くの種類が存在し、それらを3つのメインの種類にまとめています: ポーズ(Postures)、ジェスチャー(Gestures)、ボディジェスチャー(BodyGestures)です。
===ジェス�?ャーイベント===
ジェス�?ャーイベント�?�Source Engine�?�キャラクタを生�??生�??�?��?��?�も�?��?��?��??る�?��?�も強力�?��?�柔軟�?�方法�?��?�。ジェス�?ャーイベント�?�特別�?��?��?ルールをも�?��?�特殊�?�アニメーション種類を使�?��?��?�。�?�れら�?�一般的�?��?��?��?��?�るシークエンス�?�上�?��?��?��?�るアニメーション�?��?�。例�?��?��?鼻を�?��?��?��??ジェス�?ャーアニメーションを作�?�?��?��?�ら�?キャラクタ�?�座�?��?��?��?�も�?立�?��?��?��?�も�?歩�?��?��?��?�も�?走�?��?��?��?�も�?�時�?��?��?�ジェス�?ャを�?生�?��??�?��?�。�?�ら�?�ジェス�?ャー�?�強�?��?タイミングをFaceposer内�?�調整�?�る�?��?��?��?��??�?��?�。�?��?��?�ジェス�?ャー�?�ライブラリ�?��?�?��??�?�も�?�??れらを常�?�効果的�?�使�?��?��?��?��?��??る�?��?��?�気�?��?��??�?��?�ょ�?�。


ジェス�?ャーイベント�?��?��?�使�?��?��?��?��?��??るアニメーション�?�PostureMacros.qci�?�GestureMacros.qci�?�2�?��?�マクロを使�?��?�モデル�?�埋�?込�?�れ�?��?��?��?�。�?�在�?��?��?��?�?�れら�?�qci�?�<code>"...\Steam\SteamApps\<your username>\sourcesdk_content\hl2mp\modelsrc\humans_sdk"</code>�?��?�り�?��?�。詳細情報�?�リンクを追加�?�る予定�?��?�。
これら3種類は全てFaceposerのジェスチャーイベントで配置されますが、それぞれ以下のような特徴があります。


====?ーズ(Postures)?ジェス?ャー(Gestures)?ボディジェス?ャー(BodyGestures)====


今??使?????"ジェス?ャー"???言葉?広範???るも????。?れ?特別???ルールをも??アニメーション全?を指??????。実際????多???種類?存在????れらを3??メイン?種類????????:  ?ーズ(Postures)?ジェス?ャー(Gestures)?ボディジェス?ャー(BodyGestures)??。


�?�れら3種類�?�全�?�Faceposer�?�ジェス�?ャーイベント�?��?置�?�れ�?��?��?��?�??れ�?�れ以下�?�よ�?��?�特徴�?��?�り�?��?�。
=====ポーズ(Postures)=====


名前が示すように、ポーズはキャラクタの全身をコントロールするのに使われます。キャラクタの全身の体勢をコントロールするのに使用してください。(重心の移動、よりかかる、前かがみ、スクワットなど) ポーズはキャラクタがidle(待機状態)の場合のみ再生されます。キャラクタが移動する(歩く、走るなど)場合は再生されません。


=====�?ーズ(Postures)=====
*ポーズの詳細はここに追加予定です
*他の種類のポーズについての情報はここに追加予定です
*ポーズアニメーションの作成とモデルへのコンパイル方法は[[Animating_and_compiling_a_Posture|here]]参照
*HLMVでポーズを見るには(リンク追加予定)


�??�?�?�示�?�よ�?��?��?�?ーズ�?�キャラクタ�?�全身をコントロール�?�る�?��?�使�?れ�?��?�。キャラクタ�?�全身�?�体勢をコントロール�?�る�?��?�使用�?��?��??�?��?��?�。(�?心�?�移動�?より�?��?�る�?�?�?��?��?��?スクワット�?��?�) �?ーズ�?�キャラクタ�?�idle(待機状態)�?�場�?��?��?��?生�?�れ�?��?�。キャラクタ�?�移動�?�る(歩�??�?走る�?��?�)場�?��?��?生�?�れ�?��?�ん。
=====ジェスチャー(Gestures)=====


*�?ーズ�?�詳細�?��?��?��?�追加予定�?��?�
ジェスチャーアニメーションは大部分が腕と上半身に関わるアニメーションです。話しながら手でジェスチャーを行っているキャラクタを想像してみてください。こういう用途のためにジェスチャーがあるのです。ジェスチャーアニメーションはキャラクタの腕、手、指については完全にコントロールしますが、腰、背骨、首、頭のアニメーションは元のものに加算します。そのため、既に再生しているアニメーションの上に追加するものになります。ジェスチャーはキャラクタが何をしているかに関わらずいつでも再生するこができます。
*他�?�種類�?��?ーズ�?��?��?��?��?�情報�?��?��?��?�追加予定�?��?�
*�?ーズアニメーション�?�作�?�?�モデル�?��?�コンパイル方法�?�[[Animating and compiling a Posture|here]]�?�照
*HLMV�?��?ーズを見る�?��?�(リンク追加予定)


=====ジェス�?ャー(Gestures)=====
*ジェスチャーの詳細はここに追加予定です
ジェス�?ャーアニメーション�?�大部分�?�腕�?�上�?�身�?�関�?るアニメーション�?��?�。話�?��?��?�ら手�?�ジェス�?ャーを行�?��?��?�るキャラクタを想�?�?��?��?��?��??�?��?��?�。�?��?��?��?�用途�?��?��?�?�ジェス�?ャー�?��?�る�?��?��?�。ジェス�?ャーアニメーション�?�キャラクタ�?�腕�?手�?指�?��?��?��?��?�完全�?�コントロール�?��?��?��?��?腰�?背骨�?首�?頭�?�アニメーション�?�元�?�も�?��?�加算�?��?��?�。�??�?��?��?�?既�?��?生�?��?��?�るアニメーション�?�上�?�追加�?�るも�?��?��?�り�?��?�。ジェス�?ャー�?�キャラクタ�?�何を�?��?��?�る�?��?�関�?ら�?��?��?��?�も�?生�?�る�?��?��?��??�?��?�。
*他の種類のジェスチャーについての情報はここに追加予定です
*ジェスチャーアニメーションの作成とモデルへのコンパイル方法はここに追加予定です
*HLMVでジェスチャーを見るには(リンク追加予定)


*ジェス?ャー?詳細????追加予定??
*他?種類?ジェス?ャー?????情報????追加予定??
*ジェス?ャーアニメーション?作??モデル??コンパイル方法????追加予定??
*HLMV?ジェス?ャーを見る??(リンク追加予定)




=====ボディジェス�?ャー(BodyGestures)=====
=====ボディジェスチャー(BodyGestures)=====
 
ボディジェスチャーは一番目立たないもので、アクセントに使われます。これらは全体的に加算させるもので、すでに再生されているアニメーションの腰、背骨、頭、腕、手の動きの上に追加されます。ボディジェスチャーのよくある使用方法は会話にアクセントをつけることです。ボディジェスチャーはキャラクタが何をしているかに関わらずいつでも再生するこができます。
 
* ボディジェスチャーの詳細はここに追加予定です
*ボディジェスチャーアニメーションの作成とモデルへのコンパイル方法はここに追加予定です
*HLMVでボディジェスチャーを見るには(リンク追加予定)
*faceposerでの編成
*XSIでの新しいジェスチャ/ポーズの作成とモデルへの追加
*Scripted SequenceやActBusyでのジェスチャイベントの再生
*ジェスチャでのIKルールの使用
**Barneyの手を腰にポーズ
**Alyxのボタン押しジェスチャ
 


ボディジェス?ャー?一番目立???も???アクセント?使?れ??。?れら?全体的?加算??るも???????生?れ??るアニメーション?腰?背骨?頭?腕?手?動???上?追加?れ??。ボディジェス?ャー?よ???る使用方法?会話?アクセントを??る????。ボディジェス?ャー?キャラクタ?何を???る??関?ら????も?生?る???????。


*ボディジェス?ャー?詳細????追加予定??
*ボディジェス?ャーアニメーション?作??モデル??コンパイル方法????追加予定??
*HLMV?ボディジェス?ャーを見る??(リンク追加予定)
 
*faceposer??編?
*XSI??新??ジェス?ャ/?ーズ?作??モデル??追加
*Scripted SequenceやActBusy??ジェス?ャイベント??生
*ジェス?ャ??IKルール?使用
**Barney?手を腰??ーズ
**Alyx?ボタン押?ジェス?ャ




====図解====
====図解====
Faceposerを起動??Barney.mdlを読?込???。??れ?ら<code> "...\Steam\SteamApps\<your username>\half-life 2\hl2\scenes\ChoreoExamples\sdk_barney1.vcd"</code>を読?込???。
[[Image:ChoreoImp GesturesIllustration01.jpg|thumb|left|クリック??拡大]]


�?��?�VCD�?��?ーズ�?ジェス�?ャ�?ボディジェス�?ャ�?�HL2�?��?��?��?��?��?�よ�?��?�使�?れ�?��?�る�?�を示�?�良�?�例�?��?��?��?��?��?��?�。�?ャン�?ルをダブルクリック�?�る�?�無効�?��?�る�?��?��?��?��??�?��?��?�??�?��?�る�?��??れ�?�れ�?��?ャン�?ル�?��?果�?��?��?�影響�?��?��?�る�?�を�?�る�?��?��?��?��??�?��?�。
Faceposerを起動し、Barney.mdlを読み込みます。それから<code > "...\Steam\SteamApps\<your username>\half-life 2\hl2\scenes\ChoreoExamples\sdk_barney1.vcd"</code >を読み込みます。


Note the use of NULLジェス�?ャイベントを使�?��?��?��?��?��?��?ャン�?ル�?�ジェス�?ャイベント�?�間を�?��?�る�?��?��?��?��??�?��?�。
[[Image:ChoreoImp GesturesIllustration01.jpg|thumb|left|クリックして拡大]]
 
このVCDはポーズ、ジェスチャ、ボディジェスチャがHL2においてどのように使われているかを示す良い例になっています。チャンネルをダブルクリックすると無効にすることができます、そうするとそれぞれのチャンネルが結果にどう影響しているかをみることができます。
 
注意: NULLジェスチャイベントを使うことで同じチャンネルのジェスチャイベントの間をあけることができます。
<br style="clear:both" />
<br style="clear:both" />


===シークエンスイベント (慎�?�?�使用�?�る�?��?�)===
===シークエンスイベント (慎重に使用すること)===
 
===Flex animationフレックスアニメーション===
===Flex animationフレックスアニメーション===
===シーン??Scripted Sequence?使用===
*アクター?定?置??移動
*Fire_triggerイベント?Scripted Sequenceを開始
*NULLシークエンスイベントを使??アニメーション?他?イベント(会話??)?時間???
*Look At !Selfを使??AI?頭?動??を抑制
*Scripted Sequences?OnFrameEventアウトプットを使??他?シーンイベントをトリガー


�?�ら�?�内容を追加�?�る予定�?��?�。
===シーンでのScripted Sequenceの使用===
* アクターの定位置への移動
*Fire_triggerイベントでScripted Sequenceを開始
*NULLシークエンスイベントを使ってアニメーションに他のイベント(会話など)の時間あわせ
*Look At&nbsp;!Selfを使ってAIの頭の動きを抑制
*Scripted SequencesのOnFrameEventアウトプットを使って他のシーンイベントをトリガー
 
 
さらに内容を追加する予定です。

Revision as of 00:05, 1 December 2005

originally translated by RumikoHoshino, 2005/9/13
original English version: Choreography Implementation (訳注:オリジナルの記事は未完成ですが、それでも役立つ情報があるので翻訳しています) 振り付けシーンの実装


Introduction

これは振り付けを行ったシーンをどのようにSource Engineに取り込むかという実際的なテクニックを紹介するためのページです。ここでの焦点はvcdファイルとその効果的な使用方法です。しかし、関連したテクニックがfaceposerにとどまらず、ハンマーやXSIといった外部にも広がることもしばしばあります。

振り付けシーンの基本要素になれるためにまずするべきことは、SDKに含まれているサンプルマップを実行してみることです:"...\SteamApps\<your username>\sourcesdk_content\hl2\mapsrc\sdk_faceposer.vmf" このマップはHL2の製作中にチュートリアルとして作られたものです。


ハンマーからマップをコンパイルし、Hl2に読み込みます。このマップで使用されている全てのVCDは以下の場所にあります: "...\SteamApps\<your username>\half-life 2\hl2\scenes\ChoreoExamples" 可能であればマップを遊びながら、これらのVCDをFacePoserで見てみることをすすめます。もしHL2が起動している間にVCDを編集するなら、コンソールでscene_flushを入力し、それからマップを再スタートすると変更したVCDを見ることができます。

(以下はアウトラインの提案です。肉付けしているうちに変更していきます。)

なぜVCDを使うのか?

  • 強力。VCDは広い範囲の要素を一緒に、そして精密に振付けることができます -- 音、特殊効果、アクターへの指示(ブロッキング)、アニメーション、そしてシーン・マップのロジックなど
  • 早い繰り返しテスト。 VCDの変更を見るのにマップを再コンパイルする必要はありません。Scene_Flushを使います。特にイベントのタイミングを調整するのに適切です。

Source EngineでのVCDの再生方法


シーンへのアプローチと計画

  • どの要素が関わっているのか?
  • どのアクターが関わっているのか?
  • プレイヤーはどのように関わるか?
  • どのようにシーンがマップロジックに組み込まれるか?
    • シーンが始まる条件
    • シーンの一時停止・再開、インタラプトを行う条件
    • できるだけ多くをVCDから駆動することの効用
      • 極めて重要なFire Trigger(トリガー発射)イベント


Blocking out a scene

  • Info_targetエンティティ
  • DebugTextの使用
  • 新しいダイアログエントリーの追加
  • シーンロジック機能の導入

!Target#の使用

"#"の部分に1-8までの数字が入った"!Target#"という名前("!Target1", "!Target2",..."!Target8")はFaceposer内での特別な一時的な名前になっています。VCD内で"!Target#"の名前を使っていると、エンティティLogic_choreographed_sceneのプロパティからその名前が実際に指すエンティティを指定できます。この柔軟な名前を使った方法は、様々な場所で使われるが、アクターとイベントターゲットの名前は毎回違うようなVCDにおいて役立ちます。

"!Target#"の名前はアクターにもイベントターゲットにも使うことができます。(Figs 2a , 2b)

Fig. 2a - Faceposerで"!Target1"と名前がついたアクター(クリックして拡大)
Fig. 2b - FaceposerでMove Toの対象を"!Target2"として指定(クリックして拡大)

"!Target#"名前がどのエンティティを指すかはマップ内のLogic_choreographed_sceneエンティティのプロパティで指定します。(Fig 2c)

注意 Logic_Choreographed_SceneのプロパティにはTargetキーバリューが8つあり、それぞれが"!Target#"("!Target1"..."!Target8")の名前に対応しています。

Fig. 2c - ハンマーで"!Target1"がどのエンティティを指すかを指定。この場合では"!Target1"をNPC_CITIZENエンティティの名前である"Claude"を指す設定にしている(クリックして拡大)


シーンの一時停止/再開

  • Global Pauseイベントの使用
  • 自身を一時停止させるFire Triggerイベントの使用
  • 一時停止したVCDの振る舞い
    • イベントはアクティブなまま(lookAt-対象を見る、faceTo-対象に向く、moveTo-対象に移動するなど)
    • ジェスチャイベントの"ループ"部分を繰り返し
  • Nagの設定

アクターのコントロール

  • NPCエンティティのインプット、Start Scripting(スクリプト開始)
  • NPCエンティティのフラグ、 Use Alternate Collisions
  • 従来にないアクターの使用
    • Generic_actorエンティティ
    • ラジオの例
    • ラマー


シーンでのプレイヤーの関与

  • トリガーの使用、Lookトリガー、AI_Script_Condition
    • Eliの研究所の例

プレイヤーからコントロールを奪う

スクリプトシークエンスを映画的に見せるmachinimaを作成するには、プレイヤーのカメラのコントロールを奪うことが必要になってきます。マップでのカットシーンのためにプレイヤーのカメラのコントロールを奪うにはpoint_viewcontrolエンティティを使い、 path_cornerとpath_trackノードの設定をおこないます。以下がシーンを設定する基本的なステップです(今回、アクタースクリプトとマップが同じ場所にあると家庭しています)

  • シーン内でのカメラ位置と移動の計画
  • point_viewcontrollerをシーンに配置
  • ステップ1での計画に基づき、path_cornersとpath_tracksのネットワークを配置
  • このカメラによるシークエンスがマップ開始とともに始まる場合logic_autoエンティティを配置してその"OnMapSpawn"アウトプットをpoint_viewcontrollerの"Enable"インプットに接続します。そうでない場合は何か別のインプットでpoint_viewcontrollerを"Enable"します。
  • Point_viewcontroller

point_viewcontrollerは使用可能("enable")になるとプレイヤーのカメラコントロールを奪い、マップ内のエンティティの場所にカメラを設定します。

プロパティ

Name: point_viewcontrollerエンティティの名前

EntitytoLookAt: 使用可能な時にカメラを向けるエンティティの名前

TargetAttachment: もし設定すると、カメラは'EntitytoLookAt'で指定したエンティティにある特定のAttachmentに注目します。

Hold: 'Hold'で指定した時間がすぎるとカメラはコントロールを開放します。カメラが無限にコントロールする必要がある(machinima映画など)場合は、Flagタブで'Infinite Hold Time'をチェックしてください。

PathCorner: トラックシークエンスで最初に移動するpath_cornerの名前

フラグ

StartAtPlayer: これがオンだとカメラはプレイヤーの視点から開始し、そうでない場合はpoint_viewcontrollerの視点から開始します。

FollowPlayer:

FreezePlayer:

Infinite Hold Time:

Snap to goal angles:

Make player non-solid:

Interruptable by player:



    • Alyxイントロのサンプル
  • 乗り物
    • Breenシーンサンプル


シーンでのアニメーションの再生

ジェスチャーイベント

ジェスチャーイベントはSource Engineのキャラクタを生き生きとしたものにできるとても強力かつ柔軟な方法です。ジェスチャーイベントは特別の合成ルールをもった特殊なアニメーション種類を使います。これらは一般的にすでにあるシークエンスの上にかぶせるアニメーションです。例えば、鼻をひっかくジェスチャーアニメーションを作成したなら、キャラクタが座っていても、立っていても、歩いていても、走っていても同時にこのジェスチャを再生できます。さらにジェスチャーの強さ、タイミングをFaceposer内で調整することができます。たとえジェスチャーのライブラリが小さくても、それらを常に効果的に使うことができることに気がつくでしょう。

ジェスチャーイベントとして使うことができるアニメーションはPostureMacros.qciとGestureMacros.qciの2つのマクロを使ってモデルに埋め込まれています。現在のところこれらのqciは"...\Steam\SteamApps\<your username>\sourcesdk_content\hl2mp\modelsrc\humans_sdk"にあります。詳細情報のリンクを追加する予定です。

ポーズ(Postures)、ジェスチャー(Gestures)、ボディジェスチャー(BodyGestures)

今まで使ってきた"ジェスチャー"という言葉は広範にわたるものでした。これは特別な合成ルールをもったアニメーション全てを指していました。実際のところ多くの種類が存在し、それらを3つのメインの種類にまとめています: ポーズ(Postures)、ジェスチャー(Gestures)、ボディジェスチャー(BodyGestures)です。

これら3種類は全てFaceposerのジェスチャーイベントで配置されますが、それぞれ以下のような特徴があります。


ポーズ(Postures)

名前が示すように、ポーズはキャラクタの全身をコントロールするのに使われます。キャラクタの全身の体勢をコントロールするのに使用してください。(重心の移動、よりかかる、前かがみ、スクワットなど) ポーズはキャラクタがidle(待機状態)の場合のみ再生されます。キャラクタが移動する(歩く、走るなど)場合は再生されません。

  • ポーズの詳細はここに追加予定です
  • 他の種類のポーズについての情報はここに追加予定です
  • ポーズアニメーションの作成とモデルへのコンパイル方法はhere参照
  • HLMVでポーズを見るには(リンク追加予定)
ジェスチャー(Gestures)

ジェスチャーアニメーションは大部分が腕と上半身に関わるアニメーションです。話しながら手でジェスチャーを行っているキャラクタを想像してみてください。こういう用途のためにジェスチャーがあるのです。ジェスチャーアニメーションはキャラクタの腕、手、指については完全にコントロールしますが、腰、背骨、首、頭のアニメーションは元のものに加算します。そのため、既に再生しているアニメーションの上に追加するものになります。ジェスチャーはキャラクタが何をしているかに関わらずいつでも再生するこができます。

  • ジェスチャーの詳細はここに追加予定です
  • 他の種類のジェスチャーについての情報はここに追加予定です
  • ジェスチャーアニメーションの作成とモデルへのコンパイル方法はここに追加予定です
  • HLMVでジェスチャーを見るには(リンク追加予定)


ボディジェスチャー(BodyGestures)

ボディジェスチャーは一番目立たないもので、アクセントに使われます。これらは全体的に加算させるもので、すでに再生されているアニメーションの腰、背骨、頭、腕、手の動きの上に追加されます。ボディジェスチャーのよくある使用方法は会話にアクセントをつけることです。ボディジェスチャーはキャラクタが何をしているかに関わらずいつでも再生するこができます。

  • ボディジェスチャーの詳細はここに追加予定です
  • ボディジェスチャーアニメーションの作成とモデルへのコンパイル方法はここに追加予定です
  • HLMVでボディジェスチャーを見るには(リンク追加予定)
  • faceposerでの編成
  • XSIでの新しいジェスチャ/ポーズの作成とモデルへの追加
  • Scripted SequenceやActBusyでのジェスチャイベントの再生
  • ジェスチャでのIKルールの使用
    • Barneyの手を腰にポーズ
    • Alyxのボタン押しジェスチャ



図解

Faceposerを起動し、Barney.mdlを読み込みます。それから "...\Steam\SteamApps\<your username>\half-life 2\hl2\scenes\ChoreoExamples\sdk_barney1.vcd"を読み込みます。

クリックして拡大

このVCDはポーズ、ジェスチャ、ボディジェスチャがHL2においてどのように使われているかを示す良い例になっています。チャンネルをダブルクリックすると無効にすることができます、そうするとそれぞれのチャンネルが結果にどう影響しているかをみることができます。

注意: NULLジェスチャイベントを使うことで同じチャンネルのジェスチャイベントの間をあけることができます。

シークエンスイベント (慎重に使用すること)

Flex animationフレックスアニメーション

シーンでのScripted Sequenceの使用

  • アクターの定位置への移動
  • Fire_triggerイベントでScripted Sequenceを開始
  • NULLシークエンスイベントを使ってアニメーションに他のイベント(会話など)の時間あわせ
  • Look At !Selfを使ってAIの頭の動きを抑制
  • Scripted SequencesのOnFrameEventアウトプットを使って他のシーンイベントをトリガー


さらに内容を追加する予定です。