Skip to content

EmueraEM+EE's Summary

リソースの占有解除

プログラム動作中Resourceフォルダーの画像ファイルを常時占用しないようにしました

音声ファイルに対応

Emueraと同じディレクトリにあるsoundフォルダに音声ファイルを入れることで使用可能 詳しくは後述のPLAYSOUND命令等を参照

リソースファイルのWebP形式に対応

Emuera1824+v11+webp+Secureを参考にWebP形式に対応していましたが、EMv6+EEv13から別のWebPライブラリを使用するように

Emuera-Anchorを同梱(サポート終了)

システム側に言語変更機能を搭載することで各言語に対応。Emuera-Anchorは削除

Emuera-Anchorのホットキー拡張機能を移植

Emuera-Anchorのホットキー拡張機能を移植。Ctrl+Tでタイトル画面に戻る、Ctrl+Rで再起動、Ctrl+OでERB再読み込み

キーマクロをUTF-8で保存するように

英語以外の言語もマクロに組み込めるようになりました

セーブデータを圧縮して保存できるように

コンフィグ画面もしくはemuera.configで設定可能です

emuera.config
セーブデータを圧縮して保存する:YES

注意

圧縮機能オンしたセーブデータは古いバージョン、本家版のEmuera.exeとの互換性がありません

Emueraアイコン指定機能

emuera.configのコンフィグ項目で設定可能です

コンフィグ項目Emueraのアイコンのパスに画像のパスを入力してください。パスはEmuera.exeを相対パスで指定(..は無効)。

変化するのはタイトルバーとタスクバーのアイコンだけです(Emuera.exeのアイコンは変化しません)。

Emuera-AnchorClipboard機能を移植

設定→クリップボードから、Emueraで表示したテキストを自動的にクリップボードでコピーする機能を追加

ttfotfの動的読み込みに対応

ルートディレクトリにfontフォルダを作成し、そこに置くことでコンフィグ及びGSETFONTで使用可能になります

.NET 7に対応

CRER氏の協力の元、.NET 7に正式対応しました。感謝

定数・変数

ERHで定義した変数の配列に、CSVファイル/ERDファイルで名前を付けられるように

ERHで定義した変数名を準拠にファイルを読み込み、既存のCSV変数と同じように配列に名前を付けることができる

CSVフォルダ内で使えるものは従来どおり「変数名.csv」ERB内で使えるものは「変数名.ERD」ファイルとなる。書式はCSV変数のファイルと同じ。これらが2つ以上存在しても、同じ識別子が定義されている場合だけ起動時にエラー吐いて終了する。違う識別子を同じ整数に置き換え可能

また、多次元配列の変数に名前を付ける場合は、各次元に応じてファイル名に@から続く数字を記すことで対応する。左の添字から1,2,3と対応している

ERH.ERH
#DIM HOGE, 3
#DIM HOGE2D, 3, 3
#DIM HOGE3D, 3, 3, 3
ERBフォルダ
HOGE.ERD
HOGE2D@1.ERD
HOGE2D@2.ERD
HOGE3D@1.ERD
HOGE3D@2.ERD
HOGE3D@3.ERD

VariableSize.csvCOUNTを使用禁止変数に設定できるように

COUNT,-1を記述することでCOUNTを使用禁止変数に設定できます。この場合、REPEATの行は起動時に警告が入り、実行時にはエラー落ちします

DAY,TIME,MONEYにCSVを適用可能に

DAY.csv,TIME.csv,MONEY.csvで他CSVのように名前を付けられ、DAYNAME,TIMENAME,MONEYNAMEが使用可能になります

XMLMAPDataTableがセーブデータの中で保存できるように

CSVフォルダ内のVarExt*.csvファイルで,保存したいXMLMAPDataTableのIDが設定可能になります

  • セーブデータをバイナリ形式で保存するYESの時のみ有効です
  • IDを設定したとしても、メモリにないならセーブデータへ保存しません
  • セーブデータの中に保存されたデータのIDがCSVで設定されていない場合、読み捨てます
  • セーブデータが古いバージョン、本家版のEmuera.exeとの互換性があります

