HSP : HSP3Dish / onion software 2013(c)

タイトル

HSP3Dish プログラミングマニュアル・基本仕様ガイド

  1. HSP3Dishとは
  2. HSP3Dishの使用方法
  3. HSP3との差異
  4. button命令について
  5. gmode命令について
  6. gfilter命令について
  7. setreq、getreq命令について(new)
  8. サンプルスクリプト
  9. HSP3Dishコマンドリスト
  10. Windows上での実行ファイル作成
  11. 起動設定ファイルについて
  12. 他プラットフォームへの変換
  13. 各種入力への対応について
  14. 既知の不具合について
  15. 著作権とライセンス
  16. 連絡先

HSP3Dishとは

HSP3Dishは、HSP3の動作環境を様々なデバイス上で構築するための 追加セットです。Windows上で開発したスクリプトを、別なOS上で 動作させるための仕組みを提供します。

Windows上で動作するHSP3Dishランタイムは、通常版のHSP3と比べて機能が制限され、 いくつかの特殊な機能が付加されています。 このHSP3Dishランタイムと同等の機能を、iPhone/iPad、またはandroidといった 異なるシステム上でも実装することで、Windows版で動作するスクリプトを再利用できる 仕組みになっています。

特殊な利用を想定したHSP3DishですがWindows上で使用する上では、 DirectXを使用した高速描画や、アルファチャンネルやPNG形式の標準サポートなど、 通常のHSP3にはないメリットも持ちあわせています。 HSP3Dishは、現在まだ制約や未実装の機能がありますが、 新しいHSP3の流れとして今後も進化を続ける予定です。どうぞご期待ください。

公式サイトHSPTV!上に、HSP3Dishについての紹介ページが用意されています。 HSP3Dishについての最新情報や、ユーザー作品や資料など役立つ情報が集められていますので、ぜひご覧ください。

HSP3Dishの使用方法

HSP3Dishでは、Windows上で動作するHSP3のスクリプトエディタなど通常のHSP環境をそのまま 使用して開発を行ないます。 必ずHSP3.3以降のHSPで作成を行なってください。 HSP3Dish環境で動作するスクリプトを作成する場合は、 最初の行に、以下のコードを追加する必要があります。

	#include "hsp3dish.as"
	

以降は、通常のHSP3スクリプトと同様にソースを記述することができます。 ただし、HSP3Dish環境に適用させるために、いくつかの制約があります。 大きな制約は以下の通りです。

また、スマートフォンのメモリやセキュリティの制約を反映して 以下の機能は限定的になっています。

HSP3Dishでは、多くの命令や関数などを通常のHSP3と同様に使用できますが、 環境の違いを吸収するために、機能が制限されており、Windows版に慣れた 人には面倒な部分もあるかもしれません。今後のバージョンでは、 Windows版との違いを意識することなく、幅広い環境に適用させることを 目標としています。

いくつかの制約は、ネイティブコードを生成するために HSP3ソースコンバーターを通す上で発生しています。 より詳しく知りたい方は、HSP3ソースコンバーターマニュアル(hsp3cnv.txt) を参照してください。

HSP3との差異

提供されているHSP3Dishは、OpenGLやDirectXによる高速描画を前提として 作成されています。通常のHSP3とは、以下の点で異なっています。

button命令について

現在サポートされている配置オブジェクトは、button命令によるボタンのみとなっています。 標準のオブジェクトと以下の点が異なっているので注意してください。

	・buttonの文字サイズ・色などは固定です
	・標準でbuttonの背景はグレーのグラデーションが使用されます
	・objimage命令によりbutton背景の画像を変更することが可能です
	・キーボードによるボタン操作、フォーカス移動はサポートしていません
	・ボタンの描画はredrawによる画像更新時に行なわれます
	

これ以外のオブジェクトについては、今後順次サポートしていく予定です。

gmode命令について

hsp3dishでは、celput、gcopy等の画像コピー命令で、アルファチャンネルを含めた コピーが実行されます。そのため、gmodeによる指定は、いくつか違いが出ます。

	gmode 0,1 : アルファチャンネルなし(無視)
	gmode 2   : アルファチャンネル有効、半透明レート無効
	gmode 3,4 : アルファチャンネル有効、半透明レート有効
	gmode 5   : 色加算・アルファチャンネル有効、半透明レート有効
	gmode 6   : 色減算・アルファチャンネル有効、半透明レート有効
	

