シルバーセカンド開発日誌
 ここはゲーム開発者SmokingWOLF(スモーキングウルフ)の開発日誌です。
 【現在の目標】→ 『片道勇者2』の開発!
ウディタ 4/16

2024-08-17 (土)   ウディタ作品ブラウザ化&Androidスマホアプリ化!
この一週間でウディタ作品のブラウザ化やスマホアプリ化について
急激に話が進みましたのでご報告です!

なおブラウザウディタはruka様のプロジェクトです!
私は横から見てるだけで、技術的にどうやっているのかなどについてはよく分かっていません。





【ウディタ作品のブラウザ化、実現!】

2024年8月10日、ruka様がウディタのブラウザ化プロトタイプを公開されました!

【ブラウザウディタ:プロトタイプ版を公開】
https://ci-en.net/creator/12702/article/1207619

なんとこちらで公開されているファイルをサーバーに
アップするだけでブラウザゲームとして動作! すごい簡単!

ちなみに「ブラウザ化で何できるの?」って話ですが、
単純に【ダウンロードしなくてもすぐゲームが遊べる】ようになります!
フリーゲームをDLして遊ぶのって地味にハードル高いですからこれは一つ大きな利点!
さらに大きいのが、【スマホ上】でもブラウザを開いてウディタ作品が遊べるようになります!

たとえば、私の持ってるスマホ「Pixel 6a」で『片道勇者(無印版)』が動くのを確認済みです!
気になる点といっても「インターネット接続機能が使えない」、
「ごく一部の挙動がPC版と違う気がする」くらいで、
「他は全部Windows版通りに動作」し
「普通に安定して60fps(100%の動作速度)」が出ました!
安定性だけでなくてパフォーマンスもすでにかなり高い完成度!

もちろんまだまだ動作しない部分や、こうなって欲しいなあ~という部分なども
あると思いますが、プロトタイプでこのポテンシャルなら十分すぎると思います!



【ブラウザ化の簡単な注意点】

『ブラウザウディタ』の使い方自体は上の記事から
ダウンロードできるZipファイルにも書いてありますが、
ウディタ本体開発者から見た利用時の注意点は以下の4点!


●プロトタイプのZipに入ってるpublicフォルダをそのままサーバーにアップするだけでとりあえず同梱のサンプルゲームが動きます!
 → それが大変な人は、K-Shin07様の「Wodistant」というツールを使えば、サーバーにアップしなくてもブラウザ版のテストが可能です!


●「Data.wolf」を自前で用意したものに上書きすれば自分のゲームが動きます!
 → ただしゲームデータの「BasicData」フォルダ内に、ブラウザウディタに入ってる「BrowserWoditor.dat」を入れてから暗号化する必要がありますので、そこはご注意を。


●ブラウザウディタのpublicフォルダには作品名などを設定するテキストファイル「settings.js」も用意されているので、できればそれもいじっておくといいと思います。そこで設定されているゲーム名はセーブデータの認識用に使われてるそうです。


●私とサポートしてる人が違うので、色んなご都合でサポートが止まる可能性があります。
利害が一致しそうな人はよければ少しでも活動続けられるようにruka様にチップあげてくださるとみんなWin-Winだと思います!! 私も少しですが入れさせていただきました!




さらにAndroidスマホアプリ化もできた!

この『ブラウザウディタ』、「.wasm」というファイル形式のエンジンやJavaScriptなどによってHTML上で動いているものなのですが、なんといろいろ変換すればスマホアプリにできます!

私はAndroidスマホ化に成功しましたが、その作業途中でコマンドを変えればiOS用にも変換できるらしいので、たぶんiOS用アプリも作れると思います。
(ただその場合、macを持ってて、かつApp Storeに出すための権利をお金払って持ってないといけない? らしいです)

Android化に成功してスマホ上で撮影した画面 ↓


Androidアプリ化のやり方はちょっと長いですが以下の通り!
コマンドプロンプトとか使うのでちょっと大変ですよ。




ブラウザウディタをAndroidアプリ化する方法!
ざっくりですが『ブラウザウディタ』のデータをAndroidアプリ化する方法メモを掲載しておきます!
まだメモ状態なのでスクリーンショットなどはありませんが、参考にできる人は参考にしてみてください。



【1. Node.jsをインストール】

1-1. Node.jsのあるhttps://nodejs.org/en/download/package-manager
のサイトを開き、「Prebuilt Installer」のタブを開き、インストーラーをダウンロード
(今どきのWindowsなら選択肢は「最初に出てるバージョン」「Windows」「x64」を選んでダウンロードすればいいと思います。万が一32bitのWindowsなら最後は「x86」を選んでください)


