セルアニメーションモジュールのApplyCurrentAnimResult_()関数内で 冗長な記述を修正しました。
NNS_G2D_POINTER_ASSERTがMAIN_EXアリーナ内のポインターに対して 正しく機能しない不具合を修正しました。
TWLビットマップフォント用の文字順序ファイル追加しました。
g2dcvgtrで、-cr/オプションが指定されなくてもキャラクタ位置情報ブロックが出力される不具合を修正しました。
-oオプションで指定したフォルダが存在しない場合、何も処理せずに正常終了していました。 これを、標準エラーメッセージを出力し、エラー終了するように修正しました。
5.5 付属文字順序ファイルに、TWLビットマップフォントの記述を追加しました。
TWLビットマップフォント追加に伴い、ファイル構成の記述を修正しました。
存在しない、引数typeに関する記述を削除しました。
g2d_screen.c の LoadScreenPartText関数にて、利用されていない変数の初期化をするコードを削除しました。
以下の関数の、関数リファレンスを追加しました。
フォントコンバータ(fontcvtr.exe)の出力されるエラーメッセージを修正しました。
エラーメッセージの記述を修正しました。
注意:TWLで追加されたNDMA使用時には、DMAによるメモリ操作を行いません。 CPUによるメモリ操作になります。
TWL-System 2.0.0 RC において NFTR 1.1 の縦書きフォントもしくは縦持ちフォントが正しい方向に描画できない不具合を修正しました。
以下の関数を使用した場合に偽りの警告を出力する不具合を修正しました。
コンパイラの仕様変更に伴い、g2d_Font_data.h の可変長配列使用時の警告を抑制しました。
fontcvtrが入出力するBMPファイルにフォント幅とフォントの高さを記述できるようになりました。フォント幅、フォントの高さを指定しない場合は従来通り、全ての文字を重ねた際の最小矩形のサイズが使用されます。フォント幅は現在のG2Dライブラリでは使用されません。
縦書きフォントをBMPファイルに出力する際、0より大きいオフセットやマージンを指定するとベースライン位置がずれる不具合を修正しました。
縦書きフォントをNITRO Fontに出力する際、改行幅やデフォルト幅情報を指定しない場合に、これらの値が縦横逆に計算される不具合を修正しました。
下記に示すpdfマニュアルの改訂履歴の書式を変更し、全体の校正を行いました。
下記に示すpdfマニュアルにおいて、Xerces-C++のライセンスに関する表記を変更しました。
ソフトウェアスプライト機能を利用する際の標準的なマテリアル設定を行う NNS_G2dSetupSoftwareSpriteMaterial()関数を追加しました。
NNS_G2dSetupSoftwareSpriteCamera()関数内で、 標準的なカメラ行列を位置座標行列に設定するようにしました。
不正なキャラクタ番号の有無をチェックする -cic オプションを追加しました。
Windows Fontを入力とする際の文字幅指定において、空白文字についてはフォントで指定される文字幅を使用し、 それ以外はグリフ幅を使用する指定を追加しました。
NNS_G2dSetCellAnimationCurrentFrame()関数が正しく動作しない不具合を修正しました。
NNS_G2dInitCellAnimationVramTransfered()関数の読み取り引数(第3,8,9引数)にconstキーワードを追加しました。
ライブラリヘッダーファイルg2d_Softsprite.h中の以下のスペルミスを修正しました。
誤)NNS_G2D_SPRITEATTR_TEXTUE 正)NNS_G2D_SPRITEATTR_TEXTURE コード互換性維持のため、以前の表現も別名として残してあります。
OAMマネージャの管理領域を記憶する内部バッファの更新が正しく行われず、 不正なマネージャの初期化を正しくチェックできない不具合を修正しました。
過去のバージョンでは、たとえば2つのOAMマネージャを定義して、 一方の管理領域の終端OAM番号と重複するように他方のOAMマネージャの開始番号を指定して、 不正に初期化指定した場合に、重複判定が正しく行われず、初期化に成功してしまいました。
NNS_G2dBGLoadScreenRect()関数で、転送元領域より転送先領域が小さい場合に、 領域外への不正なデータ書き込みが発生してしまう不具合を修正しました。
出力されるBMPファイルのヘッダ情報が一部のエディタやビューアで正しく解釈されない不具合を修正しました。
ヘッダファイル中のstatic inlineによる関数宣言部分を、static inlineからinlineに変更しました。 この変更によって、コードサイズの削減が期待できます。
OAMマネージャモジュールの内部バッファへのポインタを取得する NNS_G2dGetOamBuffer()関数を追加しました。
NNS_G2dBGLoadScreenRectにて転送する領域が転送元/転送先の範囲を超える場合は、 クリッピングするように修正しました。
縦書き/縦持ち表示に対応しました。
全てのアニメーションフレームの表示フレーム数がゼロであるデータに対して、 正しく不正終了コードが返されない不具合を修正しました。
マルチセルアニメーションシーケンスの終端に表示フレーム数ゼロのアニメーションフレームが指定されていた場合に、 誤って終端フレームが表示されてしまう不具合を修正しました。
マルチセルアニメーション中の、セルアニメーションシーケンスの終端フレームに表示フレーム数ゼロが指定されている場合に、 マルチセルアニメーションの更新タイミングによって、アニメーションの更新が正しく行われない場合がありました。 この不具合を修正しました。
セル中のOBJの不正なキャラクタ番号をチェックする機能が実装され、 不正なデータはコンバートを中断するようにしました。
表示アニメーションフレーム数がゼロに指定されたアニメーションフレームをチェックし、 不正なデータとして扱う -cza オプションを追加しました。
InputをWindows FontとしLevels of Grayに2を指定した場合に正しくフォントが出力されない不具合を修正しました。
コマンドライン版(CUI版)でコマンドラインオプションの-iuが-ivとなってしまっていた不具合を修正しました。-iuが正しいオプションですが 互換性のため-ivも使用することができます(マニュアルには記載されません)。
幅線の色がセル内の色と同様に処理されてしまっている不具合を修正しました。
GUI版で変換失敗時にもメッセージウインドウが閉じてしまう不具合を修正しました。
IPLフォントテーブルを出力する文字順序ファイル(ds_ipl.xlor)で、 欧州文字領域と日本語文字領域に同じ文字コードを持つ文字が現れていたのを修正しました。 日本語文字領域の該当箇所を<null/>に置き換えています。
アニメーションの先頭からアニメーション再生を再スタートする NNS_G2dRestartCellAnimation()関数を追加しました。
マルチセルアニメーション再生をアニメーション先頭から再スタートする NNS_G2dRestartMCAnimation()関数を追加しました。
マルチセル実体を構成するセルアニメーションをアニメーション再生開始状態に設定する NNS_G2dStartMCCellAnimationAll()関数を追加しました。
出力ファイルのファイルサイズを4バイトの倍数単位に整列する -afs オプションを追加しました。
GX_SetDefaultDMA()で GX_DMA_NOT_USEを設定した際に、 G2dライブラリが正しく動作しない不具合を修正しました。
縦横の幅が32キャラクタの倍数でないスクリーンを正しくロードできない不具合を修正しました。 これに伴い、NNS_G2dBGLoadScreenRect関数の引数が変更されています。
倍角アフィンモードに設定されたOBJを含むセルの領域情報の計算が誤って出力される不具合を修正し、 通常のOBJのみを使用したセルと同一の領域情報を出力するようになりました。
1.2.2版において変更されたVRAM転送情報の計算処理において正しく転送情報が計算されない不具合がありましたが、 これを修正しました。
セル境界半径が正しく計算されない不具合がありました。これを修正しました。
キャラクタデータファイルフォーマットNCGR,NCBRのファイルフォーマットを拡張し、 キャラクタ位置情報ブロックを追加しました。
データブロックにアクセスするための関数としてNNS_G2dGetUnpackedCharacterPosInfo()を追加しました。
アニメーションコントローラに以下の新たなAPIを追加しました。
マルチセルアニメーションに以下の新たなAPIを追加しました。
BGに下記の機能を追加しました。
CharCanvasをレンダラで表示するためのセルを作成する関数を追加しました。
先頭アニメーションフレームの表示時間がゼロに指定されているアニメーションシーケンスの描画に失敗する不具合を修正しました。
マルチセルのNode属性とNNS_G2D_MCANIM_PLAYMODE_CONTINUEが設定されれいるデータのアニメーション更新が 正しく行われない不具合を修正しました。
注意: この不具合の修正によって、マルチセルのアニメーション更新処理の計算負荷が若干増加しています。 具体的にはRenderer_PerfCheckサンプルにおいてNNS_G2dTickMCAnimation()関数の平均実行時間が 19%増加(57μ秒 から68μ秒へ)していることが確認されています。 増加する処理負荷量はデータに依存します。 以下に追加処理の特徴を箇条書きにします。
アフィン変換有効フラグが設定されていないOBJが参照アフィン番号を伴って登録された場合、 アサートに失敗してしまう不具合が修正されました。 (アフィン番号を設定せず、処理を継続するように、動作が変更になりました。)
NNS_G2dSetOamManExEntryFunctions()関数で拡張OAMマネージャに登録関数を設定する場合に、 アフィンパラメータを使用しない場合でもNNSG2dOamExEntryFunctions.getAffineCapacityと NNSG2dOamExEntryFunctions.funcs.entryNewAffineにNULLが設定されていると、 不正にアサート警告が表示されてしまう不具合を修正しました。
アフィン変換を使用してセルをソフトウェアスプライト描画した後、 アフィン変換を使用しないでセルをOBJ描画した場合に、正しく描画が行われない不具合を修正しました。
NNS_G2dBGSetupおよびNNS_G2dBGLoadElementsにおいて、 サブ画面を対象として拡張パレットをロードする場合に正しくないスロットにロードしてしまう不具合を修正しました。
NNS_G2dBGSetup においてBG3がアフィン拡張BGのときに BG3にアフィン拡張BGを読み込むと正しくないBGモードになってしまう不具合を修正しました。
NNS_G2dTextCanvasDrawTaggedTextにおいてタグ処理コールバックでTextCanvasを変更しても描画に反映されない不具合を修正しました。
VRAM転送情報を出力する際、必要以上に大きな転送サイズが指定されてしまう不具合を修正しました。
正しいコンバート処理の途中で不正に警告メッセージが出力されてしまう不具合を修正しました。 コンバータ内部では変数の型変換を行う際に値の切捨てが発生する不正な型変換に対して警告を表示しています。 以前のバージョンでは、有効な型変換に対しても誤って警告を表示してしまう不具合がありました。
高さが256の倍数でないスクリーンが正しく変換されない不具合を修正しました。
矩形領域情報を出力する際に、実際の領域サイズより1大きいサイズを出力してしまう不具合を修正しました。
フォント操作、文字/文字列描画を行う関数を追加しました。
表示時間がゼロであるアニメーションフレームのみから構成されるアニメーションシーケンスを 不正なアニメーションシーケンスとしてチェックするアサート文の追加を行いました。
NNS_G2dMakeCellToOams()関数内で倍角アフィンフラグが指定されたときに行うOBJ位置補正処理を 実際にOBJの倍角フラグが変更になった場合にだけ行うように変更しました。
OAMソフトウェアスプライト描画が倍角アフィンフラグが設定されたOBJの描画に対応しました。
マルチセルを構成する各セルアニメーションについて、 再生アニメーションフレームを設定するNNS_G2dSetMCAnimationCellAnimFrame()を追加しました。
NNS_G2dSetRendererAffineOverwriteMode()関数などで 倍角アフィンフラグ上書きが指定されたときに行うOBJ位置補正処理を、 実際にOBJの倍角フラグが変更になった場合にだけ行うように変更しました。
NITRO-CHARACTERによって倍角アフィンフラグが設定されたOBJを、 2Dグラフィックスエンジンを使用して描画する場合の処理方法を変更しました。 新しいバージョンでは、倍角アフィンフラグが設定されたOBJが入力された場合は、 ツールによってOBJに位置補正が加えられていると想定し、OBJのサイズ*1/2 をOBJ位置に加算し、 倍角アフィンOBJのための補正値をキャンセルしてから、処理を行うようにしています。 (従来と同じ振る舞いに戻すには、g2d_config.h内のNNS_G2D_ASSUME_DOUBLEAFFINE _OBJPOS_ADJUSTED定義を コメントアウトしてください。)
nce ファイルタイトルを 出力 NCGR(NCBR) ファイルタイトルとして使用しする -ncn オプションを追加しました。 複数の1D マッピング形式nce ファイルが 単一の ncg ファイルを共有参照している場合に利用します。
警告処理を追加し、不正なデータを出力しないようにしました。 (アニメーションフレームをひとつも持たないアニメーションシーケンス、 すべてのアニメーションフレームの表示時間がゼロであるアニメーションシーケンス。)
フォントリソースを作成するフォントコンバータ(fontcvtr.exe)を追加しました。 使用方法についてはNitroSystem\docs\G2D\fontcvtr_Manual.pdfを参照してください。
セル内のOBJの位置が -128 〜 127 に含まれていないセルの描画が正しく行われない不具合を修正しました。 セル内のOBJの位置は -256 〜 255まで指定することが可能です。 なお、include/fmt/g2d_Cell_data.h 内の NNS_G2D_LIMIT_CELL_X_128を定義してライブラリを再コンパイルすると、 従来と同じ描画処理を行うことができます。
ソフトウェアスプライト描画の際の四角ポリゴンの平面の方向を逆に修正しました。 この変更によって、カリングモードをGX_CULL_BACKに設定した際にも正しくスプライトが表示されます。
表示時間(ビデオフレーム数)がゼロであるアニメーションフレームを含むアニメーションシーケンスの再生を行う際に、無限ループ状態に陥ってしまう不具合を修正しました。
BuildNENR.exe について不具合の修正を行いました(主に入力パスの解釈に関する不具合)。
アフィン変換されたOAMの描画順と通常のOAMの描画順が統一されました。 従来はアフィン変換されたOAMは登録順とは逆の順番で描画されていました。 なお、NNS_G2D_OAMEX_USE_OLD_REINDEXOAMCHUNKLIST_ を定義してライブラリを再ビルドすることで、 過去の実装と同じ振る舞いに戻すことが可能です。
拡張OAMマネージャのOBJ描画順に関する振る舞いを変更するNNSG2d_SetOamManExDrawOrderType()を追加しました。
拡張OAMマネージャとレンダラを組み合わせて使用するサンプルを追加しました。
NNS_G2dSetMCAnimationSpeed()、NNS_G2dResetMCCellAnimationAll()関数について、 初期化条件によって正しく動作しないバグを修正しました。 (マルチセル実体の種類がNNS_G2D_MCTYPE_DONOT_SHARE_CELLANIM と指定され、初期化された場合に正しく動作しませんでした。)
レンダラーモジュールのアフィンパラメータ共有に関するバグを修正しました。
g2d_SRTControl.h ファイル内のASSERTマクロの記述ミスを修正しました。
オブジェクト圧縮機能OFF、1Dマッピングモードのデータで不正な変換バイナリが出力される不具合を修正しました。
アニメーションシーケンスデータの総ビデオフレーム長を計算する関数である NNS_G2dCalcAnimSequenceTotalVideoFrames()を追加しました。
NNS_G2dResetMCCellAnimationAll()を追加しました。 マルチセル実体を構成するセルアニメーションのセルアニメーションのアニメーションフレームをリセットします。
マルチセルアニメーション初期化関数を変更しました。 また、その使い方を示すためサンプルデモが改訂されました。 使い方がシンプルになり、マルチセルアニメーションデータの特徴によって、 メモリ効率やパフォーマンスの改善が期待できます (同一セルアニメーションを多数参照するデータの場合に効果的です)。 従来の関数も残されています。
g2dcvtrの -lbl オプションによって出力されるラベル定義ヘッダファイルに、 拡張コメント情報がCコメント文として挿入されるようになりました。
出力ファイルのCソースコード形式出力機能を削除しました。
256色キャラクタで1Dマッピングを使用していた場合に、 ソフトウェアスプライト描画に使用するUV値の計算方法の不具合を修正しました。
リンクファイル名データブロック中の関連ファイルのパス情報が、 絶対パス形式で記録されているファイルのコンバートに失敗する不具合を修正しました。
マルチセルデータのコンバートの際、 セルアニメーション再生モード情報が正しく設定されない不具合を修正しました。
NNS_G2dGetMCBankNumNodesRequired()関数を追加しました。
技術ドキュメントの内容を更新し、オーバービューマニュアルの一部をAPIリファレンスへ移動しました。
コンバータBuildNENR.exe に、下記のオプションを追加しました。
g2dcvtr.exeに出力アニメーション要素の方式を指定する(-ai, -aisrt, -ait )オプションを追加しました。
プライオリティの低い(奥に描画される)OAMについて、 時間あたりの描画回数が少なく設定されてしまう不具合を修正しました。
NNS_G2dSetSpriteAttrEnable()関数の2回目以降の実行で、値が正しく更新されない不具合を修正しました。
NNS_G2dLoadImage*()関数などで、DMA転送まえのキャッシュ内容のフラッシュが行われていない不具合を修正しました。
レンダラの描画処理部分と行列スタック管理、パラメータ管理を分離し、 描画処理部分をレンダラコアモジュールとして別モジュールとしました。
レンダラコアモジュールは、レンダラモジュールから描画処理に最低限必要な部分を分離して作成されたモジュールです。 ユーザが大きく処理をカスタマイズしたい場合や、単純な処理を高速に行いたい場合などを想定して作成しました。 レンダラモジュールは内部でレンダラコアモジュールを使用しています。
レンダラコアモジュールのサンプルを6つ追加しました。
NNS_G2dGetCellAnimationCurrentCell() を追加しました。
セル(マルチセル)SRTアニメーションにおいて、平行移動アニメーションのみを利用したデータに対する処理を追加しました。 従来は平行移動アニメーションのみを利用していた場合にも、 スケール、回転がセル(マルチセル)アニメーションに設定されていました。 この拡張によって、本来、不必要なアフィン変換設定が回避されます。
3Dグラフィックスエンジンのカレント行列を保存しないNNS_G2dDrawSprite*Fast()関数が追加されました。 行列スタックに対するPush、Pop操作を行わない分高速に動作します。
3Dグラフィックスエンジンのカレント行列を保存しないNNS_G2dDrawOneOam3DDirect*Fastを追加しました。 行列スタックに対するPush、Pop操作を行わない分高速に動作します。
UVパラメータ計算結果をキャッシングして描画処理の効率化を図るAPIを追加しました (NNS_G2dSetOamSoftEmuSpriteParamCache(),NNS_G2dDrawOneOam3DDirectUsingParamCacheFast())。 使用できる部分は限られますが、通常のNNS_G2dDrawOneOam3DDirect*Fast関数と比較して、おおよそ50%の高速に動作します。
NNS_G2dLoadPalette()、NNS_G2dLoadPaletteEx() でVRAMへのデータ転送まえに、 転送元データ領域のメモリキャッシュをメインメモリに書き戻す処理を追加しました。
処理効率が向上しました。 マルチセル描画処理で比較(サンプルデモRenderer_PerfCheckを参照下さい)。
レンダラがOAMに対して行うパラメータ上書き処理に指定できる項目を追加しました (NNS_G2dSetRendererOverwriteEnable/Disable()など)。
セルSRTアニメーションにおいて、 平行移動アニメーションのみを利用したデータに対応するアニメーション結果種類が追加になり、その出力に対応しました。 この拡張によって、アニメーションデータ容量が削減され、実行時の不必要なアフィン変換設定が回避されます。
NNS_G2dLoadPaletteEx()関数で、正しくパレットが読み込まれない不具合を修正しました。
G2Dライブラリが使用するDMAチャンネルを、 GXライブラリの使用DMAチャンネルと同一のものを使用するように変更しました。
処理効率向上のため、ライブラリ内部の関数の一部をインライン関数化しました。
セルの領域情報として矩形情報を持つセル情報をサポートしました。 また、以前から存在していた境界球情報を取得する内部公開関数も外部公開に変更になりました。 (NNS_G2dGetCellBoundingRect()等)
NNS_G2dDrawSprite*()関数内で行っていた、 画面外位置指定時の回りこみ処理のエミュレートを行わなくしました。
部分的に使用されているパレットの使用されている部分だけを読み込むパレットロード関数を追加しました。 (NNS_G2dLoadPaletteEx())。 本機能を利用するためには、コンバータの-pcmオプションを利用して圧縮形式パレットデータを作成する必要があります。
描画OBJのパラメータを上書きする、プログラマが操作しやすいAPIを追加しました。 (NNS_G2dSetRendererOverwriteEnable(), NNS_G2dSetRendererOverwrite*(),等)
レンダラが2Dグラフィックスエンジンを使用してOBJ描画を行う際に、 OBJアフィン変換モードの書き換え方式が制御可能となりました。 (NNS_G2dSetRendererAffineOverwriteMode()等)
レンダラのOBJ描画前後コールバックの引数の型が変更になりました。
使用されているパレット番号部分だけをデータとして保持する圧縮形式パレットデータを出力する -pcm オプションを追加しました。 圧縮形式パレットデータをNNS_G2dLoadPaletteEx()で読み込むことでパレットの部分ロードなどに利用できます。
エラーメッセージの出力を標準エラー出力に変更しました。 また、コンバータの動作メッセージの出力動作を制御可能にしました。 規定値ではコンバータは動作メッセージの出力を行わず、
コンバータの実行結果を返り値として返すようにしました。 異常なく終了した場合は0を、異常があった場合は0以外を返します。
矩形領域情報を持つセル情報を出力する -br オプションを追加しました。
ソフトウェアスプライトを描画する際に使用するポリゴンID設定(NNS_G2dSetSpriteCurrentPolygonID()関数で設定をおこなう) が有効になっていなかった不具合を修正しました。
NNS_G2dLoadPalette()関数を使用して、256色拡張パレットデータを2Dグラフィックスエンジン用にロードする際に、 読み込み先アドレスの値が反映されていない不具合を修正しました。
下記の条件を同時に満たすセルデータが正しく描画されない不具合を修正しました。
256色パレット、1D マッピングキャラクタをオブジェクト圧縮OFFでコンバートした際に、 不正なデータが出力される不具合を修正しました。
スクリーンデータの情報を用いて半自動的にBGの表示を行う機能を追加しました。
NNS_G2dEntryOamManagerOamWithAffineIdx()関数を利用して登録したOBJに対して、 強制的に倍角アフィン変換モードを設定していた振る舞いを変更し、 アフィンパラメータ番号のみを書き換え、アフィン変換モードを変更しないようにしました。 同等の処理はマネージャの外で行う必要があります。 (NNS_G2dMakeCellToOams()やレンダラをご利用の場合は特に意識する必要はありません。 また、次回リリースにてRendererのアフィン変換モード書き換え動作を制御するAPIを公開する予定です。)
OBJアフィン変換モード(通常Or倍角)の設定を行う機能を廃止しました。 また、それにともなって、NNS_G2dSetOamManExDoubleAffineFlag(), NNS_G2dGetOamManExDoubleAffineFlag() を削除しました。 同等の処理はマネージャの外で行う必要があります。 (NNS_G2dMakeCellToOams()やレンダラをご利用の場合は特に意識する必要はありません。)
レンダサーフェスのアクティブ状態切り替えに対応する処理を実装しました。 この機能によって、特定のサーフェスへの描画を強制的に禁止することが可能となります。 また、アクセサ関数NNS_G2dSetRendererSurfaceActiveFlag(), NNS_G2dGetRendererSurfaceActiveFlag()を追加しました。
g2dcvtrがBG関連データのコンバートに対応しました。
ソフトウェアスプライト描画機能を利用する際に、 スプライトのZ値を自動的にずらして描画する機能を追加しました。 (NNS_G2dSetOamManagerSpriteZoffsetStep())
ソフトウェアスプライト描画機能を利用する際に、 スプライトのZ値を自動的にずらして描画する機能を追加しました。 (NNS_G2dSetRendererSpriteZoffset())
レンダラの設定状態を調査し、描画処理を最適化する機能を実装しました。 (NNS_G2dOptimizeRenderer())
レンダラにフリップ描画機能を実装しました。 (NNS_G2dSetRendererFlipMode())
セル描画前後コールバック関数、OBJ描画前後コールバック関数の登録が可能になりました。
SRT(スケール、回転、平行移動)アニメーションに対応しました。
注意:以前のバージョンのNITRO-CHARACTERで作成されたNCEデータには、 不正なスケールゼロ値を含むアニメーションフレームが含まれている場合が多く存在します。 このようなデータは、新しいランタイムでは正しく描画が行えません。 再コンバートしていただき、スケールゼロを置換していただくか、 最新のNITRO-CHARACTERでデータを保存し直していただく必要があります。 (後述のマルチセルアニメーションの場合も同様です。)
SRT(スケール、回転、平行移動)アニメーションに対応しました。
SRTアニメーションデータにて、スケール値にゼロが指定されている場合、その値を1に置換する機能を実装しました。
マルチセル切り替え時にセルアニメ再生状態をリセットしていないバグを修正しました。 ストップ再生モードのセルアニメーションを使用したマルチセルアニメーションが正しく再生されるようになりました。
BGに使用するキャラクタ(ncg)データのための出力オプション -bg オプションを追加しました。 bg オプションを使用する場合、コンバート時にnce(セル定義)ファイルが必要になりません。
ラベル名定義ヘッダファイルを出力するオプション -lbl オプションを追加しました。 ラベル名定義ヘッダファイル内では、アニメーションシーケンスなどに付加されているラベル文字列情報を、 ラベル番号の別名として宣言しています。
コンバータのログメッセージを変更し、より多くの情報を出力するようにしました。
NNS_G2dSetAnimCtrlCurrentFrame()のフレーム番号にどんな値を入れても、 フレーム番号0番のアニメーションフレームが設定されてしまう問題が修正されました。
NNS_G2dSetAnimCtrlCurrentFrame()を下請けで利用する、 NNS_G2dSetMCAnimationCurrentFrame(), NNS_G2dSetCellAnimationCurrentFrame(), NNS_G2dSetCellAnimationCurrentFrameNoReset()の問題も修正されています。
入力ファイル名に‘\’や‘/’が含まれないファイルパスを入力した際に、 パラメータ解釈に失敗していたバグが修正されました。
関数名を改名しました。 過去のバージョンの関数名は別名として残されています。 新規にご利用の方は、新しい関数をご利用いただけますようお願いいたします。 以下は変更になった関数です
--------------------------------------------------------------------------- アニメーション 旧 => 新 NNS_G2dGetCurrentElement NNS_G2dGetAnimCtrlCurrentElement NNS_G2dGetNextElement NNS_G2dGetAnimCtrlNextElement NNS_G2dGetNormalizedTime NNS_G2dGetAnimCtrlNormalizedTime NNS_G2dSetCallBackFunctor NNS_G2dSetAnimCtrlCallBackFunctor NNS_G2dSetCallBackFunctorAtAnimFrame NNS_G2dSetAnimCtrlCallBackFunctorAtAnimFrame NNS_G2dGetAnimSpeed NNS_G2dGetAnimCtrlSpeed NNS_G2dSetAnimSpeed NNS_G2dSetAnimCtrlSpeed NNS_G2dResetAnimationState NNS_G2dResetAnimCtrlState NNS_G2dInitCallBackFunctor NNS_G2dInitAnimCallBackFunctor NNS_G2dBindAnimController NNS_G2dBindAnimCtrl NNS_G2dGetAnimControllerType NNS_G2dGetAnimCtrlType NNS_G2dInitAnimController NNS_G2dInitAnimCtrl NNS_G2dIsAnimControllerActive NNS_G2dIsAnimCtrlActive NNS_G2dStartAnimController NNS_G2dStartAnimCtrl NNS_G2dStopAnimController NNS_G2dStopAnimCtrl NNS_G2dTickAnimController NNS_G2dTickAnimCtrl NNS_G2dInitAnimControllerCallBackFunctor NNS_G2dInitAnimCtrlCallBackFunctor --------------------------------------------------------------------------- セルアニメーション 旧 => 新 NNS_G2dSetCellAnimSpeed NNS_G2dSetCellAnimationSpeed NNS_G2dGetCellAnimAnimCtrl NNS_G2dGetCellAnimationAnimCtrl NNS_G2dInitializeCellAnimation NNS_G2dInitCellAnimation NNS_G2dInitializeCellAnimationVramTransfered NNS_G2dInitCellAnimationVramTransfered --------------------------------------------------------------------------- マルチセルアニメーション 旧 => 新 NNS_G2dInitializeMCAnimation NNS_G2dInitMCAnimation NNS_G2dInitializeMCInstance NNS_G2dInitMCInstance NNS_G2dSetMCAnimSpeed NNS_G2dSetMCAnimationSpeed --------------------------------------------------------------------------- 画像イメージロード関連 旧 => 新 NNS_G2dInitializeImageProxy NNS_G2dInitImageProxy NNS_G2dInitializeImagePaletteProxy NNS_G2dInitImagePaletteProxy --------------------------------------------------------------------------- エンティティ 旧 => 新 NNS_G2dInitializeEntity NNS_G2dInitEntity NNS_G2dSetCurrentAnimation NNS_G2dSetEntityCurrentAnimation ---------------------------------------------------------------------------- OAMマネージャ 旧 => 新 NNS_G2dInitializeOamManager NNS_G2dInitOamManagerModule NNS_G2dEntryNewOam NNS_G2dEntryOamManagerOam NNS_G2dEntryNewOamWithAffineIdx NNS_G2dEntryOamManagerOamWithAffineIdx NNS_G2dEntryNewOamAffine NNS_G2dEntryOamManagerAffine NNS_G2dEntryOamAffine NNS_G2dSetOamManagerAffine NNS_G2dApplyToHW NNS_G2dApplyOamManagerToHW NNS_G2dApplyToHWSoftEmu NNS_G2dApplyOamManagerToHWSprite NNS_G2dResetBuffer NNS_G2dResetOamManagerBuffer NNS_G2dApplyToHWAndReset NNS_G2dApplyAndResetOamManagerBuffer NNS_G2dGetOamAttrCapacity NNS_G2dGetOamManagerOamCapacity NNS_G2dGetOamAffineCapacity NNS_G2dGetOamManagerAffineCapacity --------------------------------------------------------------------------- 拡張OAMマネージャ 旧 => 新 NNS_G2dEntryNewOamEx NNS_G2dEntryOamManExOam NNS_G2dEntryNewOamWithAffineIdxEx NNS_G2dEntryOamManExOamWithAffineIdx NNS_G2dEntryNewAffineParamsEx NNS_G2dEntryOamManExAffine NNS_G2dApplyToBaseModuleEx NNS_G2dApplyOamManExToBaseModule NNS_G2dResetOamInstanceEx NNS_G2dResetOamManExBuffer NNS_G2dGetNewOamInstanceEx NNS_G2dGetOamManExInstance NNS_G2dSetOamEntryFunctionsEx NNS_G2dSetOamManExEntryFunctions ---------------------------------------------------------------------------- レンダラ 旧 => 新 NNS_G2dAddTargetSurface NNS_G2dAddRendererTargetSurface NNS_G2dSetCurrentImageProxy NNS_G2dSetRendererImageProxy ----------------------------------------------------------------------------- ソフトウェアスプライト 旧 => 新 NNS_G2dSetCurrentPolygonID NNS_G2dSetSpriteCurrentPolygonID NNS_G2dSetDefaultAttr NNS_G2dSetSpriteDefaultAttr NNS_G2dGetDefaultAttr NNS_G2dGetSpriteDefaultAttr
カラーパレットのデバック文字列出力を改良しました。
OAMマネージャ実体がアフィンパラメータを管理しないケースについて対応をしました。
ソフトウェアスプライト用の3Dグラフィックスエンジンカメラ設定のパラメータを変更し、 2D描画、3D描画間で出力画像に若干の差異が発生する問題が解消されました。
コンバータプログラムの名称をG2DConv.exeから、g2dcvtr.exe に変更しました。 また、機能拡張がされました(詳細はコンバータマニュアルをご覧ください。)。
NNS_G2dResetBuffer()(内部バッファリセット処理)で管理領域外のアフィンパラメータを不正にリセットしてしまう問題を修正しました。
ソフトウェアスプライト描画機能を使用した際に、倍角アフィンモード以外では正しく描画されない問題を修正しました。
マルチセルに対応しました。
すべてのファイルフォーマットのバージョンを1.0に変更しました。 (過去のデータはご使用になれません。お手数ですが、新しいコンバータで再コンバートを行ってください。)
CellVRAM転送状態マネージャ・モジュールを追加しました。 (VRAM転送アニメーションに使用されます。)
OAMマネージャからOAMのソフトウエアスプライトによる描画機能が分離され、 OAMソフトウエアスプライト描画モジュールを追加しました。
セルアニメーションがVRAM転送アニメーションに対応しました。
OAMのソフトウエアスプライトによる描画機能は、別モジュールとして分離されました。 それに伴ってNNS_G2dDrawOneOam3DDirect()の動作が変更になっています。詳細はAPIリファレンスを参照ください。
拡張OAMマネージャと拡張OAMマネージャ2を統合しました。 名称は拡張OAMマネージャとなり、APIは拡張OAMマネージャ2の形式が使用されます。
NNSG2dCellData.cellType を NNSG2dCellData.cellAttrに改名しました。
FINALROMビルドにおいて、ランタイムバイナリファイルデータの内容をデバック出力する関数群が、 ダミーのインライン関数として定義されるようになりました。
ヘッダ内で定義されていたアクセサ群をinline関数に変更しました。
Cell定義データNCERファイルのフォーマットを変更しました。 以前のバージョンのデータはご利用できなくなります。 (再コンバート作業をしていただく必要があります。)
アフィンパラメータを使用しないでOAM登録をした場合、描画が正しく行われない不具合を修正しました。
Cell内のローカル座標系でのOBJの位置がy <= -64 時に、正しく描画されない問題を修正しました。
1Dマッピング時に単一Cell内の複数OBJが同一のキャラクタ領域を共有する仕様にコンバータが対応しました。
NNS_G2dPrintAnimContents()関数で、 SRT(Scale,Rotate,Translate)アニメーションを使用したアニメーションデータのデバック表示に失敗する不具合を修正しました。
NNS_G2dApplyToHWSoftEmu()、NNS_G2dDrawOneOam3DDirect()の引数を変更しました。
NNS_G2dGetNewOamInstanceEx2()の引数を変更しました。
画像プロクシへのデータロードを簡単にするため、利便関数群を追加しました。
ファイルフォーマットおよび、コンバータに変更がありました。 以前作成したデータは再コンバートしてご利用ください。
エンティティ定義バイナリファイルを生成するツールBuildNENR.exeを用意しまいした。