投稿記事

ウディタの記事 (15)

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件のチップが贈られています

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

SmokingWOLF 2024/03/16 10:04

ウディタにピクチャのZオーダー機能を搭載!(Ver3.300)

 今回はウディタ(WOLF RPGエディター)の新機能紹介! 今回はちょっとした革命ですよ!

 なんとVer3.300でウディタに『ピクチャのZオーダー機能』が搭載されました! コマンドは「エフェクト」コマンド内の「ピクチャエフェクト」内にあります!
 「Zオーダー」というのは画像を表示する上下関係を指定するための順序設定で、数値が大きいほどそのピクチャが前面に表示されるようになります。

 分かる人にはここまでの紹介で十分だと思いますので、必要な方はよければ最新版ウディタをDLしにいってください!

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


◆ウディタ新機能 Zオーダーの具体例

 そんなわけで今回はピクチャの「Zオーダー」の使い方の具体例をご紹介します!

 まずは動画でご紹介! 今回の記事はこの動画の内容とちょっとしたオマケを文章で紹介してる感じなので、この動画だけで終わっても十分です!
 https://www.youtube.com/watch?v=YV2TZvAdFtw


Zオーダーのシンプルな使い方

 一番シンプルなZオーダーの例を挙げると以下のようになります。

 ピクチャを表示した直後の「Zオーダー」は全部「0」です。
 あるピクチャのZオーダーを「1」に変えると、Zオーダー「0」の全てのピクチャより上に表示されます。
 逆に「-1」にするとZオーダー「0」の全てのピクチャより背面に表示されるようになります。

 ↓真ん中のウルファールのZオーダーを1にすると、ピクチャ番号で負けてても前面表示に!

 今回のZオーダー機能は「こんな感じでピクチャ表示優先度の変更ができるようになったよー」というだけなんですが、地味な機能でも便利な利用法がいろいろあります! 

 

Zオーダーを使えば見下ろし型のゲームでキャラ全員をピクチャで出しても自然な前後関係が簡単に実現可能!

 以下の左の画像は、ピクチャ番号0~77にそれぞれ異なるキャラクターのピクチャを78枚ほど出した画面です! 上下関係はピクチャ番号順なのでピクチャ77番のウルファールが一番上に表示されています。
 が、それら各ピクチャの「Zオーダー」として「そのピクチャの画面Y座標」をセットするだけで、右の画像みたいにこんな自然な前後関係が表現できます! 後ろにあるほど背面表示!
(Zオーダーが大きいほど前面に表示されるので、単純に画面Y座標を入れるだけで簡単にこうすることができます)
  ↓

 これまでは、こういったことをやるのにVer3で実装された「ピクチャのID移動」を毎フレームいっぱい使わないといけなかったため「処理負荷」も「作成の手間」も大きくなっていましたが、今後はZオーダーでラクに作れるようになります!
(なおウディタVer2台まで戻ると、あまりにめんどくさすぎてこういうのをやれる人はごく一部だったでしょう。それで3D演出を作ってた方には頭が下がります!)


Zオーダーを使えば選んだカードを最前面に出すのも簡単!

 そして利用法2つめ!
 Zオーダーについて理解できた人ならもはや言うまでもないでしょうけれど、以下の画面のように、重なってるカードのうち「選択したカード」だけ最前面に表示することも簡単に実現できます!
 

 これは私の開発中の『片道勇者2』の映像ですが、元は「ピクチャのコピー」処理で最前面表示を実現していました。ただ、コピーだと別IDのピクチャができちゃってそちら専用の処理を作らなきゃいけなくて処理の統一性を維持しにくかったのです。
 新バージョンからは、こういうところでZオーダーを有効に利用して処理を簡単化できています!

 今後も新しいゲームを作ることがあったらもっといっぱい有効利用していきたいですね!


Zオーダーの裏話!

 さて、ここからはZオーダー実装に関しての裏話です!


●負荷の話 Zオーダー使用時の重さはどうなる?
 負荷の話ですが、Zオーダーを使うと以下の2点で処理負荷が増加します。