アルファチャンネルは、PNG形式などの画像データに付加される情報です。 通常のHSPにあるRGBが0の場合に透過するモードや、特定の色コードを透過するモードは選択できませんので注意してください。
現在のバージョンでは、android(NDK)ランタイムにおいてgmode 6(色減算)はサポートされませんのでご注意ください。

gfilter命令について

hsp3dish ver3.3a2から、フィルタリング(テクスチャ補間)の設定を行なう ためのgfilter命令が追加されています。

	マクロ名        値      内容
	-------------------------------------------
	FILTER_NONE     0       補間なし(NEAREST)
	FILTER_LINEAR   1       直線補間(LINEAR)
	FILTER_LINEAR2  2       エリア補間(高度な補間処理)
	

フィルタリングの設定により、画像の拡大・縮小時のドット補間方法を 選ぶことができます。FILTER_NONEを指定することで、補間なし(ニアレスト) の状態になります。FILTER_LINEARは、直線(リニア)補間、FILTER_LINEAR2は より高度な補間方法(バイリニアなど)を選択します。 gfilter命令の設定は、以降のすべての描画命令に適用されます。 また、「redraw 0」による画面クリア時には、フィルタリング設定は FILTER_NONEにリセットされます。

setreq、getreq命令について(new)

hsp3dish ver3.3a6から、システムの各種設定を行なうためのsetreq、getreq命令が 追加されています。

		setreq type,val			システムリクエスト設定書き込み

		type : 設定タイプ(SYSREQ_???)
		val  : 設定する値

		getreq var,type			システムリクエスト設定読み出し

		var  : 結果が代入される変数名
		type : 設定タイプ(SYSREQ_???)
	
	設定タイプ名      読み書き(*)   内容
	-------------------------------------------
	SYSREQ_CLSMODE        RW        背景のクリアフラグ
	SYSREQ_CLSCOLOR       RW        背景クリア色
	SYSREQ_TIMER          R         ミリ秒単位のタイマー値
	SYSREQ_PLATFORM       R         HSP3Dishを実行しているプラットフォーム

	(*)項目ごとに、読み(R)書き(W)の可否が異なります
	
  • SYSREQ_CLSMODE、SYSREQ_CLSCOLOR
  • redraw 0による描画開始時に画面をクリアするかどうかを設定します。 SYSREQ_CLSMODEに1を設定した場合はクリア、0の場合はクリアを行ないません。 スクリプト内で画面のクリアを行なっている場合は、システム側で背景クリアをしない方が 処理速度の向上につながります。 SYSREQ_CLSCOLORでクリアする際の色コードを設定することができます。 色コードは、RGB24bit($rrggbb)を1つにした数値で設定します。

  • SYSREQ_TIMER
  • ミリ秒単位のタイマー値を返します。 プラットフォームごとに返される値は異なりますが、1ミリ秒につき1ずつ値が加算されていきます。

  • SYSREQ_PLATFORM
  • 以下のHSP3Dishプラットフォーム値を返します。

    	マクロ名            値  内容
    	-------------------------------------------
    	PLATFORM_WINDOWS    0   Windows版
    	PLATFORM_IOS        1   iOS版
    	PLATFORM_ANDROID    2   android版
    	

    サンプルスクリプト

    HSPフルセットの サンプルディレクトリhsp3dishにサンプルスクリプトが収録されています。 HSP3Dishを使用した例として、参考にしてみてください。

    HSP3Dishコマンドリスト

    各命令・関数の互換性については、別途ファイル「support_cmds.txt」を参照してください。 一部の命令は、未実装ですが今後拡充していく予定です。

    Windows上での実行ファイル作成

    HSP3Dishのランタイムファイル(hsp3dish.hrt)を使用して、 Windows上で実行可能なプログラムを作成することが可能です。 通常のHSP3にはないメリットもあるため、Windowsに対応したソフトの 作成用途としてもお使い頂けます。

    起動設定ファイルについて

    通常の起動時は、画面のサイズは320x480に固定されています。 これは、iPhone(3G)に合わせたサイズですが、起動設定ファイルを 用意することにより、画面サイズを変更することができます。 (HSP3Dishは、画面サイズは一定でありscreen,width命令で変更できません)

    起動設定ファイルは、「hsp3dish.ini」というファイル名でスクリプトと 同じフォルダに置かれている場合に反映されます。 以下は、設定ファイルの記述例です。

    	; hsp3dish settings
    	wx=320
    	wy=480
    	

    行の先頭から「wx=横サイズ」「wy=縦サイズ」を書くことで反映されます。 「;」で開始される行はコメントとみなされます。 異なるデバイスでの動作を想定する場合などに、起動設定ファイルを 用意して実行を行なってください。

    HSP3Dishを使用して、Windows用の実行ファイルを作成することが可能ですが、 作成された実行ファイルには起動設定ファイルは適用されません。 HSP3Dishランタイムで、Windows用の実行ファイルを作成する場合は、 画面サイズを#packopt命令で設定するようにしてください。

    	#packopt name "ファイル名"
    	#packopt xsize 320		; 横サイズ
    	#packopt ysize 480		; 縦サイズ
    	

    他プラットフォームへの変換

    HSP3Dishでは、他のプラットフォームへの変換をサポートしています。 動作の仕組みは以下になります。

    1. WindowsのHSP3Dish上でスクリプトを作成
    2. 作成したスクリプトをCソースに変換 (HSP3ソースコンバーターを使用、ソースはUTF-8として出力)
    3. 別プラットフォーム向けの開発環境でCソースをコンパイル (各プラットフォーム向けライブラリが別途提供されます)
    4. アプリケーションの変換完了 (逐次実行(インタプリタ)ではなくネイティブコードとして実行します)

    詳しくは、それぞれのプラットフォームごとに用意されるマニュアルを参照してください。

    各種入力への対応について

    スマートフォンの持つ独自の情報や、デバイスからの入力取得については今後拡充される予定です。 マルチタッチは、Windows7で同様の入力をシミュレートできますが、加速度センサーその他のデバイスについては Windows上で擬似的にテストできるシステムの作成を検討しています。

    既知の不具合について

  • #defcfuncによる複数パラメーターを持つユーザー定義関数の呼び出しで、パラメーター省略時に正しく実行が行なわれない不具合が報告されています
  • split命令は現在正しく動作していません。getstr命令などにより代用下さい
  • PNGデコーダーの違いによりWindows上で表示できる画像が、iOS,androidで表示できない場合があります

    著作権とライセンス

    ユーザーが、HSP3Dishを使って作成したオリジナルのソフトウェア(実行ファイル)の権利は、それを作成したユーザーに属します。
    商用、非商用を問わず、どのような形態での使用も可能です。また、ライセンス料は必要ありません。

    ユーザーが作成したソフトウェアには、onion softwareの著作権表示も、HSPを使っている旨を表示する義務もありません。 オリジナルのソフトウェアに対してonion softwareが著作権を主張することはありません。 HSPを使用して作られた2次的な開発システム(ゲーム作成システム等)に関しては、そのシステムを作った作者の責任において運用して下さい。

    HSP3Dishは、インタプリタ言語Hot Soup Processor(HSP)の一部であり、著作権はonion softwareにあります。 onion softwareは本プログラムによって生じた、いかなる損害についても保証いたしません。 自己の責任の範囲で使用してください。

    HSP3Dishは、OpenHSP技術からの派生により作成されています。 HSP3Dish及びOpenHSPに含まれるファイル及びソースコードは、BSDライセンスのもと自由に添付・複製・改編・再配布することが できます。その際にはライセンス表記(License_j.txt)を明示するようにしてください。

    製作したソフトウェアを商用として運用することを検討されている方で、有償によるサポートをご希望の方は メールにてinfo@hsp.tvまでご連絡下さい。詳細をご案内させていただきます。

    連絡先

    HSP3Dishに関するお問い合わせ、ご意見などはメールにてお知らせください。

    	onion software (onitama@onionsoft.net)
    	http://www.onionsoft.net/
    	
    ONION software