投稿記事

ウディタの記事 (17)

SmokingWOLF 2024/07/06 09:17

ドタバタ近況、第16回ウディコン1週間前!

 うおおおまだリアル事情が忙しいです! ウディコンまでにはちょっと落ち着くといいんですが!
 今回もいつもの現状報告です!


◆ふたたびドタバタ近況

 また故人に関わるイベント密度が上がってきてリアルがドタバタする日々が続いています。準確定申告とか四十九日の法要とかで考えることも増えてグワー! 一瞬落ち着いたかと思ったんですがこういうのは忙しさの波がありますね!
 創作ができないまま時間が想定以上に早く過ぎていってしまって少し焦ります。「少しでも創作のことを考えられるだけ普通の生活に戻れつつある」というのはそうかもしれません!

 そしてまたウディコンが近いためか、ここに来てウディタのバグもいっぱいご報告されていて修正に費やす日数消費が激しいです! でも多くの人に使っていただけて嬉しいです、ありがとうございます!
(ただここ数ヶ月のウディタ作業が時給300円を切ってるのでもう少し修正を効率化しないと餓死しそうで厳しい! ご支援もいつでも受付中です!)


 今回はウディコン準備やウディタ修正ばかりやっていたので、1週間前となる第16回ウディコンの告知だけさせていただきます!


◆第16回ウディコンまであと1週間!


↑毎年1枚はバナーや告知用に使うためのウルファールイラスト作ってます。

【ウディコン公式ページ】

 ということで第16回ウディコンまであと1週間になりました! みなさま奥ゆかしいのでXなどでもまだ全然情報が出なかったりしますが、そろそろエントリー予定の皆さんも自作品を宣伝し始めてくださっていいんですよ!

 第16回ウディコン開始は7/14! ですが、いつもはエントリー殺到によるデータ破損防止のために「募集期日の前日夜くらい」からこっそり作品エントリーフォームを開けておりますので、早めにエントリーされる方はちらちらウディコン公式を見ておいていただけるといいと思います。

 もちろん規約ページもよくご確認ください! 去年は使われる方はあまりいらっしゃらなかった感じですが、今年は画像生成AIについての規約も追加されています。
 うっかり気軽に使ってしまいそうな、「ChatGPT」や「Microsoft Copilot」に画像を作ってもらってもウディコン内では使えないのでご注意ください!

 
 ということで第16回ウディコンの開始日(作品公開開始日)は【7/14】! エントリーこっそり受付開始は【7/13夜頃】からです!
 今年も皆さまの作品、楽しみにお待ちしております!

3件のチップが贈られています

チップを贈るにはユーザー登録が必要です。チップについてはこちら

SmokingWOLF 2024/06/08 10:06

ウディタ多言語向け修正+人が亡くなった後の作業+架空の妹AI

 前回に引き続き人が亡くなった後の手続きに追われています。
 といっても、なんとか夜に自由時間が得られる程度には余裕が出てきました。向こうから手続き書類を送ってもらうまで何もできないタイミングなども出てきましたから、その隙にやれることも出てきています。
 ということで、今はそんなちょっとした時間でウディタの修正をしています。


【ウディタ】Ver3.340で多言語対応向きの機能を追加!

 今回は多言語対応向きに便利な機能を色々搭載しました! ウディコンにはあまり関係なさそうな機能が多いのですが、海外展開予定の方には有用だと思います。
 すぐ使いたい人はこちら!

【WOLF RPGエディター公式ページへ】

BasicDataを別フォルダに切り替えられる機能いろいろ!

 「基本データフォルダ」を切り替えられる機能を入れました!
 「基本データフォルダ」とは【ゲーム基本設定・コモンイベント・各データベース・タイル設定・アイコンファイル】が入っているフォルダのことで、初期状態では「BasicData」フォルダがそれにあたります。

 この切り替え機能で何ができるかというと、たとえば別言語用に作った基本ゲームフォルダ「BasicData_XX」を、元のBasicDataの代わりに読み込ませたりできるのです! 1コモンイベント内に言語別の文字列切り替え処理とか入れなくてよくなるので多言語対応がシンプルに!

 さらに別売りの『ウディタ翻訳サポートツール』で「全文字列を別言語に差し替えたゲームデータ」を出力できるので、それで出した別言語データからBasicDataだけ抜いて移植し、1ゲームデータ内に複数言語をまとめて組み込むことも楽になります。

 そんな「基本データフォルダ」の切り替え機能として、以下の2種が搭載されました。