●1.「Zオーダーの変更」をした、あるいは「Zオーダー使用時にピクチャが増減した」フレームの終わりのみ、「Zオーダーによるピクチャの表示優先度の再計算」が行われて「イベント処理時間」が一瞬増える。
 
●2.Zオーダー使用時はピクチャ表示の処理が従来のものと違う処理に切り替わるので以後の常時「描画時間」もちょっと増える。

 → といっても、私の環境ではピクチャを2000枚くらい出してZオーダーを設定しても描画時間が常時【0.2~0.3ms】増えるくらいでしたので、PC上ではそこまで負担にはならないと思います(合計描画時間が16ms以上になると処理落ちし始めますが、0.3msかかってもそのうちの2%の負荷なのでさほど問題にならないという意味)

 なお、「ピクチャが増減せずZオーダーもいじられなかったフレーム」には無駄な「表示優先度の再計算」はしていないので、従来と同じく列の前から順にピクチャを出してるだけの「2」の切り替わり後処理も原理的には従来と全く同じ負荷になると思ったんですが、ほんのわずかな造りの違いによってうまく最適化できなかったのか負荷が増えてしまっているようです。こういうのがあるからプログラミング難しい!

 なお、全ピクチャのZオーダーを「0」に戻すと描画処理が旧処理に戻るので、ちょっとだけ「描画時間」を小さくできると思います。



●Zオーダー変更を1フレーム中にいくらやっても負荷はほぼ一緒!
 ピクチャエフェクトの「Zオーダーの変更」を1フレーム中にいくらやっても「Zオーダーによるピクチャの表示優先度の再計算」が行われるのはフレーム終わりに1回だけなので、そういう意味の負荷は「一定」です!

 なので、「ピクチャのID移動・コピー」を使って前後関係を調整していたときのように使用回数の面で遠慮される必要はありません!
 毎フレーム2000枚のピクチャにZオーダーを指定し直してもそれだけならほぼ問題ない負荷みたいなので、バンバン使ってください。


●全体の処理は思ったより軽くできました!&旧ゲームには影響がないようにしました
 Zオーダーの処理負荷の軽減はいろいろがんばりまして、「ピクチャのIDコピー/移動」しまくるよりもかなり少ない処理負荷で実装できました! 
 ピクチャ全てのZオーダーを毎フレーム変え続けても、「ピクチャのコピー・移動」しまくって表示の前後関係を整理するのに比べて半分以下の負荷になるんじゃないでしょうか(3D演出をされている方の一意見だと、93%の処理数削減と約8割の処理時間削減に成功してたっぽいコメントもいただきました)

 ですが、それでもさっき言った通り私が把握してない負荷も増えてしまっているので、ゲームエンジン作りって大変だなと思います。こんな風に色んな機能を足していったら、なぜかだんだんと重くなっていくんですよ!

 それもあって、今回は「Zオーダーを一切使わない場合」はそのまま以前の軽い描画処理を使うような切り替え処理にしてあります。
 少しでも軽くしたい人は最初からピクチャ番号をうまくセットして、Zオーダーを一切使わないようにすれば負荷も以前通りです!
 というよりは、『旧ゲームは最新のGame.exeを使っても新機能による負荷増大の影響を受けないのでご安心を!』といったほうが適切かもしれません。
 今回の新機能はほぼ無視できるほどの負荷とは言え、新機能を使わない人まで追加の負荷増大に巻き込むのはかわいそうですしね!

 新機能を搭載する際は、構造的に実現できないケースは除いて、機能を使わない人にはなるべく負荷が上がらないようにする工夫も可能な限り考えていきたいと思います。
 ビジネスノートパソコンでもバリバリ動く軽量さがウディタ3の魅力なので!


 ということで以上、Zオーダーについてのお話でした!

 「ザツにピクチャIDを使って最後にZオーダーで表示順を変える」みたいな扱い方もできますので、自作システムを作っておられる方の助けになればと思います!
 「Zオーダーの変更」処理、使える人はぜひご利用ください!
 

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

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

SmokingWOLF 2024/01/20 10:08

