Spine 3.7バージョンリリース

January 4th, 2019

詳細情報については、エディター変更履歴および ランタイム変更履歴をご覧ください。全てのランタイムがアップデートされ、3.7バージョンに対応します。以下は主な新機能とその他の変更です。

オーディオサポート

3.7バージョンのリリースにオーディオサポートが追加されました!このため、Spineエディターから直接グラフィックスとオーディオ両方をプレビューし、同期と反復を実施できるようになりました。

階層ビューに「オーディオ」と呼ばれる新ノードが導入されました:

オーディオツリーノード

このノードは「イメージ」ノードに似ています:特定のパスに存在する全てのオーディオファイルは、設定モード内の「オーディオ」ノードの下に表示されます。現在、SpineはWAV、MP3、OGGオーディオ形式に対応します。

オーディオファイルをプロジェクトに追加した後、オーディオファイルを「イベント」ノードにドロップするか、オーディオファイルを選択して「新規イベント」ボタンをクリックすることで、イベントを作成することができます。これによりオーディオファイルに関連する新規イベントが作成され、アニメーション内でキーを作成できるようになります。

オーディオイベント

ご覧の通り、イベントは3つの属性を持っています:

  • 「オーディオパス」はイベントに関連するオーディオファイルの場所を特定します。これが設定されるとアニメーション中、このイベントのキーが実行され、オーディオファイルが再生されます。
  • 「ボリューム」は再生音量を設定します。
  • 「バランス」はステレオの左右のチャンネルの音量を設定し、モノの場合、パンニングを設定します。

オーディオイベントのキーを作成する際、設定値とは異なるボリュームとバランス値のキーを作成できます:

オーディオキー

このスクリーンショットでは、Spineboyの徒歩アニメーション用に足音のオーディオイベントのキーが2回作成されました。ドープシートでは、オーディオイベントの持続時間は紫色の水平ラインにより示されます。ドープシートの上には、新規の「オーディオ」ビューが表示されます。これがドープシートと同期して全ての有効なオーディオイベントの波形を表示し、マスターボリュームや出力に使用されるオーディオ機器をコントロールできるようになります。オーディオビュー・タイムラインまたはドープシート・タイムラインをスクラブすることでオーディオをスクラブできます。

オーディオに対応するために、エクスポートシステムがアップデートされました。Spineからアニメーションを動画にエクスポートする際、オーディオが含まれます。

オーディオ再生はエディターのみの機能です。ランタイムには3つのイベント属性を利用できますが、Spine ランタイムはオーディオの読み込みや再生は管理しません。ランタイム時にオーディオをSpineアニメ―ションと同期するには、以前と同じ管理方法を使用します:各イベントに再生するオーディオをトリガーするために「AnimationState」または「TrackEntry」をイベントハンドラーと登録します。

ビューポート・ピクセルグリッド・スケーリング (3.7.14)

ユーザーの中には、 Axiom Vergeトム・ハップのように、Spineをピクセルアートに使用される方もいらっしゃいます。このため、Spineにおけるピクセルアート・ワークフローを支援するために、ビューポート・ピクセルグリッド・スケーリングが用意されました。これが有効にされると、Spineはピクセルアートを1:1の割合でレンダリングし、その結果イメージをビューポート(表示領域)の大きさに拡大または縮小しながらピクセル画質を保つことができます:

Spine 3.7 ピクセルア-ト

この機能により、レトロスタイルのピクセルスケーリングや回転により生じたエイリアシングやアーチファクトをSpineエディターからプレビューすることができます。

この機能はSpine設定で有効にすることができます。詳しい情報については、このトピックに関するフォーラムスレッドをお読みください。

ストレッチ、圧縮、ユニフォーム・インバース・キネマティクス

ストレッチIK

Spineは1本または2本のボーンが他のターゲットボーンを指す1ボーンおよび2ボーンインバース・キネマティクス・コンストレイントをサポートしますが、以前、これらのコンストレイントは剛性でした:つまりIKチェーンのボーンは自動的に伸縮しませんでした。

Spine 3.7にはIKコンストレイントに設定が追加されました。 Spine 3.7 IK設定

1本または2本ボーンのIKコンストレイントに「ストレッチ」オプションが追加されました。これが有効にされると、ターゲットボーンにふれるためにIKチェーンの全てのボーンを必要に応じて伸ばすことができます。しかしターゲットボーンへの距離が元のボーン長さより短い場合、ボーンは圧縮されません。