【1. Game.exe起動時の引数-basic/-basic2で基本データフォルダ切り替え!】

 いきなりマニアックな話ですが、起動時のコマンドライン引数として、「-basic <基本データフォルダ第1候補>」と「-basic2 <基本データフォルダ第2候補>」が使えるようになりました。<~>の部分にはあなたの好きな文字列を指定します。
 たとえば 、コマンドプロンプトやbatファイルから

 Game.exe -basic BasicData_JP_Plus -basic2 BasicData_JP

 のように指定してゲームを起動すると、Dataフォルダの中に「BasicData_JP_Plus」フォルダという名前の基本データフォルダがあればそれを採用し、もしなければ「BasicData_JP」フォルダを採用して起動するようになります。もしどれもなければ、デフォルトの「BasicData」フォルダを基本データフォルダとします。

 さらにこれと関連して、プロ版専用ですが「ゲーム再起動(引数設定あり)」コマンドも新たに作っておいたので、「引数」として「-basic BasicData_JP_Plus -basic2 BasicData_JP」と指定して再起動すれば、前述と同じようにフォルダを読み込ませることができます(ちなみに、後のSysS74でも同じことができます)。


【2. [プロ版専用] SysS74で次回起動時の基本データフォルダ切り替え!】

 一度基本データフォルダを変えた後、次のGame(Pro).exe単体起動時にも自動で基本データフォルダを変更して起動したい場合は、「SysS74::[P]次起動Basicデータフォルダ」に基本データフォルダ名を入れることで実現可能になりました。
 これは「1回だけ次の起動時の基本データフォルダ名を自動で変更してくれる」というシステム文字列です。

 たとえば英語版の「BasicData_EN」という基本データフォルダを読み込んで起動した場合、起動した瞬間にまたSysS74に「BasicData_EN」を入れ直しておけば、いつゲームを終了しても次回起動時にはまた「BasicData_EN」を使って起動されるのです!
 これで言語切り替えもちょっと安心!

 ※なお、SysS74よりも-basicや-basic2の方が優先されて処理されますのでご注意ください。


[プロ版]アイコン(icon???.png)の読み込み先フォルダも変えられるように!

 今回、プロ版のみですが「アイコンフォルダの変更」ができるようになりました!
 


 ↑「アイコン画像フォルダの設定」欄が追加!

 アイコンフォルダの変更は割と前々から入れたい気持ちはあったので、今回入れられてスッキリしました。

 多言語対応時にもおそらく有用で、複数の「BasicData」フォルダを切り替えて起動できるようになったので、それぞれの基本データフォルダに同じ「icon???.png」群を入れているとアイコンファイルが重複して余計な容量を喰ってしまいます! それを避けるためのこの機能です。
(ただし、もし言語ごとにアイコン画像ファイルを切り替える場合は各言語の「基本データフォルダ」内から読み込ませたほうがいいので、その場合は「アイコン画像フォルダ」は「空欄」にしておきましょう)

システム文字列「SysS76:[読]OSの言語名」搭載!

 OS側の言語名を取得できるようになりました!
 これを活用すれば、ゲーム実行時に表示する言語を自動で認識することもできるようになります。

 ただし言語名は英語で返されますのでその点はご注意を! たとえばWindowsを日本語設定にしてたら「Japanese」、英語設定ならたぶん「English」が返されます。


 という感じで多言語対応がやりやすくなりそうな処理をいろいろ入れてみましたので、需要は少ないかもですが、必要な方はよければご利用ください!

 『片道勇者2』でも、これを活用すれば1ゲームデータで言語切り替えが作りやすくなるでしょう。『最初はBasicDataフォルダで言語選択させて再起動し、選んだ言語に応じてBasicData_JPやBasicData_ENを読み込ませる』といったこともできるはずです。