フリーゲーム話×2 +『片道勇者』SteamDeck対応! (フリゲ2023+自作ゲームマガジン)

 介護が最近ますます大変になってきて腰のダメージが回復するどころかずっと増え続けているウルフです。
 ここ最近はSteam版『片道勇者(プラス)』のSteam Deck対応をがんばったのと、ウディタの修正を行っていました。サポート業務ばっかりでメインの開発が進んでないので心が重い!

 今回は「フリーゲーム話」を2つと「Steamのお話」を2つお送りします!


●最後の『フリゲ2023』 コメントありがとうございます!

 『フリゲ2023 (The Final) あなたのベストフリーゲーム』という、フリーゲームへのコメントを募るイベントがありまして、私の作品にも多くのコメントをいただきました!
 といいますかリストの作品数がとんでもない! 世界にはこんなにフリーゲームがあふれているんだ! と驚かされます! ウディコン作品もいっぱい載ってましたね!

◆フリゲ2023ページ https://furige.herokuapp.com/2023/

 私のゲームにいただいたコメント集へのリンクは、見つけられた分で以下の通りでした。
 私からのコメントも各作品に送らせていただきましたので、ここでもご紹介!


●シルフェイド見聞録 https://furige.herokuapp.com/2023/comment/11119
 私のコメント:まだ覚えてくださっている方がたくさんいらっしゃって作者として感激です! 『シルフェイド見聞録』は私にとってほぼ原点の作品でありながら、当時の未熟さゆえに完結させられていないままの作品です。私の生きているうちにリブートしたいなという気持ちは本当にありますので、期待度は低めで、気長にお待ちいただけますと幸いです!
 → リブートするなら思い出補正を乗り越える必要があるので、その壁を乗り越えられると見込めるようになった頃がプロジェクトの再開タイミングになると思います! 修行あるのみ!


●シルフェイド幻想譚 https://furige.herokuapp.com/2023/comment/10600
 私のコメント:たくさんの思い出のコメント、本当に感謝の限りです! 『シルフェイド幻想譚』は自分の思っていた以上に、みなさまの中に色んな楽しみや思い出を生み出せていたことをコメントから気付かされました。こういった作風のRPG、生きてる間にもう一本くらい作ってみたいですね。
 → これも割と直感寄りで作った1本だったので、面白さを分析、再構築できるようにして、もう一本くらいはこういうRPGを狙って作ってみたいです!


●モノリスフィア https://furige.herokuapp.com/2023/comment/10650
 私のコメント:たくさんのコメントありがとうございます! マウスアクションという新しい挑戦をした一作なのですが、まだ覚えていてくださる方がいらっしゃって、本当に作ってよかったです! まだ遊んでおられない方には、今でも新鮮さを感じることができる一本かもしれませんので、普通のアクションゲームに飽きた人にはよければぜひ!
 → これは今リメイクしてSteamとかで出してもいけるのでは? とちょっと思っています。でも腱鞘炎になる人が増えそうなのが……。


●シルフドラグーンゼロ https://furige.herokuapp.com/2023/comment/11345
 私のコメント:まさかこのゲームにもコメントをいただけるなんて! ありがとうございます! 変なやりこみプレイに対してもクリア後のコメントがあるとちょっとうれしいですよね。
 → 変なプレイにも反応があるとうれしいですよね! 今後もチャンスがあったら入れていきたいです。


●片道勇者 https://furige.herokuapp.com/2023/comment/10843
 私のコメント:『闇』(様々な時間制限)に追われながらも、その範囲でやれることを何とかこなしつつ、持てるものを選びながら進んでいく……それは人生も同じだと思います。とても長い時間遊んでくださったというコメントがたくさんあって、作者として感謝の限りです! 遊んでくださった皆さま、本当にありがとうございます! 2023年12月時点ではまだ開発中ですが、有料作品の『片道勇者2』もいずれリリースされていると思いますので、もし興味がおありでしたらそちらもぜひ! ゼヌーラ!
 → とても長い時間遊んだ、というコメントが特に目立つ一作でした。うれしい! 『片道勇者2』も全力を尽くします!