1-2.DLしたファイルを実行し、インストールを進める。
途中の「I accept the terms in the Liecense Agreement」はチェックを当然入れる。
全部「Next」。(追加のChocolatey?がどうとか言うのはインストールしなくても動きました)



【2. Ionic CLIをインストールします】
Windowsの「コマンドプロンプト」を開き、以下のコマンドを実行します。
(npmはNode.jsをインストール後に使えるコマンドです)

npm install -g @ionic/cli




【3. Capacitor用のまとめフォルダと作品フォルダを作ります】
Capacitor(スマホアプリ用データを作るソフト)用のまとめフォルダを作ります。ここでは「Cドライブ」の「Capacitor-apps」フォルダを作るとします。
この中に、作品ごとのフォルダが新たに作られます。

Windowsの「コマンドプロンプト」を開いて以下を実行してください(Windowsの検索窓を開いて「cmd」と入れてもでてきます)。

cd C:\
mkdir Capacitor-apps
cd Capacitor-apps
npm init @capacitor/app

※「\」はコマンドプロンプト中で「\」と出るかもしれませんが意味は同じです

ここまで実行すると初回だけ
「Need to install the following packages:
@capacitor/create-app@0.3.0
Ok to proceed? (y)」
と出るのでyを押してEnterする

ここからは作品ごとのフォルダ作成フェイズ。
次に「? What is the name of your app? 」と出たらゲーム名を入れる。
何か入れないといけないみたいなのでここでは「SampleGame」と入れたことにします。

「? What directory should be used for your app?」は作成するフォルダ名を指定。
ここでは何も入れずにただ「Enter」して「my-app」フォルダを作った前提で進めていきます。

「 ? What should be the App ID for your app?」でAppID入れるらしいですけど知らないので何も入れずに「com.example.app」のままEnterして進めたとします。

これで準備完了! 「Capacitor-apps」フォルダの中に「my-app」フォルダが作られ、その中に色々ファイルが作られています!
これらの質問で打ち込んだ内容は「my-app」フォルダ内の「capacitor.config.json」ファイルに書かれているので、後の手順でまた修正します。




【4.Capacitorフォルダの中にAndroid用のプロジェクトを作成】

コマンドプロンプトで以下を実行し、Androidプロジェクト作成処理をします。
【さっき作った「my-app」フォルダ内に移動】してから色々インストールしてるのが分かりますね。

cd c:\Capacitor-apps\my-app\
npm install @capacitor/core @capacitor/cli
npm install @capacitor/android
npx cap add android


※初回だけ「? Share anonymous usage data? » (Y/n)」と出るかもしれないのでその場合は「Y」か「n」を入力。
(「匿名で利用データを送るか?」 なのでイヤな人は「n」でいいです)



【5.wwwフォルダを作ってブラウザウディタのファイルを入れる】

5-1.
作ったフォルダが「my-app」の場合、その中に以下のファイル構成で「www」フォルダを作り、「ブラウザウディタ用ゲームデータ」のファイルを入れます。

my-app/
├── android/
├── src/
├── node_modules/
├── www/ ← ★このフォルダを新たに作成し、ブラウザウディタの
│ │     「public」フォルダ内の全ファイルを入れます
│ ├──→ index.htmlやwoditor.wasm ← つまりここに入ります
│ └── Data.wolf ←★あなたのゲームのData.wolfを上書き。
│      ※ただしBasicData内に「BrowserWoditor.dat」を入れる必要あり
├── capacitor.config.json
└── package.json など




5-2.「my-app」下の「capacitor.config.json」をむりやりメモ帳などで開いて(メモ帳にドラッグ&ドロップでできます)、必要ならちょっと書き換えます。
このファイルには、「スマホアプリ化されるときのアプリ情報」や「(my-appフォルダ内の)どのフォルダをスマホアプリ化するか」が記載されています。

{
"appId": "com.example.app", ←動かすだけならこのままで可
"appName": "SampleGame", ←ここがスマホ内でアプリアイコンの下に表示されるゲーム名
"webDir": "www", ←★ブラウザウディタの入ってるフォルダ、"dist"などになってたら"www"に書き換えてください!!
"plugins": {
"SplashScreen": {
"launchShowDuration": 0
}
}
}


※"webDir"が"dist"のままだと、後にapkを作ってもCapacitorの紹介画面しか出てこなかったりしますので注意して下さい。1回やらかしました。

※5-1で作ったゲームデータ用フォルダ、「www」フォルダでなく最初から「dist」フォルダを作っておいたらよくない? って感じはしますが、いちおうこのjsonファイル内で指定してるんだよってのを示すために「www」にしました。それに将来の初期フォルダが「dist」フォルダじゃなくなるかもしれない。