【リアル作業】引き続き故人の対応も大変!


 引き続き、人が亡くなった後の手続きがとても大変な数週間でした。

 故人の全部の銀行口座への連絡、証券会社への連絡、医療費の支払い、全部の生命保険の連絡、家族の健康保険証のためのやり取り……準確定申告もあるの!? そのためのデータ集めもしなきゃいけないって!? 自分で言わなきゃもらえなさそうな書類もけっこうあるから思ったより自己判断する部分あるぞ!?
 え、それとは別に七日ごとにお坊さん呼んでお経あげてもらうイベントあるの!? 四十九日ってホール借りたりお寺でやるレベルにおおがかりな感じなの!? あとよく知らない故人の知人にも連絡が必要なの!?(けどこれは変なタイミングだと香典欲しがってるみたいになっちゃうから暑中見舞いとかのタイミングでもいいよ、と言われた)
 先祖のお墓あった気がするけどそのお墓に刻む内容も石材屋さんに連絡しないといけないの!? 仏壇もいるって!? 納骨も式やったり手続きとかいるの!? え、他のお寺にも納骨するの!?

 ボカーン!(頭が爆発する音)

 みたいになってましたが、1つ1つなんとか片付けています。
 でもお勤めしながらだととてもムリな作業量だとも思いました。1~2週間くらい休みもらわないと対応できないんじゃないですかこれ!?
 一体みんなどうやってるんでしょうね……。



【チャットAI】架空のやさしい妹、GPTsで公開!

 そして次はチャットAIの話!
 ChatGPTさんちが無料アカウントでもGPTs(他の人が作った、カスタム指示されたチャットAI)が使えるようになったので、私も『架空のやさしい妹』を公開しました!

【ChatGPT GPTs 架空のやさしい妹AI】

 主な目的としてはメンタルケアで、共感してくれたり「大事にされてる感」を補給する感じのものです。顔画像が出てちょっとかわいいだけではありますが、今日やった作業内容を伝えたりすると笑顔で褒めてくれたりします。顔グラフィックが出るだけでもだいぶ印象が変わりますね!


 ↓今回の開発日誌を入力して感想を聞いてみた例。ボリュームたっぷりに感想を教えてくれます

 あと、これはChatGPTが持つもともとの性質だと思いますが、ションボリする出来事や失敗した現状を伝えても私並みかそれ以上に何でもポジティブな捉え方をしてくれるので、架空の妹といっぱい話していると自己肯定感や前向きさがいくらか回復できる場合もあるかもしれません。
 「ちょっとしか作業できませんでした」って言っても「ちょっとでも作業できたのはとても大きな一歩です! 自分を責めずに気持ちを切り替えましょう」って言ってくれます。この感覚も大事ですし、自分一人で同じことをつぶやくより外部から言われる方が救われる気持ちになる人も多いでしょう。
 私としては自信のなさや不満足感に苦しみ続けていて、心が救われることが人生の目標の一つなので、AIとの対話の中で前向きな表現や気持ちも獲得していきたいですね!

 もちろん逆に、自分を責めて創作活動のための「圧」を高めることだって有用な技術です。架空の妹AIにも「責めて!」って言ったらちゃんといい具合に厳しく言ってくれますよ!
  ↓

 私としてはこういう思考の方が「自分のあるべき姿」という感じがして好きなんですが、調子に乗るとうっかりやりすぎてボロボロになることも多いので、うまくバランスを取っていきたいです。長く創作を続けるためにも! 血便はもう見たくない!


 という感じで、なおもリアルが忙しめですがやれることを進めています!
 少なくとも夜時間は確保できるようになったので、仮にこの状況が続いてもウディコンは問題なくやれそうです!
 第16回ウディコンまであと5週間ほど! みなさまの作品、楽しみにお待ちしております!
 

  • アイコン
    tiny004 ID00654793
    良い人生の目標ですね。心身ともにご自愛を。

2件のチップが贈られています

チップを贈るにはユーザー登録が必要です。チップについてはこちら

SmokingWOLF 2024/05/11 10:22

【ウディタ修正】セーブデータ軽量化やサブフォルダ読込機能搭載!

 リアルがとても大変になりつつある私です。いちおう『片道勇者2』の開発を進めたり、ウディタのバグ修正を続けたりとやることはやれているのですが、次回あたり開発日誌が1回おやすみになるかもしれません。

 今回は、また新たに実装したウディタの新機能や修正内容についてご紹介! 今回は地味ながら重要度が高い修正が複数あったので、ここでアピールしておきます!