●プラネットハウル https://furige.herokuapp.com/2023/comment/11261
 私のコメント:コメントありがとうございます! こんな突き放したコンセプトのゲーム、楽しんでもらえるかなあ? と心配でしたが、変な操作ばかりでもしっかり最後まで遊んでくださって、なおかつ、まだ覚えていてくださる方がいらっしゃったことが非常にうれしいです! PERYKARN氏によるアツいSFストーリーも必見! でも私はケモナーというほどケモノ好きじゃないつもりなんですよ! 本当なんです信じて!
 → 動物とケモ耳キャラがもっと上位に来てるところから派生して獣人キャラも好きなだけでケモノ好き度合いはほどほどなんですよ信じて!


【ありがとうフリゲ20XX!】
 『フリゲ20XX』は、毎年のフリーゲームを知るにあたってすばらしい場でしたし、私のゲームも評価してもらえるときがあって、とても思い出深いイベントでした。
 フリーゲームって、注目している場が違ったり、オススメしてくれる人がいないと面白い作品が出てても全然気付けないので、こういう投票の場で知ることができるのはとても貴重だったように思います。
 また、ウディコン作品も上位で紹介してもらえることがあって、そういった面でも助けになっていてありがたかったです! 

 色んな作品にコメントを投稿してくださった皆さま、ならびにこれまで長いことフリゲ20XXを開催してくださった運営の皆さま、これまで本当にありがとうございました!
 「面白い」と言ってもらえるゲームを今後も作りたいなあ、という気持ちを思い出させてもらえました。いただいたコメントを胸に、これからも前進していきたいと思います!


●自作ゲームマガジン発売!

 続いてはこちらもフリーゲームの話題!
 今の3分ゲーコンテストの主催の方より、『自作ゲームマガジン』という自作ゲームの雑誌が作られました!

※コラム寄稿しただけなのに私の名前が大きく載ってて恥ずかしい!

 私もこの活動を応援したかったので、自作ゲーム開発を始める人に向けて、私の最初の挫折と、ゲーム開発の第一歩の思い出のお話をコラムとして寄稿させていただきました。どこかでお話をした内容の「完全版」みたいな内容なので、私の本などを読まれた方は部分的にご存じの内容です。

 電子版なら500円と非常にお安いので、フリーゲームの話題が気になる方はよければぜひ! 取り上げるべきフリーゲームの話題や色んなコラム、ツクール開発者向けの情報などが載っています。

 【自作ゲームマガジン紹介ページへ】

 「フリーゲームは伝統工芸的ポジションになってるのかも」みたいな話は皆さまとのお話の中にも出ましたが、こういう歴史と繋ぐまとめ情報媒体はコンパクトサイズであっても「続くこと」を期待したいものだと思ってしまいます。
 わがままな希望ではありますが、1年に1回でもこういうのが続いてくれるとうれしいですね!



【ウディコンを本に残すことも考えてみる?】

 そういえば「歴史に残す」と言えば、私がいなくなっちゃうとウディコンのサイトもなくなっちゃってウディコンがあった証拠が消滅しちゃうので、いずれ記念として、作品紹介やコメントなどをちょっとした「書籍」の形で残してみたりするのもいいのかとぼんやり考えています。

 もはや今となっては、サーバーにデータを置いてあるよりも、ショップさんに本のデータを置いてもらう方が情報として長生きさせることができそうな気がします。
 私のやることがなくなったら、そういう記念本もちょっと考えてみたいですね。


●SteamでAI生成画像などが利用可能に!?

 私の記事を継続して読んでくださっている方向けに、いちおうのご連絡です!

 以前、「Steamでは、画像生成AIで作られた画像が、買った素材集にこっそり混ざってるだけでゲームがリジェクト(拒否)されるから恐い!」みたいなことを申しましたが、先日Steamのルールが変わり、AI生成物も使用できるようになりました。

https://store.steampowered.com/news/group/4145017/view/3862463747997849618

 この発表の大事な点をおおまかに整理すると、以下のようになると思います。


●ゲーム提出時にAIに関するアンケートが求められ、開発者はゲームの開発および実行においてどのようにAIが使用されているかの説明が要求される(アート/コード/サウンド)。
 