1ボーンIKコンストレイントの場合、「圧縮」設定はターゲットボーンへの距離が制約されたボーンの長さより短い場合、制約されたボーンの圧縮を生じます。

しかし、「圧縮」と「ストレッチ」はキーを作成できます。

ストレッチと圧縮の両方において、制約されたボーンのアタッチメントと子はボーンのx軸上でスケーリングできます。1ボーンIKコンストレイントの場合、「ユニフォーム」設定を有効にして両軸でスケーリングが可能です。

改善されたエクスポート

Spine 3.7 エクスポート

Spine 3.7 はエクスポートダイアログを大幅に改善し、多くのエクスポート機能を追加しました。

GIFエクスポーターはGIF形式の256色数制限の中で、アニメーションのカラーを可能な限り維持する洗練された量子化アルゴリズムを使用します。アニメーション中のちらつきを予防するために、各フレームのみならず、一時的にフレーム全体でカラーが注意深く選択されます。エクスポート設定に多数のコントロールが搭載され、アニメーションに最適なパラメーターを発見し、最高品質のGIFを作成できるようになりました。

またエクスポート形式も増えました。APNGはGIFに類似するアニメ画像形式ですが、フルカラーと透明度をサポートします。この形式は携帯を含む全てのブラウザ(MicrosoftインターネットエクスプローラーとMicrosoftエッジを除く)によりサポートされ、GIFの代替形式として優れています。

AdobeフォトショップのPSD形式のエクスポートに対するサポートが追加されました。アニメ―ションの各フレームが別のレイヤーにエクスポートされます。これは様々な視点から追加のアタッチメントを描画する、VFXやコマ撮りアニメーションにポストエフェクトを適用する、単独ファイルとして他のソフトウェアにアニメーションを持ち込む場合役立ちます。

上のスクリーンショットの右上に「プレビュー」ボタンがあることに気づかれた方もいらっしゃるかと思います。これがクリックされるとどうなるか見てみましょう!

エクスポートプレビュー

プレビューは、エクスポートされた時と全く同じ外観のイメージをレンダリングします。圧縮または他のエクスポート設定により生じたアーチファクトも含まれます。

「範囲」をクリックすることで、エクスポートするフレームのサブセットを選択できます:

エクスポート範囲

最も頻繁にリクエストされる機能の1つに「切り抜き」(Crop)設定があります:

切り抜きエクスポート

シーンをエクスポートする際、ビューポートのサイズと位置を指定できます!

動画エクスポートはオーディオエクスポートもサポートします。

スキンの組み合わせ

スキンビュー

頻繁にリクエストされる機能の1つに、Spineエディター内で複数スキンを同時に表示することがあります。以前はランタイムにのみ、これが可能でした。

新しく追加された「スキン」ビューでは、利用可能な全てのスキンリストがそれぞれのピンとともに一番上に表示されます。一番下には、現在ピン済みのスキンのリストが表示されます。ピン済みのスキンは一番下のスキンから全て同時に表示されます。一番下のピン済みスキンのリストは、ドラッグして適用順を変更することができます。

スキンビューでスキンを1つ選択すると、これが有効なスキンになります。有効なスキンのアタッチメントのみがビューポートで選択・編集可能になります。有効なスキンは常に可視化され、ピンされていない場合、最後に適用されます。

スキンビューは上のスクリーンショットに表示される通り、様々なギアや身体部分のスキンを組み合わせるキャラクター作りに便利です。キャラクターの着せ替えごっこパーティーに最高です。私たちも新しい衣服の組み合わせをさんざん試して時間を浪費したことがあります!  

タイプして検索 (Type to search)

タイプして検索

「ツリー」ビューの階層上に検索用のテキストボックスが用意されました。「Enter」を押すとテキストボックスに焦点が当てられ、値を入力し、「Enter」(または「F3」)を押すと新しい検索結果が得られます。「Shift+Enter」または「Shift+F3」を使用することで以前の結果を選択し、「Escape」を押すとテキストボックスがクリアされます。

ツリーフィルター・ポップアップで「テキスト検索フィルター」チェックボックスにチェックをつけることもできます。チェックされると、検索テキストに一致する要素だけがツリーに表示されます。

スキン複製とプレースホルダー作成

スキン複製

