CRYENGINEのレンダラは、ライトマップと呼ばれるTextureにシャドウ情報を長時間ベイク処理する必要がある多くの他のエンジンとは異なり、業界で最も速いリアルタイムのライティングエンジンであると考えられておりCRYENGINEは、このレンダラによって有名になりました。
CRYENGINEでは自動でリアルタイムにライトマッピングが行われるためベイク処理は不要です。 続きを読む
CRYENGINEのレンダラは、ライトマップと呼ばれるTextureにシャドウ情報を長時間ベイク処理する必要がある多くの他のエンジンとは異なり、業界で最も速いリアルタイムのライティングエンジンであると考えられておりCRYENGINEは、このレンダラによって有名になりました。
CRYENGINEでは自動でリアルタイムにライトマッピングが行われるためベイク処理は不要です。 続きを読む
CRYENGINE V C# TPSテンプレートにズームなどの機能を追加
CRYENGINEバージョン 5.3以降ではCMakeでCRYENGINE Vをビルドする。
CMake
https://cmake.org/
まず、GitHubからCRYENGINEのソースコードを取得し、任意のフォルダに置く。
https://github.com/CRYTEK/CRYENGINE
エクスプローラを開き「download_sdks.exe」を実行「CRYENGINE SDK」が自動でダウンロードされる。
続きを読む
SchematycはUnityのコンポーネント、プレハブに相当するビジュアルスクリプトツール機能です。
一見すると、SchematycはFlow Graphと同じように見えますが、2つのシステムは異なる目的で構築されています。
Flow Graphはlevelスクリプト制御を提供するように設計されているの対し、Schematycはlevel内のObjectのみを制御するように設計されています。
SchematycはC++に直接リンクされており、プログラマーがすべてを書き直す必要はありません。コンパイルも必要ありません。これは非常に効率的であることを意味しており、ユーザはC++の知識をあまり、または必要とせずにゲームを構築することができます。
CRYENGINEの現在の状況のまとめ
2022年04月15日 時点
過去の情報は「CRYENGINEの歴史」を見てください。
情報源は、主にCRYENGINEのロードマップ、公式サイト、ForumでのCrytekスタッフの回答などです。
現在CRYENGINE V はLTS(Long Term Support)に移行しています。今後、CRYENGINE Vには機能追加はありません。現在、Crytekは次世代のCRYENGINEを開発です。
2019年8月29日にリリースされた5.6から、2年以上もエンジンの更新がないためCRYENGINEは現在、競合に比べて大きく遅れを取っており、時代遅れの状態です。メジャーバージョンのパブリックリリースの見通しは立っていません。
言語は英語
CRYENGINEのロードマップ
https://www.cryengine.com/roadmap
5.6は2019年8月29日にリリースされ、日本時間 2022年04月06日にCRYENGINE V 最後となるバージョンCRYENGINE 5.7 LTSがリリースされました。
当初、5.7が2020年の春に発表の予定でしたがCOVID-19のため発表は無くなり、2020年はメジャーリリースの予定は無しになりました。(当時、欧州はCOVID-19のパンデミックでロックダウン中だった)
Crytekは2020年、2021年はCRYENGINEに関する情報をほとんど発信していませんでしたが、これはCOVID-19による混乱と次世代のCRYENGINEを作ることに集中していたためと当初発表されました。
Crytekは、中規模の企業でありテクノロジー企業であると同時に、ゲーム開発スタジオでもあります。そのため、ユーザーの少ないCRYENGINEの開発計画を先に進めるよりも、Crytekの代表的なIPである『Crysis』フランチャイズや最新IP「Hunt: Showdown」への投資、ゲーム開発のサポートを優先するという決断をしたと後に発表がありました。結果CRYENGINEは2年間の間、最新バージョンが公開されませんでした。
公開されていないだけで、Crytek内部では5.7相当のCRYENGINEは出来ているようです。「Crysis Remastered」は5.7です。多分
CRYENGINEとゲーム開発チームの両方をサポートするために、今後数年間でスタジオの人員を大幅に増加させる計画を持っているそうです。しかし、最初に、目標を達成するためには、エンジンのアーキテクチャと社内の構造を変更する必要があると判断しているそうです。
CRYENGINE Vのライフサイクルを締めくくるリリースが2021年に1つ予定されていましたが、CRYENGINE 5.7は、「COVID-19により働き方が変わり、開発の優先順位を調整しなければならなかったため、設定した開発目標を達成することができませんでした」と発表があり無しになりました。
CRYENGINE 5.7 Roadmap Update and Future Plansから製品責任者であるArto Ruotsalainenの説明の意訳
設定された野心的な目標の実現に集中するために計画を変更する必要があり、これはCRYENGINEの次のメジャーバージョンのパブリックリリースが遅れることを意味します。
最終的には、ゲーム制作チームで行ったエンジンの進歩を統合し、すべてのライセンシーとコミュニティのためにCRYENGINEを再構築、革新、強化するため時間が必要です。遅延は、多くの人が聞きたいことではないことを私たちは知っています。
しかし、すべての人の長期的な利益のために、私たちはそれが正しいものであると信じています。また、次のパブリックリリースのタイムラインがないからといって、現在のCRYENGINEライセンシーやアクティブなコミュニティメンバーとの協力を継続しないということではありませんのでご安心ください。メジャーバージョンのパブリックリリースの見通しが立たないままどのように作業を継続するかについては、現在計画を策定中ですので、来年中のアップデートにご期待ください。
その後、2022年に次世代のCRYENGINEリリース。
https://www.cryengine.com/news/view/cryengine-5-7-roadmap-update-and-future-plans
https://www.cryengine.com/news/view/cryengine-staff-spotlight-meet-the-team-arto-ruotsalainen
2020年は5.6のホットフィックスを暫定的に提供し、2022年に5.7をリリースしLTS(Long Term Support)に移行しました。
5.4までは使用料は無しでしたが 5.5以降(Ver5.0~5.4も含め)年間の総収入USD 5,000以上のプロジェクトごとに5%の使用料が発生することになりました。
CRYENGINE Vマニュアルは、まだ未完成。分からないことはforumで聞く。
サンプルプロジェクトのGameSDKはCrysis2のアセット、システムが元になっているので古い。
ロードマップを見ると5.7で大きな進化、改善がされる予定。だったが、2021年のメジャーリリースに期待。
Character Toolの主な役目は、プレイヤーなどのキャラクターの定義(メッシュ、Skeleton、アニメーションの関連付け)をすることです。BlendSpaceでアニメーションをBlendする際にも使います。
.cdfに必要なファイル
.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を登録するには、Character ToolからCompression (Animations)のSkeleton Listをクリック
キャラクター定義ファイル(.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
よく使うSchematycの設定とノード
スポーンさせたい場所に「Empty Entity」を置く。「Empty Entity」のNameは「SpawnPoint」など分かりやすい名前にする。
“スポーンさせたいEntity”のFind By NameノードのNameにはスポーンさせたい場所に置いたEntityのNameを設定する。
Find By NameノードはGet系ノードに繋げることで指定したNameのEntityの値を取得出来る。Get Entityノードは、このSchematyc Entity自身を取得。
https://answers.cryengine.com/questions/5939/how-to-rotate-entity-with-schematyc.html
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エディターのLogにコメントやエラーなどデバッグ情報を書き込む。
ComponentにDebug Drawを追加する。「Draw2DText」ノードなどで画面に情報を描画。
Int、Vector3などの値は「ToString」ノードで文字に変換してから「Draw2DText」ノードのTxetポートに繋げる。
データの受け渡しには2つの「Schematyc Entity」と1つの「Schematyc Library」が必要
まず、受け渡しの中継地点「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変数などに送る。
作成
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のワールド空間の位置を指す。
キャラクター、アニメーションの設定とアニメーション再生方法
Character ToolとMannequin Editorの使い方は別ページに書く予定です。
Character Toolの主な役目は、キャラクターの定義を作成し、アニメーションとSkeletonの登録をすることです。BlendSpaceでアニメーションをBlendする際にも使います。
http://docs.cryengine.com/display/SDKDOC2/Character+Tool
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を使用します。
SignalGraphのStartノードからActiveContext、QueueFragment、SetTagを追加します。
それぞれ指定したいアニメーションのContext、FragmentID、Tag名を設定します。
PerspectiveにSchematyc Entityを置けばアニメーションが再生されます。もし再生されない場合は、CRYENGINEを再起動してみてください。
ダウンロード販売サイト「Humble Bundle」で2018年05月02日~2018年05月16日(日本時間)の2週間「支払いたい分だけ支払う」方式で販売されていた。
追記: 現在は販売されていませんがAssetについては一部を除きCRYENGINE Marketplaceで無料で配布されています。
「Humble Bundle」は販売で得られた収益をゲーム制作者だけでなく複数のチャリティー団体に寄付も出来る販売サイトです。
日本時間 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』と並行して開発されています。 続きを読む