※appIdとappNameはアプリの識別に使ってるようです。たとえばスマホにapkを再インストールしたとき、この2つが前と同じだとアプリを上書きするか聞いてくれます。






【6.Android Studioをインストール(ここは1回やれば以後やる必要なし)】

6-1.
https://developer.android.com/studio?hl=ja
で「Android Studio Koalaをダウンロード」をクリック(2024/08/11時点)
1.2GBくらいあります。DLしたらインストールしてください。
→ インストール時は全部「Next」とか「Finish」でいいです。

→ インストール後に英語でなんか出てきますが「前のデータ読み込むか」とか「匿名のデータ送信」なので「Do not import settings(設定をインポートしない)」とか「Send usage satistics to Google(Googleに送る)」とか選んでおけばいいと思います。


6-2.
Android Studioを起動、インストールするとセットアップウィザードが始まる。
選択肢は「Standard」でいいと思います。その後「Next」。
「License Agreement」画面まで来たら「Accept」を選んで、最後は「Finish」。

なお「Starting Downloading...」 から全然進まないように見えますがちゃんと進んでたので信じて待つこと。
なんか質問が出たり管理者モード質問でたらとにかく「Yes」とか「はい」をしていきます。。
終わったら「Finish」。



【7. Android Studioを起動してビルド】

7-1. 以下のコマンドをコマンドプロンプトで実行します(フォルダ名はあなたの作ったものに合わせて変更してください)
この手順は「www」フォルダ内のData.wolfを最新にするたびに実行が必要です。

cd C:\Capacitor-apps\my-app\
npx cap sync android



7.2.Android Studioを起動して「Open」を選び、「C:\Capacitor-apps\my-app\android\」を選択します。

※「android」フォルダ側を選ぶのが重要です!
 →「settings.gradle(.kts)」ファイルが存在するフォルダを開かないとビルドできません。
  まちがえて「my-app」の方のフォルダを開いて何もできなかったことがありました。


→ 選んだ後、途中で「Trust and Open Project 'my-app'?」と出てきた場合は「Trust Project」を選択

→ プロジェクトが開いたら左上の「三」メニューから
 「Build」→「Build App Bundles(s) / APK(s)」→「Build APK(s)」を選択

→ 初回だけ終わるまですごい時間かかる気がしますので待ちましょう。2回目からは数秒で終わります。
  もし途中でなにかが足りないってでてきたら適宜インストールやらアップデートしてください。



7.3.処理が終わったら
C:\Capacitor-apps\my-app\android\app\build\outputs\apk\debug
あたりにdebug用のAPKファイルが出力されています。


7.4. そのapkファイルをなんとかしてAndroidスマホで読ませてインストールすると、スマホ上で実行できます。
その辺りの手順は紹介しないので、調べてがんばってみてください。私は「Google Drive」にアップしたapkファイルをスマホでダウンロードしています。

※なお、スマホ側の設定で「野良APKを許可する」的な設定をオンにする必要がある場合があります。
私だとGoogle Drive上でapkファイルをクリックすると「不明なアプリのインストール」みたいな画面が出てくるので「許可する」を選ぶ、という手順が必要でした。



※今回作ったapkファイルはdebug(デバッグ)版です。アプリストアに公開するなら他にも色々設定してrelease(リリース)版を作れるところまでがんばらないといけないそうですが、今回は調べてません。




【8. 今後、新しいData.wolfを作った場合は?】

もし後でData.wolfを新しくした場合は、以下の手順だけを行えばOKです!

8-1.「www」フォルダ内に新しいData.wolfを上書き

8-2.「コマンドプロンプト」で以下を実行する

cd C:\Capacitor-apps\my-app\
npx cap sync android


8-3. Android Studioで「Build」→「Build App Bundles(s) / APK(s)」→「Build APK(s)」を選択



以上です!
もしかしたらインストールしたてのWindowsパソコンでやると
他にインストールが必要なファイルなども出てくるかもしれませんが、
私のパソコンだとこの手順でなんとかなりました。

もし自分のゲームをAndroidスマホアプリとして
動かしてみたいという人がいらっしゃいましたらぜひお試しください。

(ちなみに今回の作業4(Android用のプロジェクトを作成)あたりからアレンジすればiOS用の基礎ファイルもそのまま作れるらしいです、Capacitorすごい。
ただしiOSのスマホアプリ用データ作成には、macOS上でのみ起動できる「Xcode」というソフトや、年100ドル(約1.5万円)かかるApple Developer Programへの登録などが必要だそうです)




ということで、夢が広がるブラウザ化がとても良い感じに進んでいます!