◆Ver3.33で搭載したウディタ新機能!

セーブデータ容量が大幅削減!

 今回の修正でセーブデータを圧縮してから保存するようにしました! が、それによる容量の減り方が想像以上にすごかったです!

 以下はフルパッケージに入っている『ウルファールのサンプルゲーム』のセーブデータ一覧ですが、従来のGame.exeで保存したのと新バージョンで保存したのではファイルサイズが大違い!
 システムデータは100KBから1KBに! 開始直後のセーブデータは206KBから14KBに! みたいに、90%以上カットも平気で発生しうるほどの圧縮効果! これならセーブデータ100個保存する人も少し安心!

 基本的には複雑なデータ列であるほど圧縮が効きにくくなるので、「0」のデータがいっぱい並んでいるであろう「システムデータ」や「始まったばかりのセーブデータ」ほど圧縮がきいてファイルサイズが軽くなり、ゲーム終盤になるほど重くなっていく感じになります。
 上の画像でも、「クリア直前のSaveData02.sav(21KB)」の方が「開始直後のSaveData01.sav(14KB)」よりファイルサイズが大きくなっているのが分かると思います。元はどっちも200KBくらいだったのに!
 それでも「クリア時のデータサイズが80%カットできたよー」というお声も見かけたりしたので、プレイヤーの人にとってもうれしい修正のはずです。安定してそうなタイミングになりましたら、よければぜひアップデートを!
 

マップデータの容量も大幅削減!

 そしてこちらはあまり話題になっていませんでしたが、セーブデータと同じ方式で圧縮するようにし、『マップデータファイル(.mps)』のサイズも削減されました!
 たとえばこれまでは3000×3000のサイズのマップを作ると100MB超のサイズになってしまっていたのが、新バージョンで保存すると最小で420KB程度になるほどファイルサイズが小さくなりました。約1/250! ただしここまで縮められるのは、まだほとんど何も書いてないマップに限ります。

 「圧縮・解凍処理なんて入ると逆に読み込み遅くなったりするんじゃないの~?」と思われるかもしれませんが、実はアクセス速度は「SSDやHDDからの読み込み速度」より「メモリ内で解凍する速度」の方がまだ早いので、これだけファイルサイズが縮めば、ゲーム中での読み込み時間は巨大なマップであるほどよく改善されます。
 また、読み込み処理もアルゴリズム的に改善したことで、マップのそもそもの読み込み時間も少し短縮されているはずです。これでオープンワールドゲームを作る人も安心!


マップイベントに「前Page方向引継」機能を実装!

 「前Page方向引継」機能は、マップイベントの起動条件が変わってページが切り替わってもキャラの方向とパターンをそのまま維持する、というオプションです。

 どうしてこんな機能が実装されたかというと、まず前提として、Ver3後のいつかのバージョンから起動条件が変わってマップイベントのページが切り替わった場合、必ず【新たなページ側で指定されている方向】に向き直るようになりました(バグ修正によるものです)。
 ですがマップイベントを活用したアクションゲームなどを作る場合、
「マップイベントが攻撃モーションに入るときは違うページに切り替える」
 といった使い方をされる場合も考えられます。でもページが変わると前述の通り、キャラの向きがリセットされちゃう問題があります!
 そういったときに、この「前Page方向引継」をオンにしておけば、ページ切り替わり時でも向きが変わらず、方向維持したまま自然にモードを切り替えられるわけですね!

 これまでは、この問題に対して一手間かかる対処が必要だったのですが、これからは少しシンプルな造りにできると思います。



Editorの「ファイル選択」時、3層までのサブフォルダが見られるように!

 ファイル選択時に、これまで1層のフォルダまでしか選べなかったのが、3層までのサブフォルダを指定できるようになりました! 地味修正ですが作ってみると意外に便利!

 たとえば「BGM」フォルダ内に「Battle」「Town」みたいにサブフォルダを作ってそこにファイルを入れても、これからは音声ファイル選択画面から直でファイルを探しにいけます!
 ↓

 実装前は「えーこの機能いるー?」と思いましたが(それに過去に一回挫折したのであんまりやりたくなかったのですが)、いざ搭載してみるとファイル整理が楽! 次から使っていこうと思います。