VarExtSample.CSV
; global.savの中で保存しようとするMAP, XmlDocument, DataTableのID。一行複数個設定可能
; 複数行、複数ファイル(例えばVarExt1.csv, VarExt2.csv, VarExt3.csvなど)で設定も可
GLOBAL_MAPS, MyMap, MyMap2
GLOBAL_MAPS, MyMap3
GLOBAL_XMLS, 0, MyXml
GLOBAL_DTS, db
; save*.savの中で保存しようとするMAP, XmlDocument, DataTableのID
SAVE_MAPS, MyMap4
SAVE_XMLS, 1, MyXml2
SAVE_DTS, mydb1
; GLOBALがついた変数と似ている、RESETDATAの時に変化しない、RESETGLOBALの時に削除
STATIC_MAPS, MyMap5
STATIC_XMLS, 1, MyXml3
STATIC_DTS, db2

注意

CSVファイルで設定されたIDの先頭のスペースと末尾のスペースが削除されるので、注意してください

仕様が変更された命令・式中関数

HTML_PRINT関連の変更

  • HTML_PRINT<space>タグでparamに負数を指定できます
  • HTML_PRINT<clearbutton>タグの追加。<clearbutton>は囲った部分のボタンかを無効とする(titlepos属性の機能は残る)
    • 属性notooltiptrueの場合、ボタンtitle属性も無効とすいる
  • HTML_PRINT<img><shape>タグの属性widthheightyposparamを設定する時、数値の後にpx(大小文字不問)を追加すると,数値をフォントサイズとの百分率で解釈の代わりに,ピクセル数とする。
  • HTML_PRINT<div>タグの追加。<div>で囲った内容を指定したエリアで表示することが可能です。<div>は入れ子構造に対応していません。他のタグと併用可能です。
    • width属性:サブエリアの幅。<img><shape>タグのようにpx、フォントサイズとの百分率で指定可能。
    • height属性:サブエリアの高さ。<img><shape>タグのようにpx、フォントサイズとの百分率で指定可能。
    • xpos属性:サブエリアが現在位置からの横方向距離。省略可。負数なら左寄り,正数なら右寄り。<img><shape>タグのようにpx、フォントサイズとの百分率で指定可能。
    • ypos属性:サブエリアが現在位置からの縦方向距離。省略可。負数なら上寄り,正数なら下寄り。<img><shape>タグのようにpx、フォントサイズとの百分率で指定可能。
    • size属性:widthheightの簡略化です。書式:size='width,height'
    • rect属性:xposyposwidthheightの簡略化です。書式:rect='xpos,ypos,width,height'
    • depth属性:サブエリアの奥行き。省略可。負数なら手前に,正数なら奥に。
    • color属性:サブエリアの背景色。省略可。指定のフォーマットは<font>タグのcolor属性と同じです。
    • display属性:サブエリアの描画形式。省略可。
      • relative(デフォルト):今の文字位置で描画。
      • absolute:ウィンドウの固定位置で描画、スクロールしても移動しません。(0, 0)はウィンドウの左下、yposは上方向が正です。
    • margin属性:サブエリアの全四辺のマージン領域。省略可。
      • margin='all'allを四辺すべてに適用します。px、フォントサイズ百分率両方可。
      • margin='leftRight,topBottom'leftRightを上下、leftRightを左右に適用します。px、フォントサイズ百分率両方可。
      • margin='top,leftRight,bottom'topを上、leftRightを左右、bottomを下に適用します。px、フォントサイズ百分率両方可。
      • margin='top,right,bottom,left'topを上、rightを右、bottomを下、leftを左に適用します。px、フォントサイズ百分率両方可。
    • padding属性:サブエリアの全四辺のパディング領域。省略可。指定のフォーマットはmargin属性と同じです。
    • border属性:サブエリアの境界の幅。省略可。指定のフォーマットはmargin属性と同じです。
    • bcolor属性:サブエリアの境界の色。省略可。指定のフォーマットはmargin属性と似ているが、色の書式は<font>タグのcolor属性と同じです。
    • radius属性:サブエリアの境界の外側の角の丸め(半径)。省略可。
      • radius='all'allを全四角に適用します。px、フォントサイズ百分率両方可。
      • radius='ltRb,rtLb'ltRbを左上と右下、rtLb右上と左下に適用します。px、フォントサイズ百分率両方可。
      • radius='lt,rtLb,rb'ltを左上、rtLbを右上と左下、rbを右下に適用します。px、フォントサイズ百分率両方可。
      • radius='lt,rt,rb,lb'ltを左上、rtを右上、rbを右下、lbを左下に適用します。px、フォントサイズ百分率両方可。
  • 画像、divなど行の高さを超えた内容は所在行が画面外でも表示可能にしました。
  • HTML_PRINT<img>タグに属性srcmを追加。CBG系のボタンマップと似ています。INPUT系の拡張モードまたはINPUTMOUSEKEY命令を実行するとき,マウスカーソル直下のボタンマップ画像の色(RGB部分)をRESULT:3(INPUTMOUSEKEYの場合RESULT:6)に代入します。
  • HTML_PRINTに第二引数(整数型)を追加。第二引数が0(デフォルト)以外の場合,強制改行をしなくなります。

