[もどる]
一括表示
0147 Ver0.140
投稿者:たくみ 2004/06/18(金) 19:23

Ver0.140をリリースしました。

文字列変数の保存、読出ができるようになりました。
方法としては通常変数と同様、

SAVE[ID=1 FILE="xxx" SET=$A]

のように使用します。

あと今回、CG 命令でレイヤーを操作してから、画面に反映されるまで
1フレーム分の描画遅延が発生していたのを修正しました。
あくまで1フレームですが、例えば FPS値を 20 などに設定した場合、
1 秒 ÷ 20で 0.05 秒の描画遅延が無駄に発生していたことになります。
またFPS値が 60 だとして 0.016 秒の遅延ですが、
それでもリアルタイムな描画や反応を要求されるゲーム等においては
ちょっと無視できないラグですね…。
大変失礼致しました…。


また修正関係では、
各種構文チェックを強化し、記述ミスによる実行時エラーを
ある程度回避できるようにしました。
記述ミスの例を以下に挙げます。

------------------------------------------------------------
・小数点以下の部分に16進数表記ができてしまっていた

ex)
@A = 5.0x12 ( ← . はピリオドです)

→実行できてしまっていた


------------------------------------------------------------
・配列要素内の式構文チェックが厳密でなかった

ex1)
@A = @B(6/*-+()3)

→実行時に内部エラーが発生していた。

ex2)
INT[@HNO(10)]
INT[@AA=@HNO(5-*2)]

→実行できてしまっていた


------------------------------------------------------------
・配列要素内に配列変数を用いた場合、配列次元数チェックを行っていなかった

ex)
INT[@A(10,5)]
INT[@B(10,5)]
INT[@C = @A(1, @B(3))] //← @B は二次元配列なのに、一次元配列として記述しても通ってしまう

→実行時に「配列サイズを超えています」という不適切なエラーが出ていた


------------------------------------------------------------

以上のような記述ミスをひととおり全て
コンパイル時に検出できるようにしました。

これで、スクリプトミスかシステムのバグか、
いくらかですが判別しやすくなりました。

0148 Ver0.141
投稿者:たくみ 2004/07/17(土) 20:40

Ver0.141をリリースしました。

ホント更新遅くてすみません…(_ _;ゞ
現在、今月末〆切の仕事に追われています。
頑張れ、私!

さて今回の更新内容ですが、
レイヤー計算の高速化と、各種バグが見つかってきたのでそれの修正がメインです。
あとは CG[] 命令にあったレイヤー加工系命令を、
今回新たに CGACT[] 命令として実装しました。
将来的に『回転』や『拡大縮小』機能なども、この命令に搭載される予定です。

また、今回 module フォルダの中の exe ファイルを1つに減らし、
ファイルサイズを抑える使用にしました。
(速度の最適化のために3つ実装していましたが、ほとんど意味のない事に気づきました…)
おかげで前回Verより1MB近くも配布ファイルサイズが少なくなっています。

しかも将来的には module フォルダ自体が無くなる予定ですので、
さらにファイルサイズを抑えられる仕様に出来そうです。

0150 Ver0.142
投稿者:たくみ 2004/08/14(土) 22:03

Ver0.142をリリースしました。

今回はサウンドの機能追加と安定化がメインです。
サウンドフェードイン/アウト機能をはじめ、
再生開始位置を指定できるようになりました。
サウンドレイヤーを2つ利用すれば、クロスフェード再生等も可能です。
また、別の曲をロードして再生する時に、前の曲が止まるまで若干遅延が
発生していたのをほぼ解消しました。

あとは、module フォルダを今回より排除しました。
いままでリリース時において、Yu-ris.exe と module セットで動作する
仕様でしたが、今回より Yu-ris.exe 単体で動作するようになります。
それにより、制作者がゲームなどを配布時に、module を同梱せずに済むため、
さらにファイルサイズを抑えられるようになりました。
※スクリプト制作時(デバッグ時)は、compiler がセットで必要です。

また、コンパイラの記述解析チェックをより強化しました。
主なものでは、文字列変数を数値変数として見なされてしまう不具合の修正や、
INT 命令や LET 命令などでの左辺の式の記述ミスや配列サイズのチェックを強化しました。

0156 Ver0.143
投稿者:たくみ 2004/10/07(木) 15:35

Ver0.143をリリースしました。

YU-RISのレイヤー描画モードに、まず新たに加算モード、減算モード、除算モード、
比較(明)モード、比較(暗)モード、差分モード、除外モードを追加実装しました。
これで、通常モードの他に、加算減算乗算除算、スクリーン、比較(明、暗)、差分、除外の、
計10個のモードが設定可能になりました。よりどりみどり(^^
ただまだ新モードに関しては、とりあえず実装したというレベルなので、
まったく最適化していないために処理がまだ遅いのが欠点です(^^;
今後のバージョンアップにご期待くださいませ。

また、新モード追加により CG 命令の MODE 値に仕様変更があります。
モード値の指定が、今回より「加減乗除、スクリーン、差分」の順になりますので、
いままで MODE=1 が乗算、MODE=2 がスクリーンでしたが、
今回から MODE=3 が乗算、MODE=5 がスクリーンになります。
大変ご迷惑をおかけしますが、もしスクリプトを組まれていらっしゃる方は、
「MODE=1」「MODE=2」等のキーワードで検索して頂いて、
それぞれ MODE=3、MODE=5 に置換のほうお願い致します。m(_ _)m

あとは、マスクとトランジションが同時に指定できなかったという
制限がいままであったのですが、それがついになくなりました。
これで、例えば立ち絵画像などにトランジションをかけることなどが
出来るようになります(^^

あとは、テキスト関係の機能強化に関して。
ようやくテキストレイヤーを複数生成できるようになりました(^^;ゞ
これは、後の「選択肢機能」や「文章履歴機能」を実現する際に必要になる機能です。
じつは本来最初からそういう実装のつもりだったのですが、なかなか実現できずに、
いまのいままで引きずってしまっていました…。
あとはテキストレイヤーにもトランジションをかけられるようになりました。
…あまり使わなさそうですけど(^^;

そのほかサウンド関係では、Ogg再生まわりの安定度のさらなる向上と、
またループ再生の回数が指定できるようになりました。
その関係で、LOOP キーワードの仕様が若干変更になります。
続けての仕様変更申し訳ありません。m(_ _;)m

具体的には、
いままで LOOP=0 だとループせず、LOOP=1 だと無限ループという仕様でしたが、
今回から LOOP=0 だと無限ループ、LOOP=1〜x だと再生回数という形になります。
仮にLOOP=1 の場合、1回再生という意味なので、ループしない再生と同じことになります。

0162 Ver0.144
投稿者:たくみ 2004/11/20(土) 23:04

Ver0.144をリリースしました。

コンパイラ起動時に、一部環境でエラー終了してしまう不具合を修正しました。

また、png読込に使うlibpngや、圧縮解凍に使うzlib等のライブラリのバージョンをアップしました。
各種不具合やセキュリティ脆弱性が修正されているそうです。


現在、YU-RISの更新ペースが大変ゆっくりになっていますが、
怒濤の更新の再開は来年頭以降になる予定です。
ご了承くださいませm(_ _;)m

0169 Ver0.145
投稿者:たくみ 2004/11/28(日) 20:38

Ver0.145をリリースしました。

ELSE[] 命令を拡張しました。
一般的なelseifに相当する機能が利用できるようになりました。
サンプルスクリプトに、「条件式2のサンプル」というのを追加しました。
そこでサンプルとして使っていますのでご参照ください。

あと、読み取り専用メディアからの起動か否かを取得するシステム変数
「@_MEDIA_READONLY」を実装しました。これにより、
読み取り専用メディアからの起動や動作を制御できるようになりました。

例として、CD上からは起動させたくない場合、ただ起動しないだけでなく、
任意のグラフィックを表示させてHDDへのコピーを促すようにすることも出来ますし、
逆に、CD上からは起動できるけど、その代わり、セーブロードなど
一部機能を制限させるといった処理も可能になります。

0173 Ver0.146
投稿者:たくみ 2004/12/31(金) 21:46

Ver0.146をリリースしました。

レイヤー拡大縮小機能を実装しました。
これでまた演出の幅が広がるかと思います(^^
一部レイヤーモードの描画計算に関しても一部見直し、高速化しました。

あとは選択肢機能がようやく実現可能になりました。
使い方としては、新しい命令とかではなく、
文字列変数とテキストレイヤー、マクロの組み合わせで実現しています。
スクリプトサンプル版のほうにて説明しています。
良ければそのまま流用してやってください(^^

また、コンパイル処理がかなり高速になりました。
いままでの数倍の速さです。まさかここまで速くなるとは…(@@;
かなり実用的な速度になりましたので、
コンパイルを速くするための「差分コンパイル機能」に関しては、
再実装はしばらく後回しにしようと思います。

その他各種不具合などを修正しています。

というわけで今年最後の更新です。
来年も頑張りますよ〜!

それでは、よいお年を(^^

0175 Ver0.147
投稿者:たくみ 2005/01/14(金) 21:56

Ver0.147をリリースしました。
今回はマウス関係がメインです。

まず、マウスの位置を設定できる命令を実装しました。
MOUSE[X=50 Y=30]
とすれば、その位置にマウスカーソルが移動します。

また、マウスの移動検知速度を改善しました。
クリッカブルマップを利用するとよくわかるのですが、
いままでちょっと反応が鈍い感じがありました。
それがかなり改善されています。

あとはトランジション速度が遅くなってしまっていた
不具合を修正しています。


それでは、今年もよろしくお願い致します。m(_ _)m

0195 Ver0.148
投稿者:たくみ 2005/05/09(月) 23:16

Ver0.148をリリースしました。いよいよ更新再開です!(><

■今回、各種命令の名称変更があります。
具体的には、ENDIF、ENDSUB、DEL、SOUNDDEL 命令が、
それぞれ IFEND、RETURN、CGEND、SOUNDEND 命令へと変更になりました。
いままでの命令に慣れてしまった方には本当に申し訳ないです。
また、すでにスクリプトをいろいろと書いてしまっている方には
お手数になってしまいますがエディターなどで置換のほうお願いいたします。

■THREAD 命令が拡張され、TASK 命令へと名称変更になりました。
タスクレイヤとして、レイヤ管理できるようになりました。
いままでのラベル名での管理ではなく番号による管理になるので、分かりやすくなります。
また、レイヤなので、有効無効指定キーワード「E」を使って、
例えば E=0 とすれば、処理が一時停止され、E=1 で処理が再開されたりと、
使い勝手が少し良くなりました。

■レイヤーモードの種類がまた大幅に増えました。
オーバーレイ、覆い焼きカラー、焼き込みカラー、焼き込みリニア、ハードライト、ソフトライト、
ビビットライト、リニアライト、ピンライトモードの、以上9つが追加されました。
ソフトライトモードに関してですが、ハッキリと決まった計算式というものはないそうで、
アプリケーションによって計算式がそれぞれ微妙に違うようです。
YU-RISも一応独自の式で実装しましたが、まだちょっと計算式がいい加減でして、
それに関しては今後、余裕があるときにでも修正する予定です。
他のレイヤーモードもひとまず実装したという感じですので、速度的にかなり遅いです。
それの改善も今後の課題です。

■フォルダ構成が変わりました。
今回から、ひとつのシステム(EXE)で複数のプロジェクト(作品)を管理できるように、
フォルダ構成が変更になりました。実際に見ていただければと思いますが、
システム用のデータと作品用のデータが完全に分離され、例えば作品データの移動や、
システムの最新バージョンへの更新などの管理がしやすくなりました。
ひとまず YU-RIS をダウンロードすると、中に sample, sample2, sample3 フォルダがありますが、
それぞれが別のサンプルスクリプトとして独立しています。
system/ysconfig.txt の中の設定で、どのプロジェクト(作品)を起動させるかが
設定出来るようになっています。

0196 Ver0.149
投稿者:たくみ 2005/05/09(月) 23:19

Ver0.149をリリースしました。

■IFBREAK, IFCONTINUE 命令を実装しました。
それぞれ IF 命令ブロックの中で使います。
IF 命令ブロックの中で IFBREAK 命令があると、次の IFEND 命令のところまで一気にジャンプします。
C言語でいうところの、ループを抜ける break に似ていますが、IFBREAK 命令は、ループではなく
あくまで IF ブロックを抜けます。
また、IFCONTINUE は、これもC言語の continue に似ていて、直前の IF 命令まで戻り、
IF 命令から実行を再開します。
今回、ひとまずの実装ですが、今後、さらに便利になるように機能を拡張する予定です。