そして第16回ウディコンの審査期間ももうすぐ終了!
一般審査締め切りは8/20の23:59、結果発表は8/24(土)あたりにおこなう予定です!

もしブラウザ版もバッチリ使えるのでしたら、
次回ウディコンでは作品一覧に「ブラウザ版」へのリンクも
掲載していいかもしれません。
そしたらスマホからでもウディコン作品が遊べちゃいますよ!
今のところ問題の方が多そうなので実現できるかは分かりませんが!
 (仮によそのサイトにアップするにしてもそこのトップページからの流入が
 あると不公平になったりするので悩ましいとか、
 自前サーバーにアップしても通信帯域がすぐオーバーしちゃうとか)

それでもみなさまのすばらしいゲームの数々がいろんな人に
遊んでもらえるチャンスが増えるに越したことはないので、
やれそうな範囲でめざしていきたいですね!
 2024-08-17 (土) web拍手 by FC2 カテゴリ: ウディタ




2024-08-03 (土)   ウディタ作品を合成音声読み上げさせる方法!

※実は13年前までウディタに「合成音声」コマンドがありました。規約が変わってからは使えなくなりました

ただいまウディコンシーズンなのと、
私が今もウディタの修正作業中で新ネタがないので、
今回はウディタの裏技を1つご紹介!

なんと、新しめのウディタについてる機能を駆使すれば、
ウディタ製ゲーム内の文章を合成音声などで読み上げさせる
ことができます!

しかもどんな作品に対しても
プレイヤー側でそれを実現できるのです!

詳しい話は以下の動画にまとめているので、
お時間ある方はこちらを見ていただくといいと思いますが、
文章でサラッと確認したい人向けにこの記事でも説明を書いておきます。




◆ウディタ製ゲームを読み上げさせる方法!

以下はウディタ製ゲームの読み上げを実現するまでの手順です!



1. ゲームのバージョンを確認

まず、ウディタ製ゲームのGame.exeのバージョンが
3.105以上であることを確認してください。
 これを確認する方法は、ゲームフォルダ内の「Game.exeファイルの上にマウスカーソルを乗せて1秒じっとする」か、
「Game.exeのプロパティを開き、バージョン情報をチェックする」のどちらかです。




2. Game.iniを書き換える

次に、ゲームの設定ファイル(Game.ini)を編集します。
もしGame.iniがなかったら、「一瞬だけGame.exeを起動して閉じる」または
「Config.exeを開いてすぐ【OK】をクリックして閉じる」ことでGame.iniが作られます


Game.iniをメモ帳などで開いて、下のほうにある
MainText_to_ClipBoard」と「SelectedText_to_ClipBoard_F2」の
行の「=0」部分を「=1」に変更してください。
変更後は以下の通りになります。

MainText_to_ClipBoard=1
SelectedText_to_ClipBoard_F2=1


こうしておくと、ゲーム中の文章がクリップボードにコピーされるようになります。

MainText_to_ClipBoard
これが1なら、「文章の表示」コマンドが実行されるたびに
その文章がクリップボードにコピーされます。

SelectedText_to_ClipBoard_F2
これが1なら、「選択肢」コマンド中にF2を押すと選んでいる選択肢がクリップボードに
コピーされます。また、マウスカーソルで「文字列ピクチャ」を選んで
F2を押すとその内容がクリップボードにコピーされます。




3. 「棒読みちゃん」の設定

外部ツール「棒読みちゃん」を使用して、クリップボードのテキストを読み上げさせます。
以下の手順で設定します。

1.「棒読みちゃん」をダウンロードしてインストールします。

2.「棒読みちゃん」を起動し、初回確認では「クリップボードの監視」の使用を
「はい」(それ以外は「いいえ」)にした後、
メイン画面の「クリップボード監視」アイコンを有効にします、
色付き状態ならオンです↓

こうするとクリップボードにコピーされたテキストが自動的に読み上げられるようになります。

 ※もし「クリップボード監視」アイコンが出てなかった場合は「棒読みちゃん」の
「その他」タブを開いて「クリップボード監視」にチェックを入れてください。




4. ゲームの実行とF2キー活用

設定が完了したら、ゲームを起動します。
ゲーム内で表示される「文章の表示」によるテキストが
自動でクリップボードにコピーされ、「棒読みちゃん」が
それを読み上げてくれるようになります。

他のはF2キーを押すと読めます。
以下を参考にしてください。


●A.「文章の表示」→自動
中央下に表示される文章はたいていウディタの「文章の表示」コマンドに
よるもので、これらは「自動で」読み上げられます。
(でもゲームの造りによっては読まれないときもあります。
その場合は以下「C」を試してください)