自動名前変更、リンク済みメッシュの使用、メッシュ変形キー複製オプションなど、スキン複製に便利な機能が多数追加されました。

スキンプレースホルダー

既存のアタッチメントから新しいスキンプレースホルダーを作成する際、同様の便利な機能を使用できます。また既存の全てのスキンにアタッチメントを複製できます!

頂点コピー/貼り付け

頂点コピーと貼り付け

頂点を選択し、コピーと貼り付けを実施できるようになりました。小さな変更ですが、とても便利です!メッシュ、パス、境界ボックスに使用できます。同じ数の頂点が選択されている限り、頂点を他のアタッチメントに貼り付けることも可能です。

CLI改善

コマンドライン・インターフェース

コマンドライン・エクスポートに機能が追加されました!

「-m」または 「--clean」引数はSpineプロジェクトから不要なアニメーションキーを取り除きます。Spine JSON またはバイナリ形式にエクスポートする時も使用できます。ランタイムファイルを極力小さく保つ、または複数のSpineプロジェクトを一括クリーンアップするために、アセットパイプラインの一部としてこれを追加できます。

新しい「--import」引数は、JSON、バイナリ、またはプロジェクトのスケルトンを他のプロジェクトにインポートするために使用できます。既存のスケルトンを単独のSpineプロジェクトファイルに組み合わせる時にたいへん便利です。「--scale」フラッグと組み合わせると、コマンドラインからプロジェクト全体をスケーリングできます。

これらの新しいフラッグ例については、コマンドライン・エクスポート資料をお読みください。

ランタイム改善

また私たちは、Spineのランタイム部分を改善するために最善を尽くしました。エンジン/フレームワークに関する追加および変更の完全な概要については、Spine ランタイム変更履歴および3.7 ブランチ用のコミット履歴をお読みください。

ほとんどの追加と変更は全てのランタイムに共通です。大幅な変更は僅かしかありません。また変更に伴う修正もさほど困難ではありません:

  • 各フレームでループされるゼロデュレーションのアニメーション(zero duration animations)の完了イベントは「AnimationState」 と「TrackEntry」のリスナーに送られます。  「スケルトン」の「flipX」と「flipY」属性が「scaleX」と「scaleY」に取り替えられました。幾つかのボーンがスケールを継承しなくても、スケルトン全体をスケーリングできるため、トランスフォームの適用がシンプルかつパワフルになりました。  「MixPose」が「MixBlend」に改名されました。Timeline APIに直接作業を行う、または自分でAnimationStateを変更しない限り、この変更が既存のコードを影響することはないでしょう。

以下は全てのランタイムに追加された最も注目すべき機能です:

 通常、アニメーションを別のトラックで再生中、低いトラックのポーズは高いトラックのポーズにより無効にされます。付加的トラックでは、ポーズが低いトラックの結果に付加されます。この結果、25%が怒り、25%が悲しみ、50%が喜びなど複数の顔の表情がブレンドされるような効果が生まれます。トラックに付加するには、「TrackEntry#setMixBlend(MixBlend.add)」をコールします。ブレンドのパーセントを特定するには、「TrackEntry#alpha」を設定します。これについてのディスカッションはフォーラムスレッドをお読みください。  「TrackEntry」は「holdPrevious」と呼ばれる新しいフィールドを含みます。これは多数のトラックを使用する際、アニメーションの一部が「ディッピング」することから生じる「AnimationState」の限界に対策するために使用されます。この問題に関するディスカッションとソリューションについては、フォーラムスレッドをお読みください。

  • 上記で述べたストレッチと圧縮IKコンストレイントへのサポート。
  • オーディオイベント用のサポート。オーディオ再生を実行するには、「Event」と「EventData」上の「audioPath」、「volume」、および「balance」フィールドをクエリします。

3.6のリリース以降、バグ修正や改善のために200件以上のランタイム問題が解決されました。これは皆さまのご支援がなければ不可能でした。問題をご報告いただいた皆様に厚くお礼を申しあげるとともに今後もよろしくお願いいたします!

spine-cpp

spine-cpp

Spine ランタイムに付け加えられた最大の機能をまだ説明していません:それはspine-cppです!これはC++ ランタイムリファレンスの開始に大いに貢献したステファン・ゴゥエン氏により何気なく依頼された[プル・リクエスト]から始まりました。私たちはこの問題に1か月以上取り組み、ようやくユーザーが使用できる最初のバージョンを完成させることができました。

