CRYENGINE V C# TPSテンプレートにズームなどの機能を追加
「CRYENGINE V」カテゴリーアーカイブ
CMakeでCRYENGINE Vをビルド
CRYENGINEバージョン 5.3以降ではCMakeでCRYENGINE Vをビルドする。
CMakeをインストール
CMake
https://cmake.org/
GitHubからCRYENGINEのソースコードを取得
まず、GitHubからCRYENGINEのソースコードを取得し、任意のフォルダに置く。
https://github.com/CRYTEK/CRYENGINE
「CRYENGINE SDK」のダウンロード
エクスプローラを開き「download_sdks.exe」を実行「CRYENGINE SDK」が自動でダウンロードされる。
続きを読む
CRYENGINE V Schematycについて
SchematycはUnityのコンポーネント、プレハブに相当するビジュアルスクリプトツール機能です。
一見すると、SchematycはFlow Graphと同じように見えますが、2つのシステムは異なる目的で構築されています。
Flow Graphはlevelスクリプト制御を提供するように設計されているの対し、Schematycはlevel内のObjectのみを制御するように設計されています。
SchematycはC++に直接リンクされており、プログラマーがすべてを書き直す必要はありません。コンパイルも必要ありません。これは非常に効率的であることを意味しており、ユーザはC++の知識をあまり、または必要とせずにゲームを構築することができます。
CRYENGINEの現状と今後
CRYENGINEの現在の状況のまとめ
2020年08月31日 時点
過去の情報は「CRYENGINEの歴史」を見てください。
情報源は、主にCRYENGINEのロードマップ、ForumでのCrytekスタッフの回答などです。
CRYENGINE全般
言語は英語
CRYENGINEのロードマップ
https://www.cryengine.com/roadmap
5.6は2019年8月29にリリース
2020年6月 ロードマップが更新され、新しいテクニカルディレクターが就任したことが発表されました。
5.7が2020春の予定でしたが発表は無くなり、2020年はメジャーリリースは無しの予定になり、次のメジャーリリースは2021年初頭の予定になりました。この次のメジャーリリースで次世代ハードウェアとモバイルをサポート。CRYENGINE 6かな
2020年は5.6のホットフィックスを暫定的に提供。
ロードマップの予定は基本的に遅れている。
5.4までは使用料は無しでしたが 5.5以降(Ver5.0~5.4も含め)年間の総収入USD 5,000以上のプロジェクトごとに5%の使用料が発生することになりました。
CRYENGINE Vマニュアルは、まだ未完成。分からないことはforumで聞く。
サンプルプロジェクトのGameSDKはCrysis2のアセット、システムが元になっているので古い。
ロードマップを見ると5.7で大きな進化、改善がされる予定。だったが、2021年初頭のメジャーリリースに期待。
CRYENGINE V Character Tool 使い方
Character Toolの主な役目は、プレイヤーなどのキャラクターの定義(メッシュ、Skeleton、アニメーションの関連付け)をすることです。BlendSpaceでアニメーションをBlendする際にも使います。
キャラクターの定義に必要なファイル
.cdfに必要なファイル
- .chr(キャラクターのSkeletonデータなど含む)
- .skin (キャラクターのメッシュ)
- .chrparams(キャラクターパラメータファイル)
.cdf(キャラクターの定義)
XMLファイル構造
キャラクター定義ファイルは、Sandbox内のCharacter Toolで作成します。
.cdfには、.chrファイル、.skinファイルとその他の添付ファイルの参照が含まれています。
.chr(キャラクターのSkeletonデータなど含む)
character
.chrファイルは3Dモデリングソフトで作成され、アニメーション、ラグドールシミュレーションに使用されるSkeleton、ヒット検出の物理プロキシを含んでいます。
.skin (キャラクターのメッシュ)
.skinファイルは3Dモデリングソフトで作成され、Characterの メッシュデータが含まれています。
メッシュ、頂点重み付け、頂点色など含んでいます。
The .skin file is created in the 3D application and contains skinned character data. It can be any asset that is animated with bone-weighted vertices like humans, aliens, ropes, lamps, heads, and parachutes. The .skin file includes the mesh, vertex weighting, vertex colors, and morph targets.
.chrparams(キャラクターパラメータファイル)
XMLファイル構造
http://docs.cryengine.com/display/SDKDOC2/Mapping+Animation+Assets
CryEngineは、定義しない限り、どのアニメーション(.caf)がどのSkeleton(.chr)に属しているかを認識できないため.chrparamsファイルにキャラクターのSkeletonに対応したアニメーションのリストなどを定義する必要があります。
これらの定義は、LOD、IK、およびアニメーションリストの3つのグループに分類されます。
.chrparamsファイルは、参照するキャラクター(.cdf)のファイルと同じ名前を持っています。
*(アスタリスク)使用可能
.chrparamsファイルは、手動で作成
<AnimationList>
<Animation name="$AnimEventDatabase" path="characters/ambient_life/bear/bear_baby.animevents"/>
<Animation name="#filepath" path="characters/ambient_life/bear/animations"/>
<Animation name="*" path="*/*.caf"/>
<Animation name="*" path="*/*.bspace"/>
<Animation name="*" path="*/*.comb"/>
</Animation>
Skeletonの登録
Skeletonを登録してから、メッシュ、添付ファイルを追加する。Skeletonを登録するには、Character ToolからCompression (Animations)のSkeleton Listをクリック
キャラクター定義ファイル(.cdf)を作成
キャラクター定義ファイル(.cdf)のProperties
Skeletonに.chr(キャラクターのSkeleton)、Geometryに.skin (キャラクターのメッシュ)を指定
.chrparams
http://docs.cryengine.com/display/SDKDOC2/Mapping+Animation+Assets
キャラクターのベースアニメーションフォルダの設定
キャラクターのアニメーションを探す場所をエンジンに伝えるために、.chrparamsファイルの最初の行はキャラクターのアニメーションフォルダを設定します。
キャラクターのアニメーションはすべて、設定したフォルダ内またはそのサブフォルダ内に置きます。通常、このフォルダはGame/Animationsフォルダ内に配置します。
ワイルドカードマッピング
各アニメーションを1行ずつ追加すると、非常に大きな.chrparamsファイルが作成され、セットアップに時間がかかることがあります。
アニメーション名とファイル名が異なる場合にのみ各アニメーションを1行ずつ追加が必要です。これが当てはまらない場合、アスタリスク*を使用したワイルドカードマッピング使用します。
制作中は「test」フォルダをワイルドカードマッピングすることで、アニメーターにとって大幅にワークフローが改善される可能性があります。新しくエクスポートされたアセットをこのフォルダに配置し、.chrparamsファイルを変更することなく、すぐにCharacter Toolでテストすることができます。
↓未完成↓
複数のキャラクター間のアセットの共有
アニメーションイベントデータベースの設定
.animsettings
足跡や足音、パーティクルエフェクトなどのイベント
キャラクターエディタで設定できます。
BlendSpace
.bspace
グリッド状に組み立てられたアニメーションのコレクションで、アニメーションのブレンドを可能にします。
comb – 方向を結合するためのbspaceファイルの組み合わせ(例:moveTurn_left.bspace)
http://docs.cryengine.com/display/CEMANUAL/4+-+Assembling+Attachments
http://docs.cryengine.com/pages/viewpage.action?pageId=26870214
http://docs.cryengine.com/pages/viewpage.action?pageId=27594502
CRYENGINE V Schematycスニペット
よく使うSchematycの設定とノード
スポーンポイントの設定
スポーンさせたい場所に「Empty Entity」を置く。「Empty Entity」のNameは「SpawnPoint」など分かりやすい名前にする。
“スポーンさせたいEntity”のFind By NameノードのNameにはスポーンさせたい場所に置いたEntityのNameを設定する。
Find By NameノードはGet系ノードに繋げることで指定したNameのEntityの値を取得出来る。Get Entityノードは、このSchematyc Entity自身を取得。
Entityを回転させる方法
https://answers.cryengine.com/questions/5939/how-to-rotate-entity-with-schematyc.html
マウスでEntityを回転させる 未完成
SchematycにComponentsのInput、Meshを追加。
Construction Graphの設定
Construction Graphを以下の画像のようにノードを設定する。
input idはXとY
NameはSignal Graphで参照するので後で分かる名前にする。
Variables(変数)の設定
TypeはFloatに設定
名前はSignal Graphで参照するので後で分かる名前にする。
Signal Graphの設定
説明
On Action Changed
Action Name
キー、マウスなどでボタンが押されるなどすると「Action Name」からConstruction Graphで設定した「input id」名が出力される。
Value
Valueからはキーなら0か1、マウスなどは、上下左右 -1、1 それぞれ対応している。(うまく説明できない)
マウスなどは他にも素早く入力すると-100とか数値が大きくなる。
Switch
TypeをStringに設定。CasesからValueを追加。
On Action ChangedのAction Nameから出力された「input id」名を受け取り、一致したValueがあればそのValueに進む
Schematycのデバック
SchematycエディターのLogにコメントやエラーなどデバッグ情報を書き込む。
デバッグ情報を画面に描画する
ComponentにDebug Drawを追加する。「Draw2DText」ノードなどで画面に情報を描画。
Int、Vector3などの値は「ToString」ノードで文字に変換してから「Draw2DText」ノードのTxetポートに繋げる。
未完成 Entity間のデータの受け渡し方法
データの受け渡しには2つの「Schematyc Entity」と1つの「Schematyc Library」が必要
- 情報を送る「Send」 Schematyc Entity
- 受け渡しの中継地点「Library」 Schematyc Library
- 情報を受け取る「Receives」 Schematyc Entity
まず、受け渡しの中継地点「Library」にFloatなどでdamage変数を設定する。
次に、「Send」Entityで情報を「Library」Entityに送る
送り方
「Send」EntityのSignalGraph内のSignal > Receiveに「Library」Entityで設定したノードがあるので選択し設定。これで、「Library」Entityのdamage変数に送られる。
受け取り方
受け取るには、「Receives」EntityのSignalGraph内のSignal > Send内の「Library」Entityで設定したノードがあるので選択。これを、「Receives」Entity内のHP変数などに送る。
- Schematyc Library データのみの情報でエディターで配置できない。他のSchematycから参照される情報が入っている。Entity間のデータの受け渡しに使える。
- Schematyc Entity オブジェクトなどのエディターで配置できる情報。
ExpandとCreateノードの使い方の例
作成
Create
UE4のMake RotationなどMake系に相当
展開
Expand
UE4のBreak RotationなどBreak系に相当
「GetEntityId」と「GetTransform」ノードで自分の位置、回転、Scaleを取得し、「Expand」ノードで位置、回転、Scaleのポートに分解、「Add」ノードなどで足し引きなどをして「Create」ノードで位置、回転、ScaleをTransformにまとめる。まとめたら、「SetTransform」ノードなどに繋げる。
function > Standard > によく使われるノードがある。
Entityでよく使われるノード例
SetPosition
SetRotation
SetTransform
TransformはEntityの位置、回転、Scaleが含まれている。
PositionはEntityのワールド空間の位置を指す。
CRYENGINE V アニメーションの設定方法
キャラクター、アニメーションの設定とアニメーション再生方法
設定の大まかな流れ
- Character Toolでキャラクターの定義を作成し、アニメーションとSkeletonの登録をする
- Mannequin Editorでアニメーションを定義、調整、管理などする
- SchematycのAnimated MeshかAdvanced Animationsを追加し、PlayAnimationノードなどでアニメーション
Character ToolとMannequin Editorの使い方は別ページに書く予定です。
Character Tool
Character Toolの主な役目は、キャラクターの定義を作成し、アニメーションとSkeletonの登録をすることです。BlendSpaceでアニメーションをBlendする際にも使います。
http://docs.cryengine.com/display/SDKDOC2/Character+Tool
Mannequin Editor
Mannequin Editorの主な役目は、複雑に作用し合うアニメーションを設定、調整、管理することです。アニメーションに足音などの効果音を設定したり、アニメーション再生時に参照されるFragmentIDやTagなどを設定します。
http://docs.cryengine.com/display/SDKDOC2/Mannequin+Introduction
アニメーションの再生方法
アニメーションの再生方法はSchematycかFlowGraphを使用します。Schematycがおすすめです。
今回はSchematycを使用します。TPSテンプレートのアニメーションを使用しています。
Schematyc EditorかAsset BrowserからSchematyc Entityを選びます。途中の選択肢はSchematyc Libraryを含めるかの選択肢で今回はNo.
Add -> Componentから「Advanced Animations」、「Animated Mesh」いずれかまたは両方を追加します。
「Advanced Animations」は主にBlendSpaceのアニメーションを設定する際に使い、「Animated Mesh」は単体のアニメーションを設定する際に使います。今回はAdvanced Animationsを使用します。
Advanced Animationsの設定
- Characterには、Character Toolで作成したキャラクター(.cdf)を設定します。
- Animation Databaseには、対応したアニメーションデータベースファイル(.adb)を設定します。
- Controller Definitionには、Mannequin Editorで設定したxxxControllerDefs.xmlを設定します。
- ここまで正しく設定できていれば、残りの2つはMannequin Editorで設定したFragmentIDなど表示されるのでデフォルトのアニメーションを設定します。
SignalGraphのStartノードからActiveContext、QueueFragment、SetTagを追加します。
それぞれ指定したいアニメーションのContext、FragmentID、Tag名を設定します。
PerspectiveにSchematyc Entityを置けばアニメーションが再生されます。もし再生されない場合は、CRYENGINEを再起動してみてください。
「Humble CRYENGINE Bundle 2018」の内容解説
ダウンロード販売サイト「Humble Bundle」で2018年05月02日~2018年05月16日(日本時間)の2週間「支払いたい分だけ支払う」方式で販売されていた。
追記: 現在は販売されていませんがAssetについては一部を除きCRYENGINE Marketplaceで無料で配布されています。
「Humble Bundle」は販売で得られた収益をゲーム制作者だけでなく複数のチャリティー団体に寄付も出来る販売サイトです。
CRYENGINE 5.5 Preview 概要
日本時間 2018年03月21日 Crytekは、CRYENGINE Vの改良、機能強化、新たなラーニングの提供、エディタのソースコード公開など新しい機能を導入したCRYENGINE 5.5 Previewをリリースしました。
また、今後は年間の総収入USD 5,000以上のプロジェクトごとに5%のロイヤルティが発生することになりました。例外あり(Ver5.0~5.4も含める)
https://www.cryengine.com/faq#faq-licensing
CRYENGINE 5.5 は、260以上の機能強化と修正がされ『Hunt: Showdown』と並行して開発されています。 続きを読む