私自身hgimg4は初心者というか仕様を読むほど使う気が萎える者の一人ですが、
触った感じを書いて行きたいと思います。宜しくお願いいたします。
●ようこそ魔境へ!
早速ですが、hgimg4にgetang命令やその代価となる命令が存在しないという事実を知り、
多くのhgimg3からの移行者は一瞬困惑することになるでしょう。
しかしsetang命令は存在することに気付き、hgimg4は変数を用い自前で全ての角度を
管理すればいいと一旦は落ち着きを取り戻します。
しかし以下のコードを実行することで、
実質的にはhgimg4で「角度」を扱うべきではないと思い知らされることになるのです。
#include "hgimg4.as"
gpreset ;hgimg4リセット
setcls CLSMODE_SOLID, 0 ;背景をブラックに設定
setpos GPOBJ_CAMERA, 0,0,5 ;カメラ座標を設定
gpbox box, 1 ;箱を作成
angle=3.14,0.0 ;箱の角度を設定
repeat
redraw 0
angle(1)+=0.02 ;箱のY軸を回転
setang box,angle,angle(1) ;箱の角度を確定
gpdraw ;描画
redraw 1
await 30
loop
●上のサンプルを実行したいんだけど?
一体何のコードかと上記サンプルをスクリプトエディタに貼り付けて実行しようとした入門者は
見慣れないエラーコードを目の当たりにしてため息をつくことなるでしょう。
hgimg4はこれまでのように単にソースコードだけで実行できる代物ではなくなっているのです。
doclib/hgimg4.txt「リソースフォルダについて」欄に書かれていることですが、
hgimg4のサンプルフォルダ(sample/hgimg4/)内に存在するresフォルダを
スクリプトファイルと同じ場所にコピーしておかなければhgimg4用スクリプトは実行できないのです。
上記サンプルを実行するために、とりあえずフォルダを作成し、
サンプルスクリプトを保存、そしてそのスクリプトファイルと同じ場所に
このresフォルダを丸ごとコピーしてから実行しなければなりません。
準備ができたら、早速F5キーを押して実行してみましょう。
●一体何が起こっているんだ?
ようやくサンプルコードが実行できたあなたはサンプルの実行結果に再び困惑します。
コードの意味は理解できるものの、なぜモデルがぷるぷると振動するのか理解に苦しみます。
この角度に関する問題と不自由さはhgimg4で直ちに改善すべき問題でありながら
公式からは何の声明もないことにあなたは更に頭を抱えます。
hgimg4は物理エンジンに対応とうたっています。
サンプルを見ると物理演算によってばらばらと崩れ落ちるブロックをドヤと表示してくれますが、
そのブロックの角度を取得する手段は提供されません。
またブロック以外のものに物理挙動を与えることもできません。
ブロックを、自由な地形に配置することもできません。
実際のところこの機能は本格的に利用することが不可能に近く、
物理ブロックの山を画面に表示させて、「まあ、すてき!」とやること以外に利用価値がないのです。
ベクターの計算命令もバグったまま放置されているし、もう本当になんなのコレ??
●packfileは利用できない
ここまでを読んでいるうちに薄々感づいているかもしれませんが、
フォルダ構成に縛りを受けている現在はモデルやシェーダ等の各種ファイルは
hgimg3のようにpackfileが利用できないことを意味しています。
hgimg4を使用する以上、あなたの作ったテクスチャやモデルデータは全て裸のまま
ユーザーに提供することを受け入れなければなりません。
ちなみに、bcopyを使えばpackfileが使えると反論しようと思ったあなたは甘い。
それは不可能ではありませんが、gpdファイルとセットになっているマテリアルファイルの拡張子は8文字もあり、
パックするファイル名に使えるのはたったの2文字までとなってしまいます。
packfileを使うとすれば、bcopy前のデータの拡張子を短くしたりして、
スパゲティにならないよう自分なりに特殊なコピー処理を組み込む作業が必須となります。
●でもそのうち改善されるでしょ?
一つの事実として、2016年7月現在、hgimg4の最近のバグフィックスは2015年の5月です。
この年1回あるかないかのアップデート速度で改善すべき課題は山積しています。
hgimg3と異なりhgimg4は刻々と変化するスマホ環境の変化に追従しながら
gameplayエンジンの仕様に合わせつつアップデートしていく必要があり、
Windows版の利便性の向上やまして機能追加なんて考えている余裕がないようにさえ見えます。
スマホ仕様 ⇔ gameplay仕様 ⇔ Windows仕様
この3つがお互いにお互いの脚を引っ張り合っている三すくみ状態は
パワフルな3Dゲームを開発する環境とは程遠く、
hgimg4が永遠にかかえる一つの大きな癌と言えるのかもしれません。
おそらく今年も状況は何も改善されないまま放置され、
貴重な時間はHSPコンテストを盛り上げることに使われるのでしょう。
ちなみに、ZAPさんがご所望のモーション関連の機能は現在ありません。
(gpbファイル内のアニメーションの1つが勝手に再生されるだけです。)
●最後に
hgimg4はリリースから4年目となりますが、全く利用者が増えない現状にはそうした背景がある気がします。
チュートリアルの作成すら尻込みしたくなる機能欠落状態に、あなたが未来や希望を見出したのなら、
ぜひこのシステムを使って素晴らしい作品を世に送り出し、我々に道標をもたらしてください。
私からもぜひお願いしたいところです。コンテストの主催者も恐らくそれを願っていることでしょう。
あっ、そうそう。まだhgimg4のメリットの説明がありませんでした。
hgimg4ではシェーダーが搭載されている事が唯一メリットと言えるかもしれません。
ただ、シェーダーの詳しい説明はありませんけどね。表示されるモデルに光沢があって美しいです。
マルチプラットフォームはまだ形式上って感じ。ベータ版で、最近ようやく対応が始まるのか?という状況。
その他機能面や安定性、情報量に至るまで、全面的にhgimg3が4を上回っています。