HSP : Hot Soup Processor ver3.7 / onion software 1997-2022(c)

# HSP3.7 新機能ハイライト

1. HSP3.7アップデート概要
2. コンパクト(hsp3c)版ランタイムについて
3. HGIMG4ツールの更新について
4. HSP3Dishのboxf描画命令の修正について
5. DPM2形式による複数ファイルのパックについて
6. HSP3Dishサポートツールについて
7. 珠音ドットフレームワークについて
8. oggファイルのオンメモリ再生について
9. celload命令のID割り当てについて

## HSP3.7のアップデート概要

HSP3.7は、特に変更を意識することなく、HSP3.6と同様にお使い頂けます。 HSP3.7で変更された項目の概要は、以下の通りです。詳細な修正事項は「history.txt」を参照してください。

DPMファイル及びファイル暗号化埋め込み機能の更新

  HSP3.6までのファイル埋め込み機能(PACKFILE)ではファイル名の長さに制約やフォルダの階層構造をサポートしていませんでした。
  HSP3.7では、ファイル埋め込み機能を更新してフォルダ構造や暗号化の刷新、HGIMG4への対応などを行っています。 また、HSP3Dishでの使用や対応ツールの強化などにより、今までよりも便利にご使用いただけます。 詳しくは、プログラミング・マニュアルをご覧ください。

HSP3Dish android版のビルド機能修正

  HSP3Dishのandroid向けビルド機能を大きく変更しています。
  HSP3.6までのantツールを使用したビルドから、Gradleを使用した最新のビルド方法に変更されています。 これにより、Google Playストアでの配信に必要となるaab形式のファイルをビルドすることが可能になります。
  今まで通りデバイスへの変換をサポートするHSP3Dish Helperツールをご利用頂けますが、既存のプロジェクトとは互換性がないため、新規に作成する必要があるのでご注意ください。
  また、新しいHSP3Dish Helperでは、androidエミュレータの作成・実行、リリースバージョンの管理、ビルド後の自動実行などの機能が追加されています。

HSP3不具合の修正

  HSP3インタプリアコア部分で、HSP3.6リリース後に報告されたいくつかの不具合が修正されています。
  モジュール型配列変数の代入時の不具合、#constで定義されたdouble型実数値の有効桁数が少なかった不具合などが修正されています。

レガシー機能の廃止

  HSP3のランタイムやツールで古くなったもののいくつかを同梱終了しています。
  「コンパクト(hsp3c)版ランタイム」及び「Peasエディタ」はHSP3.6までのサポートとなります。

## コンパクト(hsp3c)版ランタイムについて

HSP3.6までのコンパクト版ランタイム(hsp3c)は、HSP3.7から運用を廃止しています。
コンパクト版ランタイムは、Windows 98以降の動作をサポートするために古いコンパイラを使用していましたが、 ファイルサイズの僅かな削減以外のメリットが少なく、現行のOS上で実行の効率が悪いことから同梱を終了ることとしました。
hsp3cを使用していたユーザーは、引き続き標準のHSP3ランタイムをご使用頂くようお願い致します。

## HGIMG4ツールの更新について

HGIMG4について以下の修正を行っています。

HGIMG4ツール(gpbconv)の機能修正

  HGIMG4の3Dモデル変換に使用するHGIMG4ツール(gpbconv)の機能修正を行っています。
  変換された3Dデータのプレビュー機能が実装されているほか、 3Dモデル変換時のマテリアル名に日本語など英文字以外を含む場合、正しく認識されないことがあるため、マテリアル名修正に関するオプション指定を追加しました。 また、モデルファイルとは別にアニメーションデータをFBXファイルで用意したものを結合するためのオプションが追加されています。

## HSP3Dishのboxf描画命令の修正について

HSP3.7β2からWindows版のHSP3Dishでboxf命令の塗りつぶし範囲が標準ランタイムと異なる不具合を修正しています。
それまで右と下の1ドットがいままで描画されていなかったものを正常な動作に修正しています。 ほとんどの場合問題は出ないものと考えていますが、それまでの動作を基準に作成していたスクリプトで描画の結果が異なる場合がありますのでご了承ください。 システムリクエストにより、従来の描画に戻すことも可能です。その場合は、以下のようにsetreq命令を記述してください。

    			setreq SYSREQ_OLDBOXF,1		; HSP3.6のboxf動作を維持する