●B.「選択肢」→ 上下キーで選んでF2キー
「選択肢が出ているときにF2キー」を押すと、選んでいる選択肢が
読み上げされることがあります。
(基本システムの戦闘中やメニューの選択肢などは読まれないことがあります。
その場合は以下「C」を試してください)


●C.「それ以外の文字(文字列ピクチャ)」→マウスカーソルで選んでF2キー
上記以外の文字に関しては、「マウスカーソルを文字の上に乗せてF2」を押すと、
たいていその文字が読み上げられます。
(ただし、その文字が「画像」上のものだった場合は読めません。
あくまでゲーム内機能で表示されてる文章が読める、という感じですね)

→ なおこのマウスカーソル+F2キー、
AとBの「文章の表示」「選択肢」の文字を選んでも
読み上げられなくて、ちょっと不便なところがありました。

Ver3.371以降のGame.exeでは「文章の表示」「選択肢」などの内容も
マウスカーソルで選んでF2で読み上げてくれるようになる予定なので、
より直感的に操作できると思います。




5. 「棒読みちゃん」のおすすめ設定

「棒読みちゃん」に以下の設定をしておくことで配信プレイがちょっと快適になります!

※動画アップ後、コメント欄でアイデアをいただいたのですが、
ゲームだと「文章を飛ばしたときに長文の読み上げを
途中で切ってくれる方がいい」ので、以下の3つのうち
「A」はやらずに、「B」と「A、B、どちらでもやっておくとよい設定」の
2つをしておくのがおすすめです!


【A:動画で言っていた設定】(これを飛ばして下記「B」をする方がおすすめです)

●「音声合成」タブ→「設定」→「システム>基本」にある
03)改行があっても繋げて読み上げる」を「True」にする。

 → 改行があっても一息で読んでくれるのでテンポがよくなりますが、
まとまった複数行の文章を全て読み上げるまで終わらない問題がおきます。




【B:ゲームプレイ上もっとおすすめだったもの】

●「音声合成」タブ→「設定」→「システム>基本」→
 「03)改行があっても繋げて読み上げる」は「False」のままにしておく
 
●「音声合成」タブ→「設定」→「02)行間の待機時間」を
0」にしておく(元は100です)

●「その他」タブ→「クリップボード監視」をクリック→
下の「プラグインの設定画面」ボタンを押す→
03)現在のリストをクリアする」を「True」にする

 → この設定なら、読み上げている最中に決定キーで次の文章に行った場合、
いま読み上げている行が終わったタイミングで読むのを切り上げて
次の文章を読み始めてくれるので、より柔軟です。
行間で止まる時間も最小限になります。




【A、B、どちらの場合でもやっておくと良い設定】

●「その他」タブ→「クリップボード監視」をクリック→
下の「プラグインの設定画面」ボタンを押す→
01)同一内容の場合は読み上げない」を「False」にする

 → 元の設定だと同じ文章が出てきた場合は読み上げてくれませんが、
この設定を行うことで同じ文でも何度も繰り返し読んでくれます。




と、こんな感じです!

ところにより読み上げできない可能性はあるものの、
大部分は自動で読まれたり、そうでなくともF2を押して読めたりします!

「文章の表示」を全然使ってないガチ自作システムゲームだと
メッセージが出るたびにマウスカーソルで選んでF2連打しないと
いけなかったりしますけれども、普通の基本システムのRPGなら
おそらくほとんどの文章が自動で読み上げされるでしょう。


一手ずつの詳しい手順や設定方法については、
動画のほうでもご確認いただけますので、
興味のある方はぜひご覧ください。

全文章を人力で読み上げていると疲れちゃいますが、
そういう場合もこういう機能を活用することで、
より高速読み上げ可能に&疲れにくくなるかもしれません!

導入できそうな方はよければぜひ、ご利用ください!
 2024-08-03 (土) web拍手 by FC2 カテゴリ: ウディタ




2024-07-21 (日)   第16回ウディコン、審査開始です!

【第16回ウディコン、審査開始!】

ということで第16回ウディコンのエントリー期間が終了し、本日から審査期間開始です!

【(第16回)ウディコン公式ページへ】


今回エントリーされた作品数は全部で【71】作品!

エントリー作業中、一通り全作品の動作確認をさせていただきましたが、
第16回はアニメーションへのこだわりがすごい作品が多かった印象がありますね!
エントリーチェック中はそういうのを見るたびに
「アニメーションすげぇ!!」と叫んでいました。

もしかしたら去年のウディコン作品や何らかの流行りなども
こういった傾向に影響を与えているかもしれません。
それとなく歴史の積み重ねが作品に
見え隠れしていそうなのも見どころの一つだと思います。