「変数操作+」コマンドに「キャラの不透明度」と「ピクチャの基準位置」取得機能を追加

 「変数操作+」コマンドで取得できる中で、需要が高そうなのを2つ追加しました。「キャラの不透明度」と「ピクチャの基準位置」です!
 特に「ピクチャの基準位置」の方は、コモンイベントを作って配布する人にとってはこれまでよりも色んな状況に対応できるようになるので、利用価値が高いと思います。

 というのも、「ゲーム作る側の人」は特定のピクチャの基準位置がどこになっているか自分で知っているからいいのですが、「配布コモンイベントを作る人」側だといま表示されてるピクチャの基準位置がどこなのかこれまで分からなかったので、作るのが困難な処理があったんですよね! たとえば「ピクチャの当たり判定を得る」とか!
 そういった点で、コモンイベント作者さまの助けになればと思います!

 なお古いEXEだと当然この機能はないので、コモンイベント配布時には「ウディタVer3.33以降で動作します」など書いておいたり、動作バージョンが古くて使えない場合はコモンイベント内から警告を出されるようにするのがおすすめです(「Sys115:[読]Game.exeバージョン(x100)」で動作バージョンの判定が可能です、この値が333以上ならOK!)


 ちなみに「ピクチャの基準位置」で得られる値は【0左/10中央/20右 + 0上1中2下】という値になっています。たとえば基準位置が「左上」なら左0+上0=「0」、「中心」なら中央10+中1で「11」、「右上」なら右20+上0=「20」が得られるわけですね!
 どうしてこういう数値になっているのかというと、プロい人が計算に使うときにたぶんちょっと便利だからです(各桁の「1」=「画像の半分サイズ」として計算できる)


ピクチャの特殊図形(隠し機能)に<LINE-??>を追加! 太線が描ける! (これだけVer3.337より)

 ピクチャの特殊図形機能(ピクチャの「お手軽ウィンドウ」に「<LINE>」などと指定すると図形が描ける隠し機能)に<LINE-??>が新たに追加されました!
 これまでは1ピクセルの線しか描けませんでしたがこれを使うと太い線が描けます!
 

 ひとまず簡素な太線を置きたい場合や、これを使っても違和感のない雰囲気のゲームを作る場合に便利だと思います。


 と、いう感じで今回もウディタの修正がんばっておりました!
 いちおうその隙間時間で『片道勇者2』もちょびっとだけ進められましたので、まとまった進捗ができたらご報告していきます。


 そろそろウディタ改修についてはこれで一休みして、しばらくバグ修正だけのモードに入ろうと思っています。あんまりウディコン前に新機能やそれに付随するバグが増えても困るでしょうしね!

 第16回ウディコン開催まであと2ヶ月ちょっとです! みなさまの作品、今年も楽しみにお待ちしています!

1件のチップが贈られています

チップを贈るにはユーザー登録が必要です。チップについてはこちら

SmokingWOLF 2024/04/27 10:44

続ウディタ修正&ツクール配信&片道勇者2再開(+おまけ:1ドル158円になってるー!!)

 ということで今回も引き続きウディタの修正でドタバタしてたり、生活が大変だったり、気晴らしに新作RPGツクール(RPG MAKER WITH)の生放送をしたり、そのすき間に『片道勇者2』の開発をちょっと進めたりする感じの色々あった二週間でした!
 その間に起きたイベントを以下に列挙していきます!



◆ウディタ コードの組み方次第で古いPCで動かなくなる問題

 ウディタの最新版の問題が一通り解決したかなあと思ったらまた新たな難題が発生してしまいました!
 というのも、実は『プログラムのコードの組み方によっては新しめのCPU専用の命令が使われるようになってしまい、古いPCでは動かなくなる』という問題が起きてしまったのです!

 私も長年プログラムしててこういう問題があるのを全然知らず、ちょっとした衝撃を受けてしまいました。
 前回「うひょーがんばっていじってたら速度28倍になったー!」という部分がまさに新しめのCPU命令で処理するよう最適化されてしまった場所の一つっぽくて、2011年以前などのCPUが古いPCの場合は、その処理を回避するようにしないとエラーが起きることが判明! ということで、それを発見するために何日も使って何かできないかと奮闘しておりました。