## DPM2形式による複数ファイルのパックにいて

HSP3.7からパックして埋め込まれるデータの形式がDPM2という新しいものになりました。 これにより、いままでよりも制約の少ない自由なファイルのパック、暗号化を利用することができます。 ( ただし、HSP3.6までの.dpmファイルとは互換性がなくなっています。以前に作られた.dpmは再度作成するようにしてください。)
HSP3.7では、複数の.dpmファイルを同時に使用することができるほか、ファイル名の長さやサイズの制限が緩和されています。
詳しくは、「ファイルのパックと暗号化」の項目を参照してください。

## HSP3Dishサポートツールにいて

HSP3Dishでのプロジェクト設定やdpmファイルなどの作成をサポートするツールが新規で追加されています。 以下のサポートツールは、HSP3Dish HelperやHSPスクリプトエディタから起動することができます。

    		ツール名                         起動方法
    		--------------------------------------------------------------------------
    		Dish P Helper                    HSP3Dish Helper Androidタブから
    		#packoptリスト作成ツール         スクリプトエディタ「ツール」メニューから
    		#packリスト作成ツール            スクリプトエディタ「ツール」メニューから
    		Android/iOSアイコン作成ツール    HSP3Dish Helper Android/iOSタブから

## 珠音ドットフレームワークにいて

「珠音（たまね）ドットフレームワーク」は、ドット絵のHSP3オフィシャル素材とHSP3Dish上で使用できるライブラリのセットです。 ゲームに特化したシンプルな命令セットとオールインワンの素材パッケージで手軽にレトロスタイルの自作ゲームを作り始めることが可能です。 作成したゲームは、WindowsだけでなくWebやラズパイ、Linux、android、iOSなどで発表することが可能です。 サンプルスクリプトが「sample/dotfw」フォルダに用意されていますのでお試しください。
詳しくは、珠音ドットフレームワークマニュアルを参照してください。

## oggファイルのオンメモリ再生について

HSP3.7β4から、HGIMG3及びhspoggプラグインを使用したoggファイル再生をオンメモリで行うよう修正されています。
これにより、暗号化されたdpmファイルや埋め込みデータを含めてHSP3が扱うファイルシステムからの読み込みが可能になりました。従来までのストリーミングによる再生を行う方法も選択できますので、状況に応じてお使い頂けます。

    		ファイル種別                     再生方法
    		--------------------------------------------------------------------------
    		wave形式(拡張子.wav)             オンメモリ再生(埋め込みデータ対応)
    		ogg vorbis形式(拡張子.ogg)       オンメモリ再生(埋め込みデータ対応)
    		ogg vorbis形式(拡張子.s)         ストリーミング再生(埋め込みデータ非対応)

詳しくは、hspoggマニュアルを参照してください。

## celload命令のID割り当てについて

HSP3.7β4から、celload命令で読み込みウインドウIDの指定を省略(またはマイナス値)して自動的にIDを割り当てる際の動作が修正されています。
ceload命令のウィンドウIDパラメーターが省略された場合には、すでに読み込まれている画像ファイルと同一のファイル名を指定した場合、 読み込まれているウインドウIDが再利用されます。 この動作は、標準のHSP3ランタイム、HSP3Dishランタイムを含むすべてのプラットフォームで適用されます。
これにより、重複した画像を読み込もうとした場合に、リソースを共有してメモリを節約することができます。 外部のモジュール内で画像を使用する場合や、ソースを再利用した場合にリソースの重複を防ぎます。 (既存のバージョンでは、重複した画像が読み込まれても常に新しいIDが割り当てられています。)
この変更により、既存のスクリプトで重複した画像ファイルを複数の異なるウインドウIDに読み込んでいる場合などで、IDの割り当てに不一致が起こる可能性があります。 ウインドウIDの再利用をしたくない場合は、「celload "a.png",celid_auto」のようにパラメーターにcelid_auto(または-1)を指定してください。
詳しくは、CEL関連命令についてを参照してください。