もちろん演出だけでなく、ゲーム内容が面白いゲームもたくさん!
琴線にふれる紹介文や見た目のゲームがあったら、ぜひ触れてみてください!



【審査について】

復習ですが、ウディコンの順位付けは
一般の皆さまからの審査のみによって決まります!

ゲームごとに
「熱中度」「斬新さ」「物語性」「画像/音声」「遊びやすさ」「その他」
で得点を付け、平均点や総計点や中央値などから
ランキング用の総ポイントが算出されるわけですね!
平均点の順位ポイントが一番強いです。

審査は途中まで書いた分を保存して、
途中から再開することもできます
ので、
まずは1作品からお気軽に得点を付けたり、
感じたことをコメント欄に書いてみてください!

そしてまた、「4作品以上」審査すると結果発表用の得点計算に採用されます!
とはいえ1作品でも作者様にはコメントが届くので、
4作品に満たなくても問題ありません。
(※ただし作者様が全コメントを受け取る設定にしてある場合のみ。
9割以上の作者様は受け取りオンにされています)

あなたがそのゲームで感動したり、楽しめたのなら、
次もそのセンスで面白い作品を作ってもらえるよう
応援メッセージを送るだけでもいいと思います。

審査の締め切りは【8/20(火) 23:59】までです!
※普通に作品数から計算したら8/13あたりでしたがお盆に審査できないのは勿体ないので一週間延長しました。結果発表は8/24(土)あたりになると思います。


【(第16回)ウディコン公式ページへ】

それでは皆さま、今年もウディコン作品で熱い夏をお楽しみください!
 2024-07-21 (日) web拍手 by FC2 カテゴリ: ウディタ




2024-07-06 (土)   ドタバタ近況、第16回ウディコン1週間前!
うおおおまだリアル事情が忙しいです!
ウディコンまでにはちょっと落ち着くといいんですが!

今回もいつもの現状報告です!


◆ふたたびドタバタ近況

また故人に関わるイベント密度が上がってきて
リアルがドタバタする日々が続いています。
準確定申告とか四十九日の法要とかで考えることも増えてグワー!
一瞬落ち着いたかと思ったんですがこういうのは忙しさの波がありますね!

創作ができないまま時間が想定以上に早く過ぎていってしまって少し焦ります。
「少しでも創作のことを考えられるだけ普通の生活に戻れつつある」
というのはそうかもしれません!

そしてまたウディコンが近いためか、ここに来て
ウディタのバグもいっぱいご報告されていて修正に費やす日数消費が激しいです!
でも多くの人に使っていただけて嬉しいです、ありがとうございます!

(ただここ数ヶ月のウディタ作業が時給300円を切ってるので
もう少し修正を効率化しないと餓死しそうで厳しい!
ご支援もいつでも受付中です!)


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



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


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

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

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

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

もちろん規約ページもよくご確認ください!
去年は使われる方はあまりいらっしゃらなかった感じですが、
今年は画像生成AIについての規約も追加されています。

うっかり気軽に使ってしまいそうな、「ChatGPT」や「Microsoft Copilot」に
画像を作ってもらってもウディコン内では使えないのでご注意ください!


ということで第16回ウディコンの開始日(作品公開開始日)は【7/14】!
エントリーこっそり受付開始は【7/13夜頃】からです!

今年も皆さまの作品、楽しみにお待ちしております!
 2024-07-06 (土) web拍手 by FC2 カテゴリ: ウディタ




2024-06-08 (土)   ウディタ多言語向け修正+人が亡くなった後の作業+架空の妹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週間ほど!
みなさまの作品、楽しみにお待ちしております!
 2024-06-08 (土) web拍手 by FC2 カテゴリ: ウディタ




2024-05-11 (土)   【ウディタ】セーブデータ軽量化やサブフォルダ読込
リアルがとても大変になりつつある私です。
いちおう『片道勇者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ヶ月ちょっとです!
みなさまの作品、今年も楽しみにお待ちしています!
 2024-05-11 (土) web拍手 by FC2 カテゴリ: ウディタ




2024-04-27 (土)   続ウディタ修正&ツクール配信&片道勇者2再開
ということで今回も引き続きウディタの修正でドタバタしてたり、
生活が大変だったり、気晴らしに
新作RPGツクール(RPG MAKER WITH)の生放送をしたり、
そのすき間に『片道勇者2』の開発をちょっと進めたりする感じの
色々あった二週間でした!

今回起きたイベントを以下に列挙していきます!






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

ウディタの最新版の問題が一通り解決したかなあと思ったら
また新たな難題が発生してしまいました!

というのも、
『プログラムのコードの組み方によっては新しめのCPU専用の命令が
使われるようになってしまい、古いPCでは動かなくなる』