●AI使用は「事前生成」と「ライブ生成」のそれぞれでカテゴリー分けされる。「事前生成」は普通のゲーム通りに審査される。「ライブ生成」だと、変な内容が出ないようにどう対策を講じているのかまで書く必要あり。
 
●これらの内容は今後も再検討される可能性あり。


 という雰囲気!
 「素材にAI素材がこっそり混じってたりしないかあ」とビクビクしなくてよくなったのは朗報です!

 が、AI生成画像などをガッツリ使うかと言われれば、まだまだ権利的な話題において風当たりが強いので、今のところはほとんどの画像生成AIは使いにくいままだなあと思っています。

 CC0や許諾ありのオプトイン素材だけで学習されている「きれいなモデル」なら権利的に問題なくなるので、そういうのがあれば、それに自分の絵を学習させたりして遠慮なく使えて最高なんですけどね! そういうのも徐々に出始めているみたいなので、今後に期待しています。




●Steamの片道勇者、Steam Deckに対応!

 Steamの『片道勇者』が『Steam Deck』という携帯ゲーム機に対応しました!

↓Steam Deck開発機! ちなみに左上のは整形外科でもらったロキソニン(痛み止め)テープ

 つい最近、Steam片道勇者の起動ランチャーをなくしたおかげか、「Steamさんちの審査でDeck上で『プレイ可能』になったけどどうするー?」とご連絡をいただいたので、慌ててDeck対応の作業をしていました。

 このSteam DeckはSteamのゲームを遊べる携帯ゲーム機です。Windowsのゲームがある程度動くエミュレーター環境で動作しているようで、Deck対応に向けて私もそこそこ『片道勇者』の修正作業が必要でした。
 ウディタユーザーの方でSteam狙いの方向けに、Steam Deck対応にあたって問題が起きたポイントを残しておきます。


フォントの問題:「Arial」と「MS Gothic」は入ってたが「Arial Black」は入ってなかった。
 → この2つは「名前だけ同じ似たフォント」かもしれません。ほんのちょっとだけ横幅が違う程度の差がありました。
 → 【×】ウディタのサンプルゲームでも指定している「Arial Black」はSteam Deckには入っておらず、代替フォントを入れる必要がありました。Windowsフォントも全部入っているわけではなさそうです。
 → 【×】また、「MS ゴシック」と日本語で指定したフォント名はSteam Deckでは読み込めないようでした。「MS Gothic」ならOK!


サウンド問題:MIDI音源は再生できない。
 → Steam DeckではMIDI形式以外の音源を用意する必要がありました。


ボタン表記の問題:ボタン表記は、ABYXLRボタン表記にしたほうがDeck対応評価が高くなる。
 → たとえばキーボード用のまま「Zキー:決定」になっているとか、Deckボタンのどれか分からないボタン表記「①:決定」などのままだと評価が下がるようです。
 また、「F4:画面サイズ変更」といった、Deck上では操作がめんどいキーボード用キー表記が残ってても評価が下がります。こういう画面サイズ変更機能などは、できればオプション内に入れちゃった方がいいでしょうね。
 キー対応自体はXBOXとほぼ同じでした(ボタン名がLBがL1、LTがL2になるくらいの差はあり)


 といった感じの課題が発生していました。

 結局、Steam Deck対応状況を「最高評価」にするにはすぐ対応できない課題が多すぎたので、黄色の「いちおうプレイ可能」扱いのままでの公開となっています。
 プレイ体験的には大きな問題はないと思いますので、Steam Deckをお持ちの方で「『片道勇者(プラス)』を寝転びながら遊びたい!」という方はよければぜひどうぞ。

 Steam版『片道勇者』ストアページへ


 という感じで変わらずサポートで忙しい時間が多めですが、何でもやれる限り全力で進めています!

 そして自由な時間ができ次第、どんどん『片道勇者2』を進めたい!
 まもなくシレン6も出ますから、片付けておかねばならないことはしっかりやっておきたいですね! 
 やりたいこともいっぱいです! うおおお!

  • アイコン
    徳之助 ID01164686
    介護と開発、大変だと思いますが応援してます。
  • アイコン
    くろめー ID00751627
    おやつ代

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

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

« 1 2 3

月別アーカイブ

限定特典から探す

記事を検索