HSP : Hot Soup Processor ver3.6 / onion software 1997-2021(c)
HSP3.6は、特に変更を意識することなく、HSP3.5と同様にお使い頂けます。 HSP3.6で変更された項目の概要は、以下の通りです。
mes,print命令で影文字、縁取りなどの修飾ができるオプションが追加されています。
配置オブジェクトの配色を指定するためのobjcolor命令、ユーザー定義による配置オブジェクトを定義するためのobjlayer命令が追加されています。
他にもコールバックルーチンの厳格化や、24bitカラーコードを指定するためのrgbcolor命令など多くの新機能を搭載しています。
また、stick命令で取得されるキーの追加、ジョイスティック入力モジュールなど細かいアップデートも行われています。
Unicode文字を標準で使用する新しいランタイム、hsp3utf、hsp3_64などもアップデートされており、
いままでの機能はそのままに、ゲームだけでなく、ツール製作や手軽なプロトタイピングに役立つ機能を拡充しています。
新規追加プラグイン「hspsw」(Steamプラットフォーム連携API)、「hspmucom」 (MML記述によるFM音源楽曲再生プラグイン)、「ZLibWrap.dll」(zipファイルの圧縮解凍)など 高度な機能拡張を同梱しており、すぐに利用可能です。
Windows/iOS/android/Linux/html5(WebGL)上での実行をサポートするHSP3Dishの各種機能を拡充しています。
文字列の描画を大きく見直し、すべてのプラットフォームで日本語を含む文字列の表示、半透明合成に対応しています。
また、新しい配置オブジェクトとしてチェックボックス、入力ボックスをサポートしています。(一部のプラットフォームのみ)
Windows/Linuxプラットフォームでは、screen、bgscr命令によるウインドウサイズの変更、フルスクリーン表示に対応しています。
他にも、最新の端末に対応できる新しいSDKへの対応や、各種センサー情報の取得、ネットワークアクセス、HSPDX互換のスプライト描画機能も拡充しています。
webブラウザで動作するhsp3jsは、新たにWebAssembly形式の出力が可能です。HGIMG4描画の速度も大幅に向上し実用性がアップしました。
幅広いデバイスへの変換をサポートするHSP3Dish Helperツールも、より便利で手軽に利用できようになりました。
ハイレベルな3D表現を可能にするHGIMG4プラグインを大幅に更新しています。
システムの安定向上や高速化のほか、ライティング機能、ポストエフェクトに関する機能を充実させています。また、FBXモデル変換時の制約、複製時の制約など細かい使い勝手が向上しています。
新しいHGIMG4ツールでは、fbxファイルを変換した後の3Dデータをより詳細に確認、編集できるようになりました。マテリアル(.material)ファイルをGUIにより詳細に確認することが可能になっています。
新規の命令により、自由な形状の生成、物理衝突情報の取得、ノード階層情報の取得などが可能になります。ライティング機能ではラストの種類、個数が拡充され、より高度な表現を可能にしています。ポストエフェクトについても、標準のモジュールによるサポートを追加しました。
自由に使える素材として、HSPTVフォルダに多くの素材が拡充されています。 HSP3オフィシャルキャラクター "珠音(たまね)"を始めとして、プロ生ちゃんコラボ素材など ゲームを中心に幅広く活用することができます。 新たなサンプルスクリプトも同梱し、オリジナルの作品作りのため、自由に活用することができます。 HSPTV素材を使用したWebアプリケーションを公開できるサービス、「WebDish」も公開されています。
HSP3.6で追加された新機能を手軽に試すことができるサンプルスクリプトが、「sample/new36」フォルダに含まれています。 ぜひ新しいサンプルでの動作を、実際に実行してお試しください。
mes(print)命令が機能拡張され、文字の修飾などができるようになっています。
mes命令のパラメーターは以下の通りです。
mes "strings",sw "strings" : 表示するメッセージまたは変数 sw(0) : オプション
mes命令の最初のパラメーターは、文字列または変数名を指定することができます。変数名を指定した場合は、変数に代入されている内容を表示します。
2番目のオプションパラメーターによって文字の修飾と動作の設定を行うことが可能です。
値 : マクロ名 : 動作 ----------------------------------------------------- 1 : mesopt_nocr : 最後に改行しない 2 : mesopt_shadow : 影付き文字を描画する 4 : mesopt_outline : 縁取り文字を描画する 8 : mesopt_light : 影付き/縁取りを簡易描画する 16 : mesopt_gmode : gmodeの設定を反映する(HSP3Dishのみ)
オプションに2またはmesopt_shadowを指定した場合は、影の付いた文字を描画します。 オプションに4またはmesopt_outlineを指定した場合は、縁取りの付いた文字を描画します。 影と縁取りは、objcolor命令で指定された色が使用されます。 また、影と縁取りの幅はfont命令の第4パラメーターで指定することができます。
上の例では、左が影付き文字、中央が縁取り文字、右が通常の文字になります。
オプションに16またはmesopt_gmodeを指定した場合は、gmodeで指定した半透明、色加算などの設定を反映した描画を行います。
(このオプションは、HSP3Dish及びHGIMG4でのみ有効です。通常のHSP3ランタイムでは無視されます)
オプション値は加算することで複数を同時に指定することができます。
「mesopt_nocr+mesopt_shadow」を指定した場合は、影付きで改行しない表示となります。
HSP3Dish及びHGIMG4ランタイムにおいて、チェックボックス、入力ボックスの
サポートが追加されました。(入力ボックスはWindows/Linuxのみ)
chkbox、input命令をHSP3と同様に使用できます。また、objcolor、objmode命令などで設定される背景色、フォントの変更にも対応しています。
これらのGUIパーツはOSが提供する部品ではなく、HSP3Dishが独自に実装を行ったものです。
OSが提供する外観と異なる場合がありますが、異なるプラットフォーム間で統一された外観を提供することができます。
HSP3Dishの配置オブジェクトは、今後もHSP3と同様のパーツを拡充していく予定です。
レイヤーオブジェクトは、新しく提供されたユーザーによって定義される配置オブジェクトです。 あらかじめ画面上の描画を行うサブルーチンを登録しておくことで、指定したタイミング(レイヤー)で描画を実行させることができます。
layerobj p1,p2,p3,*label,p4 p1,p2 ; レイヤーオブジェクトのXYサイズ(ドット単位) p3(0) : レイヤーID *label : レイヤーオブジェクトの処理サブルーチン p4=0~(0) : オプション値 例 : layerobj 320,240,objlayer_normal,*laysub,100 stop *laysub return
レイヤーオブジェクトはそれ自体では何の機能も持ちません。
画面内の特定のエリアをレイヤーオブジェクトとして管理し、描画のタイミングごとにユーザーのプログラム(コールバックルーチン)を呼び出します。
使い方は色々ありますが、後から追加されるモジュールなどで描画部分だけを独立して管理することができます。
また、objprm命令でパラメーターを受け取ることができ、独自の配置オブジェクトを設置したり、作成することも可能です。
レイヤーオブジェクトの詳細は、プログラミング・マニュアルの「レイヤーオブジェクト」の項目を参照してください。
HSP3Dish、HGIMG4ランタイムでは、手軽に使用できる標準スプライトをサポートしました。
標準スプライトの命令は、hspdxプラグインとして追加されていた命令と互換があり、2D描画を手軽に扱うことが可能です。
HSP3で2D描画を行う際に、スプライト(矩形の画像)を利用するための手段はいくつか用意されていました。
・HSPDXプラグイン ・HGIMG/HGIMGXプラグイン ・HGIMG3プラグイン ・HGIMG4プラグイン ・mod_spriteモジュール
この中で、HSPDX、HGIMG、HGIMGXまでのプラグインはHSP2時代のもので、すでに開発が終了しており、
現在のOSや環境で動作させることが困難になっています。
HGIMG3/HGIMG4プラグインには、3D機能とともに高機能な2Dスプライトとしての
機能も持っていますが、座標をすべて実数で管理し、機能が多い代わりに
習得する内容も増えて手軽には扱いずらい所がありました。
今回、最も長い歴史があり、多くのユーザーが使用してきたHSPDXプラグインの
命令をもとに、手軽で扱いやすい2D専用のスプライト命令を拡充しました。
シンプルな命令でスプライトを表示でき、スプライトの画像を自由に登録できる
柔軟なシステムを搭載しています。また、スプライトコールバックやマップ描画など
ユニークな仕組みも導入され、元のHSPDXプラグインよりも利便性向上しています。
座標も整数で管理されており、2DゲームやUI表示などで扱いやすいものになっています。
もちろんイベントリストによる自律移動や3Dとの連携については、従来のプラグインを利用することもできます。
標準スプライトは、HSP3Dish、HGIMG4がサポートする全プラットフォームで動作します。
描画速度は、標準のHSP3ランタイムよりも優れており、ゲームの描画など速度を要求されるシーンでは
ベストの選択肢となるはずです。
標準スプライトの詳細は、「標準スプライトプログラミングガイド」を参照してください。
いままで、HSP3の中で発生していた割り込み、モジュール型変数のコンストラクタ、デストラクタなどを総称して
「コールバックルーチン」と定義し、従来よりも厳格に管理されます。
コールバックルーチン呼び出し時は限定された状況で、すぐにreturn命令により処理を終了させる必要があります。
以下の状況で呼び出されるラベル、またはユーザー定義命令はコールバックルーチンとして扱われます。
・#deffunc命令で定義されるクリーンアップ命令の実行時 ・モジュール型変数のコンストラクタ、デストラクタ実行時 ・配置オブジェクト(objlayer)によるユーザー割り込み ・es_setgosub命令によるスプライト表示割り込み(HSP3Dish)
コールバックルーチンは、通常のサブルーチンと同様に命令を記述することができますが、
wait,await,stop命令など時間待ちや停止をさせることができません。
もし、コールバックルーチンの実行中に使用できない命令があった場合は、
エラー42(コールバック内で使用できない命令です)というエラーが発生します。
コールバックルーチンの詳細は、プログラミング・マニュアルの「コールバックルーチン」の項目を参照してください。
配置オブジェクトの配色を指定するためのobjcolor命令が新規に追加されています。
objcolor p1,p2,p3 配置オブジェクトの配色を指定する p1,p2,p3=0~255(0) : 色コード(R,G,Bの輝度)
objcolor命令により、入力ボックス等の配色を設定することができます。
objcolor命令による配色を有効にするためには、あらかじめobjmode命令のオプションで
「objmode_usecolor」を指定する必要があります。
objmode objmode_usecolor
mesbox、input命令による入力ボックスは、rgbcolorで指定した文字色、color命令で指定した
背景色が適用されます。
また、mesboxによるテキスト入力ボックスは、[ctrl]+[A]キーにより全選択できるよう
修正されています。
24bitカラーコードを指定するためのrgbcolor命令が追加されています。
従来、RGBそれぞれを「color 1,2,3」のように分けてパラメーターを記述していたものを
「rgbcolor $010203」のような形で記述することができます。
Web(html)等で使用する「#112233」のようなRGBコードと親和性の高い指定方法です。
実行される内容は、color命令も、rgbcolor命令も変わりません。色のコードを記述する方法が異なるのみになります。
カーソルキーを始めとして、ゲームなどで使用されるキーの情報をまとめて取得するstick命令で、新しく[Z][X][C]、及び[A][W][D][S]のキー情報が追加されています。
追加された情報は、以下の数値として格納されます。
値(10進) | 値(16進) | キー |
1 | $00001 | カーソルキー左(←) |
2 | $00002 | カーソルキー上(↑) |
4 | $00004 | カーソルキー右(→) |
8 | $00008 | カーソルキー下(↓) |
16 | $00010 | スペースキー |
32 | $00020 | Enterキー |
64 | $00040 | Ctrlキー |
128 | $00080 | ESCキー |
256 | $00100 | マウスの左ボタン |
512 | $00200 | マウスの右ボタン |
1024 | $00400 | TABキー |
2048 | $00800 | [Z]キー |
4096 | $01000 | [X]キー |
8192 | $02000 | [C]キー |
16384 | $04000 | [A]キー |
32768 | $08000 | [W]キー |
65536 | $10000 | [D]キー |
131072 | $20000 | [S]キー |
新規に追加された、strexchange命令はスクリプトに含まれる文字列データをすべてまとめて置き換える機能を持っています。
これにより、スクリプト内で使用する文字列を別な言語に翻訳したり、バージョンによってメッセージを差し替えるなどの処理が容易になります。
文字列置き換えは、3つのステップで実現されます。
strexchange "strex_test2en.strmap"
これにより、スクリプト内の文字列に手を加えることなく、別な内容に置き換えが可能です。置き換えのためのファイルを、複数用意することにより多国語に置き換えることもできます。
文字列の置き換えを適用せず、スクリプト内の文字列に戻す場合は、
strexchange ""
のように空の文字列を指定してください。
置き換え文字列データのファイルには、元の文字列を示す数値(ハッシュコード)が含まれています。このコードと、スクリプト内の文字列をマッチングさせて、置き換えを行っています。
ですから、同じ文字列は同一のハッシュとしてまとめられてしまいますので注意してください。
また、あくまでもスクリプト内の文字列が対象となっているため、外部のテキストファイルを読み込んだり、文字コードから文字列を生成している場合には適用されません。
色々な場面で、翻訳やカスタマイズに威力を発揮します。ぜひご活用ください。
ZLibWrap.dllライブラリを使用したzipファイル圧縮解凍をサポートしました。
シンプルな2つの命令で、スクリプトからファイルの圧縮、解凍を行うことが可能です。
#include "zipfile.as"
を記述することで、以下の命令を使用することができます。 (実行の際には、ZLibWrap.dllファイルが必要となります。)
ZipCompress "srcfiles", "zipfile" "srcfiles"で指定したファイル(ワイルドカード使用可)を "zipfile"で指定したファイルに圧縮して保存します。 ZipExtract "zipfile", "path" "zipfile"で指定した圧縮ファイルを、"path"で指定したフォルダに解凍します。
詳しくは、それぞれの命令ヘルプ、サンプルを参照してください
HSP3.6では、MML記述によるFM音源再生をサポートするMUCOM88プラグインを標準で同梱しています。
NECのパソコンPC-8801シリーズで動作していた、FM音源のドライバーを再現したMUCOM88 Windowsが持つ機能を
コントロールすることができます。
MUCOM88プラグインを使用することにより、単純な音楽の再生から、MMLの解釈までスクリプト言語から
幅広く制御することができます。
FM音源(OPNA)6音+PSG音源(3声)+リズム音源+PCM音源の合計11チャンネルをMML言語により記述できます。
Windowsのサウンド再生処理は、DirectX8以降のDirectSoundを使用し、Windows XP以降の環境で、
追加のコンポーネントを用意することなく動作させることができます。
MUCOM88プラグインの詳細は、付属のマニュアル(docs/hspmucom.txt)それぞれの命令ヘルプ、
サンプル(samples/mucom88)を参照してください。
HSPMUCOMは、Open MUCOM88プロジェクトの一部として公開されています。
Open MUCOM88プロジェクトについては、以下を参照してください。
Open MUCOM88 https://onitama.tv/mucom88/
Windows上で動作するMUCOM88 Windowsツール及びサンプルMMLが公開されています。
HSPMUCOM.DLL及びソースコードは、無償(非営利)である限りは自由に紹介、
複製、再配布することができます。その際には必ずドキュメントと
ライセンス表記も含めるようにしてください。
HSP3.6では、Steamプラットフォーム用のAPIを呼び出すためのhspswプラグインを標準で同梱しています。
PCゲーム、PCソフトウェアをダウンロード販売するSteamプラットフォームで配信するアプリ上で、
ランキングや実績(トロフィー)、ステータスの読み書きといった機能をサポートすることができます。
hspswプラグインの詳細は、付属のマニュアル(doclib/hspsw.txt)、サンプル(samples/hspsw)を
参照してください。
HSPSWプラグインマニュアル doclib/hspsw.txt
hspinetプラグインのhttp/httpsリクエストで、 PUT/DELETEメソッドに対応したnetrequest_put、netrequest_deleteの 命令が追加されています。 これにより、より多くのWebAPIを利用することが可能になります。
hspinetプラグインマニュアル doclib/hspinet.txt
64bit(x64)アプリとして動作するHSP3標準ランタイム(hsp3_64.exe)は、 標準でunicode(UTF-8)文字ベースで動作するものに変更されました。 使用する場合は、スクリプトの先頭に以下の行を指定してください。
#include "hsp3_64.as"
動作の仕様は、HSP3UTF(UTF-8)版ランタイムと同様になっています。 64bit(x64)ランタイムは、64bit版のWindows上(Windows 7以降)でのみ動作します。
HSP3.51までのコンパクト版ランタイム(hsp3c)は、標準のHSP3から
一部機能を削除したものでしたが、HSP3.6から機能としては変わらないものになっています。
標準ランタイムとの大きな違いは、古いコンパイラによるシングルスレッドライブラリを
使用してビルドされており、ファイルサイズや使用メモリが削減されている反面で
新しいOSやCPU環境で実行の効率が落ちる可能性があります。
標準ランタイムは、最新のコンパイラ環境でビルドされており、多くの環境で効率的に
動作するよう最適化されています。
特に理由がない場合は、標準ランタイムを使用することを推奨しています。
ただし、標準ランタイムでは、Windows XP以降の動作をサポートするのに対して、
コンパクト版ランタイムは、Windows 98以降の動作をサポートしています。
コンパクト版ランタイムを使用する場合は、スクリプトの先頭に以下の行を指定してください。
#include "hsp3c.as"
また、これに伴って、HSP3.51まで用意されていたマルチスレッド版ランタイム(hsp3mt)の同梱を終了しました。 hsp3mtを使用していたユーザーは、引き続き標準のHSP3ランタイムをご使用ください。
作品を発表する際に自由に使用することのできる画像と音のデータファイルとして、 HSPTVフォルダ素材を大幅に拡充しています。 手軽なライセンスで、HSP以外の作品でも使用することが可能です。 また、Web上でHSPのスクリプトを公開できる、「WebDishサービス」でも自由に参照することができます。 「HSPTVフォルダ素材」「WebDish素材」を活用して、多くの作品が作られることを願っています。
HSP3.6 WebDish素材データ https://dev.onionsoft.net/seed/webdish_res.html WebDishサービス https://dev.onionsoft.net/seed/webdish.html
Windows、及びLinux上のHSPランタイム実行時のエラーメッセージは、OS環境の文字コードをもとに日本語・英語を切り替えて表示します。
また、HSPインストールフォルダに、英語版スクリプトエディタを新規に同梱しています。
「hsed3_en.exe」を起動することで、メニューその他のインターフェースが英語になります。
HSP3本体の機能自体に変更はありませんが、英語版の環境で利用したい方はお試しください。
今後も、HSP開発環境の国際化に向けて準備を進めていきたいと考えています。
HSP3Dish、HGIMG4のWindows/Linux版において、スクリーン(ウインドウ)サイズの動的な変更に対応しました。
いままでは、hsp3dish.iniファイルに記録されたサイズに従って起動時にサイズが固定されていましたが、
多くの方からサイズの変更とフルスクリーン対応の要望を頂き、修正致しました。
HSP3.6より、screen命令,bgscr命令によりスクリーン(ウインドウ)サイズを変更できます。
screen p1,p2,p3,p4,p5,p6 p1=0~(0) : ウィンドウID p2=1~(640): 初期化する画面サイズX(1ドット単位) p3=1~(480): 初期化する画面サイズY(1ドット単位) p4=0~1(0) : 初期化する画面モード p5=0~(-1) : ウィンドウの配置X(1ドット単位) p6=0~(-1) : ウィンドウの配置Y(1ドット単位)
p1のウインドウIDは、0のみとなります。 p4の初期化モードは、以下の値を指定することができます。
+4(screen_fixedsize) : サイズ固定ウィンドウ +8(screen_tool) : ツールウィンドウ +16(screen_frame) : 深い縁のあるウィンドウ +256 : フルスクリーン
p4に256を指定した場合は、指定された解像度のフルスクリーンとして初期化されます。
また、スクリーンサイズ変更時は、通常ランタイムとは異なり、それまでに読み込んだすべての画像バッファは失われますので注意してください。
HSP3Dish、HGIMG4において、描画時の座標変換を設定するviewcalc命令を追加しました。
viewcalc命令は、2D描画時のX,Y座標に任意の計算を適用することができる強力な機能です。
描画される表示物全体のスケーリングや移動、回転などを行うことができます。
viewcalc p1,p2,p3,p4,p5 p1(0) : 設定モード p2(0.0) : パラメーター1(実数) p3(0.0) : パラメーター2(実数) p4(0.0) : パラメーター3(実数) p5(0.0) : パラメーター4(実数)
p1で指定する設定モードには、いくつかの種類があり多彩な変換を行うことが可能です。
マクロ名 値 内容 ----------------------------------------------------- vptype_off 0 座標変換なし(デフォルト) vptype_translate 1 移動パラメーターを指定 vptype_rotate 2 回転パラメーターを指定 vptype_scale 3 スケールパラメーターを指定 vptype_3dmatrix 4 4×4マトリクスによる座標変換 vptype_2d 5 2D座標変換を設定 vptype_3d 6 3D座標変換を設定
vptype_2dは、基本的な2D座標変換を適用するモードになっています。 パラメーター1~3で、X,Yのスケール(倍率)、回転角度(ラジアン単位)を設定することができます。
viewcalc vptype_2d, 2.0, 2.0, 0.0
のように指定した場合は、X,Y方向に2倍のスケールで表示、角度は0となります。
他にも色々なパラメーターを指定できます。詳しくは、viewcalc命令のヘルプを参照してください。
HSP3Dish、HGIMG4において、変数バッファの内容を画像データとして扱うためのcelbitmap命令を追加しました。
これまで、HSP3Dishではドット単位の画像データに直接アクセスすることができませんでしたが、この命令によりメモリの内容を画像データとして読み書きできるようになります。
celbitmap p1,var,p2 p1(0) : ウインドウID var : イメージを置き換えるための配列変数 p2(0) : 動作オプション
celbitmap命令を使用する際には、あらかじめbuffer命令により作成したオフスクリーンバッファと、置き換えるための変数バッファを初期化する必要があります。
オフスクリーンバッファは、buffer命令でscreen_offscreenのオプションを指定して作成してください。
buffer 2,256,256,screen_offscreen
その後、バッファを置き換えるための変数バッファを作成します。
dim命令により、1次元配列を初期化して作成してください。作成するサイズは、オフスクリーンバッファのXサイズ×Yサイズになります。
dim bitmap, 256*256
これで、celbitmap命令を使用する準備が整いました。
celbitmap命令により、オフスクリーンバッファのIDと配列変数を指定することで、変数バッファの内容がそのまま画像イメージとして適用されます。
変数バッファは、1要素あたり1ドットとなります。1ドットは、32bitの要素をR,G,B,Aそれぞれ8bit単位で格納されるRGB形式のデータとなります。(3.6β2版と3.6β3版でRGBの並び順が変更になっています。ご注意ください)
たとえば、「$ff204080」(16進数)を指定した場合は、A=$ff(255)、B=$20(32)、G=$40(64)、R=$80(128)となります。(カッコ内は10進数)
画像データの置き換えは、コストの高い処理になるため、大きなサイズのイメージを置き換える場合、フレームレートが下がることがありますので注意してください。
p2パラメーターにより、置き換えの形式や動作を指定することができます。
値 マクロ 動作 --------------------------------------------------------- 0 celbitmap_rgb $aabbggrr形式でデータを保持する 1 celbitmap_bgr $aarrggbb形式でデータを保持する 16 celbitmap_capture 描画画面の内容を変数に読み出す
通常は、OpenGLの標準に合わせたcelbitmap_rgbの形式が使用されます。オプションにcelbitmap_bgrを指定した場合は、DirectX標準に合わせたARGBの並びになります。
celbitmap_captureを指定した場合は、描画先の画面上のデータを配列変数に読み出します。(読み出しのサイズはオフスクリーンバッファのサイズになります)
※celbitmap_captureオプションは、実験的な実装です。現在は、Windows(DirectX版HGIMG4を除く)、Linux版でのみ使用できますのでご了承ください。
HSP3DishのiOS,android版は、それぞれの新しいSDKに対応しています。
iOS版 : XCode10以降用 iOS14,64bit対応 android版 : Android SDK 10 (API 29),64bit対応、 SDKr25、NDK r12以降、AdMob(Google Firebase)対応
iOS、android版ともに64bitバイナリの出力に対応しています。 それぞれ対応したバージョンのSDKや開発環境が必要となりますので、 詳しくは、マニュアルを参照してください。
HSP3Dishマニュアルインデックス hsp3dish.htm既存のプロジェクトが正しくビルドできなくなる可能性があるため、 既存のプロジェクトは、再度作成し直すことを推奨します。
HSP3.6では、それまでのHGIMG4から大きく修正を行なっています。 より強力で使いやすくなるよう、各種機能を見直しました。 以前のバージョンからの上位互換で動作するよう設計されていますが、 一部の機能で動作が異なる場合がありますので、過去に作成したスクリプトを 動作させる際にはご注意ください。 詳しく使い方は、HGIMG4プログラミングガイドをご覧ください。
HGIMG4プログラミングガイド doclib/hgimg4.html
追加変更された項目の概要は以下の通りです。
HGIMG4 Unity連携ガイド doclib/hgimg4_unity.html
この連携を利用して作られた、「プロ生ちゃんデモ」(sample/pronama3d)も サンプルとして同梱されています。
setreq SYSREQ_LOGWRITE,0 ; ログ出力を抑制
setang (X->Y->Zの順番による回転角度の設定) setangy (Y->X->Zの順番による回転角度の設定) setangz (Z->Y->Xの順番による回転角度の設定) event_ang (X->Y->Zの順番による回転角度のイベント変化) event_angy (Y->X->Zの順番による回転角度のイベント変化) event_angz (Z->Y->Xの順番による回転角度のイベント変化) event_setang (X->Y->Zの順番による回転角度のイベント設定) event_setangy (Y->X->Zの順番による回転角度のイベント設定) event_setangz (Z->Y->Xの順番による回転角度のイベント設定)
setobjrender id,rendergroup,lightgroup id(0) : オブジェクトID rendergroup(1) : レンダリンググループ値 lightgroup(1) : ライティンググループ値
レンダリンググループ値は、カメラやライトが持つレンダリンググループ値と同一である場合は、
有効となります。
通常は、オブジェクト、カメラともにグループ1が設定されています。特定のカメラからの表示のみ
表示を無効にしたい場合などに利用できます。
ライティンググループ値は、特定のライトに対して有効/無効を切り替えるものです。
ライトが持つライティンググループ値と異なる場合は、ライトが無効となります。
それぞれのグループ値は、1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768の中から
任意のビットを組み合わせて指定可能です。
プラットフォーム | 文字コード | フォントファイル |
Windows | SJIS | 不要 |
Linux/RaspberryPi | UTF-8 | ipaexg.ttfファイルが必要 |
html5(Emscripten) | UTF-8 | 不要 |
android | UTF-8 | 不要 |
iOS | UTF-8 | 不要 |
setreq SYSREQ_USEGPBFONT,1
上のように、システムリクエストでSYSREQ_USEGPBFONTに1を設定することで従来のフォント表示に切り替えることができます。(「res/font.gpb」ファイルを用意する必要があります)
システムリクエストによるフォント描画の切り替えは、任意のタイミングで行うことが可能です。