という問題が起きてしまったのです!

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

ということで、それを発見するために何日も使って何かできないかと奮闘しておりました。


 ↑ 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』で止まってた私にはまぶしすぎるツクールでしたね!



出た話題としては、

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

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




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

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

ですがいつものことながらストーリーのネタバレに配慮すると
ストーリー開発中は何も言えなくなって開発日誌のネタがなくなります! 困った!

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



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

ここからしばらくは、ウディタのバグ修正しつつ
第16回ウディコンが始まるまでは
『片道勇者2』開発に集中していきたいです!
ウディコンの準備もがんばります! 今年もお楽しみに!
 2024-04-27 (土) web拍手 by FC2 カテゴリ: ウディタ




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

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

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






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

ウディタに対していろいろセキュリティ上の
基本的な対策を行ってみたのですが、その中でも
プレイヤーの方にダイレクトに影響が出る可能性があるのは
『DLLインジェクション』への対策です。

 『DLLインジェクション』とは簡単にいうと
「本来そのプログラムが使わないDLLを注入して、
強引にプログラムの処理を上書きする」手段で、
応用すれば内部データを抜き取ったりするような悪いことにも使えます。

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


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



※もし↑が出て遊べなかった場合、Gameを「管理者権限で起動」することで
このエラーを回避できるようですので、よければお試しください。
Game.exeの上で右クリック→「管理者として実行」を選べばOKです。

このエラー文そのものにも追記しておきます!
(2024-07-19追記)



なおこの「DLLインジェクション」技法は悪いことに
使われるだけじゃなくて、
「アクティブになってるウィンドウの上にかわいいマスコットキャラを表示する」
みたいなソフトでも昔使われていたと思います。

たとえば
「実行中のソフトのウィンドウ座標処理をDLLで乗っ取り、そこから
座標情報を抜き取って表示する(+ 元の処理はそのまま再現する)」
ことでウィンドウの上にキャラを乗せる処理を実現していたわけですね!

最近はそんな処理をすると厳しめのウィルスソフトに
バチバチに怒られたりする予感がしますので、
2010年すぎからこういったソフトも段々なくなってしまった印象があります。

「ウィンドウを追随してくれるようなデスクトップマスコット系アプリが
なんで全然増えなくなったの!?」と私が思い始めた時期がその辺りでした。

(たとえば私が使っていた『ClockLauncher』というフリーソフトの2009年版では
アクティブウィンドウのそばにランチャーが自動的に移動する機能があり、
普通にそこでDLLインジェクションが使われていたためかソフト起動中は
最新Game.exeを実行できなくなりました(上の画像)。
それゆえか、『ClockLauncher』の特定のバージョンからは
その機能がなくなっています。
このソフトは2となった今でも更新されててすごい!)



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

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





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

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

●安全性のチェックを頻繁に入れるほど重くなるので
パフォーマンスのバランス取りにすごい時間がかかった!

 → まず色んな処理の実行時間を検証するのにけっこう時間がかかりました。
「軽い処理で先にチェックして変化を察知したら重い処理を行う」といった組み方を、
かなり細かく作る必要がありました。



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




●試行錯誤してたら部分的な処理速度が最初の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ヶ月ぶりに自分のゲーム開発が再開できます。
がんばっていきます!
 2024-04-13 (土) web拍手 by FC2 カテゴリ: ウディタ




2024-03-30 (土)   ウディタのセキュリティ更新作業中!

◆ウディタのセキュリティ強化作業!

この2週間はウディタのセキュリティ周りの強化作業をやっていました。
でもまだ最新版ウディタには入っていません!
暗号化まわりの検証が大変でもう少しかかりそうです!

ちなみにセキュリティ強化といっても、外から見える使い勝手は
ほぼこれまで通りで、ファイル周りやプロ版のセキュリティが
従来より強化されるのが主だと思います。

実装されても、普通にゲームに触れるユーザーの方には
おそらくほとんど影響はありませんし、ゲーム開発者の方も
いつも通りにしてくださっていれば問題ないと思います。


↓セキュリティ対策初心者が体験したこと4コママンガ

ちなみにここで述べられている問題への対策もちゃんとあってセキュリティは奥が深いです。




【ウディタ どこのセキュリティが上がるの?】

今回はファイル周りの解析難易度が前より上がるというのが大きな点です。
とか言ってると秒で解析されたりすることもあるから困ります。
的確な防御方法が分からないと何やっても一瞬で解析されちゃうんですよ!