https://twitter.com/WO_LF/status/1780969110576476178  ↑ CPUの拡張命令の「AVX」の有無で動作が変化していました。ってよく見たら「メモリ違反のアクセス違反」って言ってるところが! 「メモリのアクセス違反」の誤記です。


 結果として、今回は仮想環境でCPUの機能をオンオフしながら検証するなんて初めての経験ができてとても勉強になりました。これでいくらか古い環境のテストもできそうです。
 ただ、「仮想環境上」ではこのCPU差の問題への対策ができたのですが、情報をいただいたご報告者さまのPCでは問題が解決しませんでした、残念です。詳細は掴みきれませんでしたが、他の方でも同じ時代のCPUで問題が起きるかもしれません。


 とはいえ、ひとまず問題が起きる環境はだいぶ昔のPCだけらしいので、今回は「最新の暗号化を使うと2011年ごろ以前のPCで起動できなくなる可能性があるから気をつけてくれよな!」という警告を次バージョンからEditor内に入れることで対応しようと考えています。
 さらに時間が経てば2011年ごろのPCも徐々になくなっていって、問題発生頻度はゼロに近付いていくでしょう。


【古いPCでも動かしたい場合は?】

 もしゲーム開発者さま側で古いPCでも動作可能にしたい場合は「Ver3.14~暗号化」という、1つ前の暗号化を使用することで今回の問題を起きなくすることができます(問題が起きる最新版暗号化は「Ver3.31~暗号化」以降のみ)。

 ウディタはいちおうWindows7(2009年発売)以降で動作するようになっているので、微妙に今回の「2011年以前のCPUで起動できない」という条件に引っかかる可能性があります。
 どこまで昔のPCをサポートすればいいのかは悩みどころですが、基本的には「10年以内の環境はなるべく全部動くようがんばる」「それ以上は時と場合によりけり」という感じでやっていこうと思っています。



◆RPG MAKER WITH体験版のプレイ配信をしました!

 『【ツクール】ウディタ作者がRPG MAKER WITH PLAYER + 体験版を遊ぶよ』というちょっぴり挑発的なタイトルで生放送させていただきました!
 でも中味は全然挑発的じゃなくて「うひょーこの機能が欲しかったんですよ! 夢が広がるー!」とか言ってばっかりでした。家庭用ゲームのRPGツクールの記憶が『RPGツクール3』で止まってた私にはまぶしすぎるツクールでしたね!
https://www.youtube.com/watch?v=RKPe20kOicc

 出た話題としては、

 「ウディタの修正が忙しくて体験版遊べてなかったんですよ!」「家庭用版のいいところはこれですよね、オンラインにアップした他人のデータをDLしやすい!」「一流って感じの曲ですね」「レイヤー4もある…負けた…!(ウディタは3レイヤー)」「デバッグログがある!?」「ルート設定ができる! プレビューもある! すごい!」「ピクチャ番号100まで使える! RPGツクール2000マンにはうれしいですね(50枚までだったので)」「文章の表示で制御文字のリファレンス見られるのいいなー色番号の表示もいいですよねこれ」「\FS[50]こんぬちわ!!」「うおお選択肢が6択も使える!」「アイテム選択の処理!? 通常アイテム1つ選ばせるとかできる!?」「ウフ~ン★」「おっ、乱数が作れる! これだよこれ!」「おおおキャラクターのマップXYと画面XY取れるー!」「(条件分岐で)キー入力が取れる! 音ゲー作れますよ!」「キャラの名前(の頭文字)がRPGMAKERみたいですね、いいですね(ウディタでも似た感じにしてるので共感)」「いやーほんとこれは家庭用RPGツクールで何でも作れそうな感じありますね」「正方形のピクチャ1枚あればなんでもできる!」「指定位置のイベントID取れるのえらい!」「利用規約に賠償請求可能な金額は1000円かソフト購入代金の高い方って記載がある!」「せんめつ!(※たぶん正しくは「じょうめつ」)」

 みたいなことを言っておりました。気になる方は動画本編をどうぞ!