しかしながら、当社のUnreal Engine、cocos2d-x、cocos2d-objc、およびSFML Spine ランタイムはすべて当社のリファレンスを実装したC89準拠バージョンのspine-c上に構築されています。これらのランタイムをspine-cpp に変換し、spine-cベースの製品を取り除くことはユーザー利便性の観点から好ましくありません。

このため、当社の勇敢なベータテスターは2通りの開発ブランチを実施しました:「3.7-beta」の唯一の追加点は、Unreal Engine、およびcocos2d-x ランタイムをspine-cppに切り替えたSFMLランタイム、および「3.7-beta-cpp」のC++バージョンです。これによりSpine 3.7のベータ段階で多くのユーザーがspine-cppの独特なC++ APIを試すことができ、プロダクション前に問題を報告していただいたため大変助かりました。

3.7バージョンのリリースには、spine-cpp ベースブランチをデフォルトにすることが決定されました。spine-cに基づく多数のコードベースをお持ちのUnreal Engineまたはcocos2d-xのユーザーの皆様は、「3.7-c」をご利用いただけます。

当社は今後「3.7」デフォルトブランチ内でspine-cppとspine-cの両方に取り組みます。「3.7」ブランチ内でspine-cppおよび spine-cランタイムに行われた変更は、「3.7-c」ブランチにも行われます。しかしながら、「3.7」ブランチ内で行われたspine-ueおよびspine-cocos2dx ランタイムへの変更は「3.7-c」には行われません。 Spine 3.8 バージョンにはspine-cが維持されますが、spine-cベースのUnreal Engineおよびcocos2d-xが維持されることはありません。

Spineワークショップ

Spineワークショップ

今年初め、当社は初のSpineワークショップを開始しました!ワークショップは会場またはウェブ上でEsoteric Softwareのインストラクターにより指導されます。

過去数か月、私たちは生徒さんと非常に楽しい時を過ごしました!Spineワークショップに興味を持たれる方は、ワークショップページを開き、ワークショップをリクエストしてください。

Spine教育機関

Spine教育機関

私たちが実施できるワークショップは数が限られています。Spineの使用方法を世界に伝える継続努力として、私たちは世界中の教育機関にSpineを教える学校、大学、およびコンサルタントのディレクトリを作成しています。

貴校の名前をSpine教育機関リストに追加しませんか?Spineワークショップおよび/またはトレーニングを提供される場合、教育機関ページを開き、貴校のコースおよびワークショップ情報をご提出ください。

Spine例

新しい例ページには、Spineに含まれる各プロジェクト例が説明されます。多種多様なリギングテクニックについて学び、Spine例を最大活用するために便利なリソースです。

Twitch

SpineのTwitch

当社のエリカ・イニジタリは今年、Esoteric Software Twitchチャンネルを開始しました。エリカは、このチャンネルでSpineで作成した自分の作品を毎週ストリーミングしています。彼女のストリーミングはSpineの素敵なワークフローテクニックを満載しています。ぜひご覧ください!ライブで彼女に質問したり、Spineで作成できる複雑なリギングを見ることができます。

オンデマンドビデオを好まれる方は、Esoteric Software YouTubeチャンネルにアップロードされたストリーミングを全てご覧いただけます。YouTube動画の記述にはそれぞれの動画のトピックとリンクが含まれており、関心のある動画を直接閲覧できます。

エリカはまた#skeletemberというツイッターハッシュタグを作り、9月中、毎日リギングに関するヒントをツイートしました。エリカをフォローしてください!

将来

3.7バージョンリリース終了後、私たちは現在、カーブエディターおよびXとYトランスレーションの個別キーイングなどの機能に取り組んでいます。ランタイム側では、パフォーマンスの改善継続、バグ修正、GodotやConstructなどの新しいゲームエンジンに対するサポートなどを手掛けています。また秘密のプロジェクトも進行中ですが、これに関してはもうすぐ発表される見通しです!

最後に問題を報告し、ベータをテストし、新しい機能を提案していただいたユーザーの皆様に改めて感謝申し上げます。皆様のご支援がなければ、このリリースは実現しなかったでしょう。

ハッピーアニメ―ティング! Spineチーム一同

Spineフォーラムでこの投稿について話し合いましょう。