そうでなくても、セキュリティにおいて究極的なことを言うと、
ローカルファイルとして存在するEXEは達人が一個一個処理を
ほどいていくと全ての処理が解析されてしまったり、
途中のデータの中味も見られるので、完全な防衛というのはできません。
たとえばEditor側の暗号化処理を1個ずつ解析していったら、
何をどうしてるかが全部見えちゃいますし!

他にも、PC上なら通常では見られないあんな情報や
こんな情報を見ることだって簡単ですし、もっとひどいこともできます。
できる人は何でも破れますが、「手間がかかるからやらない」とか
「やる価値が薄いからやらない」というだけで
見逃されていることが多いのがこの世界なのです。

しかしそれでも、これまでパズルゲーム程度の解析難易度だったのが、
私の脳内当てクイズになる程度には解析が難しくなるはずです。

ひとまずは「初級の攻撃テクニックは一通りふさがれてるかもなー、
調べるのちょっと面倒臭そう」と思うくらいのレベルにするのが今回の目標です。
まだ抜けてたら今後も随時強化されていきます。


【ウディタ利用者側としては何が変わるの? 起動時の変化】

まだ公開はされていませんが、
最新版予定のVer3.310の暗号化処理を使うと、Game.exe起動時に
全ての.wolfファイル(暗号化フォルダ)を読み込んでから起動するようになります!

前々から軽量な.wolfファイルはそうするようにしてましたが、
今度からは最新暗号化を使うと全部読込になります。
これはセキュリティ上の処理の都合です。

ゲーム中はファイルが常にメモリから読み込まれるようになるので
ファイル読込は高速になるのですが、一方で全wolfファイル分だけ
追加のメモリを消費するようになるので、あまりに重い動画の
フォルダなどがある場合は暗号化から外してくださった方が
いい場合もあるかもしれません。あるいは古いバージョンの暗号化にするかです。

数百MBくらいのゲームだったら何も影響ないといいますか
利点の方が大きいと思いますが、数GBにおよぶゲームを作られている方はご注意ください。



【ウディタ利用者側としては何が変わるの?(プロ版)  初期ローディング画像】

プロ版専用機能である初期ローディング画像がBasicdataフォルダ内または
Data直下にない場合、ローディング画像の読み込みタイミングが
これまでよりも少しだけ遅くなると思います。

最新の暗号化では開始時の処理が、
「最初にBasicdataだけ読み込んであとは順次読んでいく、
読んでないファイルは出せない」という形に変わるので、
Basicdataに画像が入ってると一番早く表示できるわけですね。

そのあたりはエディタの画面にも追記しておきますので、
Ver3.310が公開されたら、必要なら
『ゲーム基本設定[Pro版]』よりファイルの場所の移動をお願いします。



と、表面に出てくる変化としてはこんな感じの作業を2週間かけて行っておりました!

そして今も引き続き作業中ですが、少し時間をかけすぎて
作業費の赤字が拡大しているので急ぎながらでやっていきます!

しかし、誰にも知られず平和を守るために戦っている人たちの気分って
こんな感じなのかもしれません。
セキュリティという用途上、やったことの詳しいことがあまり話せない!
セキュリティ対策もこれはこれで、やってみると
すごいクリエイティブな仕事ではあるんですけどね!

成果を表に出しにくいこういった仕事は、創作マンとしては
「グオオつらいぃぃ!」って感じになるので早めに仕上げて次に行きたいです! 
がんばっていきますよ!
 2024-03-30 (土) web拍手 by FC2 カテゴリ: ウディタ




2024-03-16 (土)   ウディタVer3.300でピクチャのZオーダー機能搭載!
今回はウディタ(WOLF RPGエディター)の新機能紹介!
これはちょっとした革命ですよ!

なんとVer3.300でウディタに
『ピクチャのZオーダー機能』が搭載されました!
コマンドは「エフェクト」コマンド内の「ピクチャエフェクト」内にあります!

「Zオーダー」というのは画像を表示する上下関係を指定するための順序設定で、
数値が大きいほどそのピクチャが前面に表示されるようになります。

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

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



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

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

まずは動画でご紹介! 今回の記事はこの動画の内容と
ちょっとしたオマケを文章で紹介してる感じなので、
この動画だけで終わっても十分です!




【Zオーダーの基本】

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

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

逆に「-1」にするとZオーダー「0」の
全てのピクチャより背面に表示されるようになります。

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



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



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


以下の左の画像は、ピクチャ番号0~77にそれぞれ異なるキャラクターのピクチャを
78枚ほど出した画面です!

その各ピクチャの「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オーダーの変更」処理、使える人はぜひご利用ください!
 2024-03-16 (土) web拍手 by FC2 カテゴリ: ウディタ
ウディタ 4/16


▲一番上へ戻る


 

アーカイブサイトへ

Copyright © SmokingWOLF / Silver Second