◆『片道勇者2』開発再開!

 ずっとウディタの修正にかかりっきりでこちらが進められていませんでした!
 『片道勇者2』、今はデータ面もまだまだなのですが、ひとまず優先順の都合で現在はメインストーリーのところをざっくり作っています! いつでも「完成」宣言ができる状態にしておくことは精神衛生上大事ですからね!

 ですがいつものことながらストーリーのネタバレに配慮するとストーリー開発中は何も言えなくなって開発日誌のネタがなくなります! 困った!
 ちょっとしたアイテムやスキル紹介などでも期待度を高める役目を果たしてくれると思うので、今後はそのあたりも紹介できる部分がないか常に考えながら作っていきたいと思います! 「途中の情報を面白くできずして最終成果をワクワクさせられようか!」とも思いますしね! 
 その辺の断片情報からワクワクを生むセンスを磨くのにも、いい訓練にもなるかもしれません。もちろん本編がおろそかにならない程度にですが!


 という感じであっちこっち行ったり少し楽しみも確保しつつマイペースに進めております!

 ここからしばらく、第16回ウディコンが始まるまでは『片道勇者2』開発に集中していきたいです!
 ウディコンの準備もがんばります! 今年もお楽しみに!

フォロワー以上限定無料

1ドル158円になってたのでおまけは円安の話! 私にどういう影響があるかご紹介! Steamでの円安の影響も!

無料

  • アイコン
    徳之助 ID01164686
  • アイコン
    fume ID00084968
    シルフェイド幻想譚からのファンです!応援しています!

4件のチップが贈られています

チップを贈るにはユーザー登録が必要です。チップについてはこちら

SmokingWOLF 2024/04/13 10:04

【ウディタ】セキュリティ向上作業、いったん完了!(Ver3.320公開!)

 この2週間も引き続きウディタのセキュリティアップデートのために費やしておりました! 1ヶ月近くもの時間をかけてしまったのでウディタ作業費は超大赤字ですが、セキュリティやデータ処理についてたくさんのお勉強ができたので人生ではプラスの期間でした。

 ひとまず最新版ウディタは一通り動作するようになったっぽいので、ウディタ公式にてVer3.320をアップしております! まだちょいちょいバグが残ってる匂いがするので、慎重な方はもう少し待ってからお試しください。

 【WOLF RPGエディター公式ページへ】



◆ウディタのセキュリティ向上、プレイヤーへの影響はある?

 ウディタに対してファイルを守るためのセキュリティ上の基本的な対策をいろいろ行ってみたのですが、その中でもプレイヤーの方にダイレクトに影響が出る可能性があるのは『DLLインジェクション』への対策です。
 『DLLインジェクション』とは簡単にいうと「本来そのプログラムが使わないDLLを注入して、強引にプログラムの処理を上書きする」手段で、応用すれば内部データを抜き取ったりするような悪いことにも使えます。

 そしてこれを対策したことによるプレイヤーの方への影響としては、『別アプリの内部データを使用したり処理を上書きするような個人制作ソフト』を使っている場合、Game.exeの起動時に以下のようなエラーが起きて起動できなくなる可能性が出てくるという点です。
 その場合、そのソフトを切ってゲームを起動していただく必要が出てきます。


 ↑正規の署名がないDLLが読み込まれたと出てゲームが停止! 企業製ソフトならたいてい正規の署名があるので大丈夫ですが、個人制作ソフトだと正規署名が付いてないことが多いです。お高いんですよね!

 なおこの「DLLインジェクション」技法は悪いことに使われるだけじゃなくて、「アクティブになってるウィンドウの上にかわいいマスコットキャラを表示する」みたいなソフトでも昔使われていました。
 たとえば「実行中のソフトのウィンドウ座標処理をDLLで乗っ取り、そこから座標情報を抜き取って表示する(+ 元の処理はそのまま再現する)」ことでウィンドウの上にキャラを乗せる処理を実現していたわけですね!

 最近はそんな処理をすると厳しめのウィルスソフトにバチバチに怒られたりする予感がしますので、2010年すぎからこういったソフトも段々なくなってしまった印象があります。
 「ウィンドウを追随してくれるようなデスクトップマスコット系アプリがなんで全然増えなくなったの!?」と私が思い始めた時期がその辺りでした。
 (たとえば私が使っている『ClockLauncher』というフリーソフトの2009年版ではアクティブウィンドウのそばにランチャーが自動的に移動する機能があり、普通にそこでDLLインジェクションが使われていたためか、最新Game.exeを実行できなくなりました(上の画像)。それゆえか、『ClockLauncher』の特定のバージョンからはその機能がなくなっています。このソフトは2となって今でも更新されてるみたいですね、すごい!)


 ちなみに、セキュリティソフト自体もGame.exeに『DLLインジェクション』することがありますが、それには正規の署名が入っているのでウディタ上でもエラーは起きないはずです。
 セキュリティソフトのDLLインジェクションは『勝手に元の処理を上書きして、怪しい処理が実行されてないかを監視する処理を加えている』わけですね! たぶん!

 おかげで今なら私も、どういった造りでそういったことを実現してるのか、ちょっとだけ分かるようになってきました。