MAIN.ERB
@SYSTEM_TITLE

    HTML_PRINT "文<shape type='space' param='-100'>字"
    HTML_PRINT "<clearbutton><button value='1' title='ツールチップ1'>[1] 確定</button></clearbutton>"
    HTML_PRINT "<clearbutton notooltip='true'><button value='2' title='ツールチップ2'>[2] 戻る</button></clearbutton>"
    HTML_PRINT "<shape type='rect' param='0,0,200px,100'>"
    HTML_PRINT "<img src='button_normal' srcb='button_hover' srcm='button_mask'>"
    HTML_PRINT "<div ypos='-5px' xpos='-180px' width='80px' height='80px' color='#503030' depth='-1'><button value='3'>[3] ボタン3</button></div>"

    ONEINPUT

HTML_PRINTに関するPRINT系命令の変更

  • PRINT_IMGに引数を追加し(省略可)、3つの形式を追加した。
  • PRINT_IMG, PRINT_RECT, PRINT_SPACEの整数型引数の後にもpx(大小文字不問)を追加可能になる

API

PRINT_IMG src
PRINT_IMG src, width, height, ypos
PRINT_IMG src, srcb, width, height, ypos
PRINT_IMG src, srcb, srcm, width, height, ypos
HTML_PRINT命令の<img>タグに相当する

MAIN.ERB
@SYSTEM_TITLE

    PRINT_IMG "Normal", "Hover", (500+A) px, 100
    PRINT_SPACE 200 px

    ONEINPUT

INPUT系でマウスクリックを受け付けるように

INPUT, INPUTS, ONEINPUT, ONEINPUTS に第二引数追加(整数型,省略可,デフォルトは0)

TINPUT, TINPUTS, TONEINPUT, TONEINPUTS に第五引数追加(整数型,省略可,デフォルトは0)

  • 追加引数==0時、または省略した時 本家版と同じです。
  • 追加引数!=0時 マウスクリックをエンターキーにみなす(RESULTSに空文字列を代入。ボタンを押した場合,ボタンのインデックスをRESULTS:1に代入)、左クリックの時RESULT:11、右クリックの時RESULT:12にします。また、同時にShiftCtrlAltを押した場合、そのキー状態をRESULT:2に保存します。(bit 16 17 18)

ONEINPUTのデフォルト値に2桁/2文字以上を指定できるように

ONEINPUT, ONEINPUTS, TONEINPUT, TONEINPUTS デフォルト値に2桁以上/2文字以上を指定できます

INPUT系を右クリックでスキップできるオプションを追加

INPUT, INPUTS, ONEINPUT, ONEINPUTS に第三引数追加(整数型,省略可,デフォルトは0)