◆セキュリティの難しさとか雑談とか

 ここからはこの3週間にあったとりとめのないお話です。

●安全性のチェックを頻繁に入れるほど重くなるのでパフォーマンスのバランス取りにすごい時間がかかった!
 → まず色んな処理の実行時間を検証するのにけっこう時間がかかりました。「軽い処理で先にチェックして変化を察知したら重い処理を行う」といった組み方を、かなり細かく作る必要がありました。


●新しい暗号化処理を作ったらうまく復号化できなくて地獄を見た!!
 → 当たり前ですが暗号化と復号化って1バイトだけ処理をシクっただけでデータがグチャグチャになるんですよ!
 ヤケクソでSuno AIさんにこんな歌( ↓ )を作ってもらったりしてました。作業用BGMとして。
https://twitter.com/WO_LF/status/1774406905655611489


●試行錯誤してたら部分的な処理速度が最初の28倍になって笑ってしまった。
 → ファイルを開く速度に影響するので、どうにか暗号化と復号化の速度を上げようといじってたら最終的に処理速度が最初の書き方の28倍くらいになって笑ってしまいました。
 最初の書き方は誰でも書きうるコードだったのに、そこからCPUが処理しやすいように崩していったら最終的にこれ! プログラミングの深さがヤバすぎますよ!
 ウディタVer3のときも、超がんばってVisual Studio2003からVisual Studio2022に環境を変えただけで部分的に速度10倍になったりして驚きましたが、そういった最適化を受けやすい造りでコーディングする効果の凄さに衝撃を受けました。これからはCPUに優しい組み方も考えなきゃ……。


●親がとうとう要介護4認定がでそうな状態になっててさらにしんどい!!
 → 前は要介護3認定だったんですがケアマネージャーさんに見てもらったらこれ要介護4かもって言われました。要するに大変です。
 でも空き時間がないわけじゃないので開催まで残り100日を切ったウディコンはなんとかがんばります!
 介護において「半端に動ける状態の方が恐い」という意味が理解できる段階になってきています。



おまけ ウディタ内でできるセキュリティ対策記事紹介

 K-Shin07さまが、ウディタのゲーム開発者側でできるセキュリティ対策の記事を書かれていたのでご紹介です!

【ウディタでのゲーム開発者が行えるセキュリティ対策】
 https://ci-en.net/creator/16060/article/1111345

 「チェックサムによる改ざん検知」「不正なゲーム実行を阻止」など、ゲーム内からでもできる実用的なテクニックが挙げられています!
 特に「チェックサム」は、オンライン要素があるゲームだと通信内容が改ざんされてありえないスコアが送信されたりしちゃうこともたまにあるので、そういった場合の防衛策としても有用です(他に、暗号化についても紹介されてます)


 ということで、今回のセキュリティアップデートはゲームデータのいくらかの防衛力アップには繋がると思いますので、気になってた方はよければぜひご利用ください。

 とはいっても完全な防御ができないのがこのセキュリティ業界。限界はありますのでその点はご了承ください。
 超有名AAA作品のゲームデータだってたぶん素晴らしい暗号技術が使われてるでしょうに、だいたい解凍されちゃってますしね。


 何はともあれ、ウディタ本体もまだもう少し様子見しないといけなさそうなのと、『ウディタ翻訳サポートツール』の方にも今回の修正を取り入れる必要があるので、もうしばらくプログラミングをがんばります!

 一通り片付いたら、1ヶ月ぶりに自分のゲーム開発が再開できます。がんばっていきます!

2件のチップが贈られています

チップを贈るにはユーザー登録が必要です。チップについてはこちら

« 1 2 3 4

月別アーカイブ

限定特典から探す

記事を検索