TINPUT, TINPUTS, TONEINPUT, TONEINPUTS に第六引数追加(整数型,省略可,デフォルトは0)

  • 追加引数==0時、もしくは省略時は本家版と同じ挙動
  • 追加引数!=0時、右クリック等でのスキップ中に入力待ちを行わない ただしデフォルト値は適用される。上記INPUT系でマウスクリックを受け付けると併用した場合はそれぞれRESULT:1及びRESULTS:1に、 併用しなかった場合は通常通りRESULT:0及びRESULTS:0にデフォルト値が代入される

LOADTEXTSAVETEXTでファイル名を指定可能に

LOADTEXTの第一引数、もしくはSAVETEXTの第二引数が文字列の場合、それぞれの引数をパスとしてファイルをロード/セーブします。Emuera.exeを相対パスで指定(".."は無効)。また、設定画面かEmuera.configから「LOADTEXTとSAVETEXTで使える拡張子」項目で決められた拡張子しか使えません。(デフォルトはtxtのみ)

emuera.config
LOADTEXTとSAVETEXTで使える拡張子:txt,xml,json

REPLACEの拡張

REPLACEの第三引数が文字列配列変数,第四引数が0以外の場合,第二引数と合致する部分を順次に文字列配列の要素で入れ替えり,その結果を返します。

MAIN.ERB
@SYSTEM_TITLE
#DIMS str = "pen", "apple"
#DIMS orig = "I have a {1}, I have an {2}, ..."

PRINTSL REPLACE(orig, "\\{\\d+\\}", str, 1)

ONEINPUT
结果
I have a pen, I have an apple, ...

INPUTMOUSEKEYでボタン使用可能に

命令実行時にRESULT:0 = 1(マウスクリック時)だった場合にRESULT:5にボタンの数値が入ります また、文字列型を返すボタンを押した場合、RESULTSに値が代入されます

OUTPUTLOGでファイル名と拡張子を指定可能に

OUTPUTLOGに引数指定することでそのファイル名.拡張子で出力できる リテラルはPRINTSとかと同じ v5fixで親ディレクトリを指定できる脆弱性を修正 子ディレクトリは指定可能

GSETFONTでフォントスタイルを指定できるように

第4引数にSETFONTと同じ4ビット数(1=太字 2=斜体 4=打ち消し線 8=下線)指定で装飾を付けられるように 省略可能

GETNUMERD対応

GETNUMがERDにも対応し、省略可能な第3引数を指定できるように。第3引数は多次元配列の次元を指し、左から1,2,3となる(式中関数VARSIZEの仕様とは異なるため注意) また、式中関数VARSIZEの次元指定をERDと同じく1,2,3とするコンフィグ項目を追加

GCLEARで指定区域を指定した色で置き換えるように

書式2を追加するより,第三~第六引数で区域のX、Y、幅、高さを指定可能になりました。

API

1. GCLEAR GID, cARGB
2. GCLEAR GID, cARGB, x, y, width, height

GCREATEFROMFILEに第三引数を指定することで、Emueraとの相対パスで画像を参照できるように

省略可能な第三引数が非0の場合、Emueraからの相対パスで画像を参照します
これによりERBフォルダやCSVフォルダ、独自仕様のフォルダなども使用可能に

エイリアス(Alias)機能追加

Neo_Kesha氏による追加

TalentAbl等の変数に複数の識別子を指定可能に
拡張子.alsファイルで指定します

Talent.csv

0, Talent1
1, Talent2
2, Talent3

Talent.als

1, Talent2Alias
0, MyCoolTalent
2, Talent3Alias

ERBでの動作

TALENT:0:Talent1 = 15
PRINT TALENT:0:MyCoolTalent ; 「15」と表示されます。
TALENT:0:MyCoolTalent = 420
PRINT TALENT:0:Talent1 ; 「420」と表示されます。

EMEEでのみ動作する特殊なコメントアウト記号「;^;」を追加

;^;から始まる行はeramaker及び他バージョンのEmueraでは通常通りコメントアウトされ、EMEEでのみ実行される