プログラミング・動画編集 備忘録

プログラミングや動画編集についての備忘録です

ブログタイトル変更

元のタイトル

RのSkyrim Mod開発日記

変えたタイトル

プログラミング・動画編集 備忘録

変えた理由

丁度1年ほど前にSkyrimのMod開発を始めてから、せっかくなのでやっていることの過程を記録しておこうと始めたものです。
そのMod開発のネタとしているゲーム「ソフィーのアトリエ」について、折角ならプレイ動画を投稿してみようと、ゆっくり実況プレイの動画作成を始めたことで、動画編集に関することもブログの話題とするようになりました。
そうしている内にSkyrimのMod開発を行なうよりも動画編集をする時間の方が多くなってきました。
そんな中息抜きにと別のゲーム「Terraria」を始めるのですが、折角なら録画しておこうと録画し、そうなると折角ならプレイ動画を投稿してみようと、これまた、ゆっくり実況プレイの動画作成を始めてしまいます。
そしてさらに、TerrariaのMod開発も始めて、これについてもブログの話題とするようにしました。
その後は動画作成とTerrariaのMod開発が中心になることで、ここ最近はめっきり記事を書いていませんでした。

そろそろ何か書こうかと思い、それならいっそもうタイトルも変えておこうと思った次第です。
ただ、良い名称が思いつかず今はこんなタイトルです。


以上

【Terraria】Modの公開方法

【2017/09/06 追記】
tModLoader が 2017/09/06 に v0.10.0.2 -> v0.10.1 にバージョンアップしアイコン表示に対応

現時点(2017/08/12) の Terraria 1.3.5.3 にて tModLoader v0.10.0.2 (tModLoaderを使用している場合、実際にはTerraria v1.3.5.2)を使用している場合のModの公開方法についてです。

大まかには次の通りです。

1. Terraria Community Forums のアカウント登録
2. Terraria Community Forums にMod用のスレッドを作成する
3. Mod Browserに登録する
4. GitHubとMod Browserと連動? する(アイコン表示できるようになるらしいが、現時点(8/12)でうまくいかない)
→(2017/09/06)tModLoader v0.10.1 から対応した


Mod Beowserに登録するだけなら、Steamアカウントが必要なだけで、Terraria Community Forumsへの登録はしなくてもよいかもしれませんが、ここが基点?のようなものなので、登録します。

1. Terraria Community Forums に登録する

アカウントの作成をします。
画面の右上に Log in or Sign up の項目があるので、クリックします。
f:id:rrryutaro:20170812071931p:plain

画面上部に入力欄がプルダウンしてきますので、No, create an account now.をクリックし、Sign upをクリックします。
メールアドレスを入力していた場合、次の画面に引継がれます。
f:id:rrryutaro:20170812072142p:plain

よくある名前なんかを入力する画面が表示されますので、各項目を埋めていきます。
f:id:rrryutaro:20170812073321p:plain

メール送信した旨の通知が表示されるので、メールを確認してリンクをクリックすれば完了です。
f:id:rrryutaro:20170812073454p:plain

2. Terraria Community Forums にMod用のスレッドを作成する

Terraria Community Forums のホームから、Forumsをクリックし、Terraria on PC - Player-Created Game Enhancements をクリック。
f:id:rrryutaro:20170812073938p:plain

Client/Server Mods & Toolsをクリック。
f:id:rrryutaro:20170812074021p:plain

Releasedをクリック。
f:id:rrryutaro:20170812074102p:plain
右端の Post New Threadをクリック。
f:id:rrryutaro:20170812074324p:plain

タイトルや本文を入力する画面になりますので、後は必要事項を入力します。
f:id:rrryutaro:20170812074452p:plain

下の方の細かい指定は使っていないので、まだよくわかりません。

3. Mod Browserに登録する

まず、次の場所からログインします。Steamと連動しているようなので、Steamでのサインインが必要です。
Mod Browser - Manage your mods.
f:id:rrryutaro:20170812074738p:plain

Generate Passphrase Now をクリックします。
f:id:rrryutaro:20170812074838p:plain

表示されたパスフレーズをコピーしておきます。
f:id:rrryutaro:20170812075017p:plain

セーブデータのある方の、 Terraria\ModLoader\config.jsonテキストエディタで開きます。
下の方に "ModBrowserPassphrase" の項目があるので、パスフレーズを貼り付けます。
f:id:rrryutaro:20170812075229p:plain

テラリアを起動しMod Sourcesをクリックします。
f:id:rrryutaro:20170812075700p:plain

Publishをクリックします。
f:id:rrryutaro:20170812075828p:plain

問題なければ、成功した旨が表示されるかと思います。
即座に反映されて、Mod Browserで確認できるようになりますが、実際に表示を確認したい場合、一旦Modsから.tmodを削除しないと表示されません。

4. GitHubとMod Browserと連動? する

GitHubと連動する事で、Mod Browserでアイコン表示できるようになるらしいです。(現時点では Recipe Browser くらいしかみかけません)
先ほどの、パスフレーズを発行した際のところで、Manage Mods (Github)のボタンがあり、続いて Change Github Authorization というボタンがあり、アクセストークンなどを入力する画面となります。
GitHubでパーソナルアクセストークンを発行し、対象のリポジトリを対象となるようにすれば、送信完了した旨が通知されますが、アイコンは変わりません。
Recipe Browserを見ると、icon.pngを置いておけばよさそうなのですが、まだよくわかりません。

(2017/09/26)
tModLoader v0.10.1 より、アイコン表示に対応。

Mods can now have an icon! Make sure your file is named 'icon.png' and it has a size of 80x80 pixels. The icon will display in the mods menu and in the mod browser when published.
(Google翻訳:改造者はアイコンを持つことができます! ファイルの名前が「icon.png」で、サイズが80x80ピクセルであることを確認してください。 このアイコンは、公開されると、改訂履歴メニューと改訂履歴に表示されます。)

とのこと。



以上

【Terraria】tModLoaderからTerrariaをデバック実行する

まずは、以下からソースコードをダウンロードします。

github.com

Readmeの説明に次の項目があります。

Getting the tModLoader code for the first time
(初めてtModLoaderコードを取得する)

書かれている通りに実行していけばよいのですが、以下、自分が躓いた事なども含めて手順を説明していきます。

1. ダウンロードしたファイルを解凍し、ルートフォルダの setup.bat を実行する

2. 次のウィンドウが表示されるので、メニューから [Options]-[Select Terraria]を選択する
f:id:rrryutaro:20170811123626p:plain

3. オープンファイルダイアログが表示されるので、バニラの Terraria.exe を選択する
 →通常なら C:\Program Files (x86)\Steam\steamapps\common\Terraria\Terraria.exe
 ※v1.3.5.3ではエラーになると思いますので、Steamから過去バージョンの v1.3.5.2 を取得して、それを指定。
  古いバージョンの取得方法は次を参照してください。
rrryutaro.hatenablog.com

4. [Setup] ボタンをクリックする

5. 次の確認メッセージが表示されるので [OK]をクリックする
f:id:rrryutaro:20170811123943p:plain
 ※1~3時間ほどかかるようなことが書かれていますが、そこまではかからないと思います

6. タブン最後にコンパイルエラーのダイアログが表示されるが、気にせず [OK]をクリック
f:id:rrryutaro:20170811133038p:plain
f:id:rrryutaro:20170811133054p:plain

7. solutions フォルダの、tModLoader.slnを起動してビルドする
 この際デフォルトではLinuxReleaseになっているので、注意。

8. デバッグ実行する
 ゲームが起動すれば、ブレークポイントを設定するなりして、Terrariaでの気になる部分の内部動作を確認できます。


う~ん。こんなに簡単にデバッグで動作をみれるものなんですね。


以上

Steamで古いバージョンのゲームをダウンロードする

以下の記事を参考にしました。

k0ta0uchi.hatenablog.com

コンソールの起動方法はこちらを参考にしました。
maruhoi.com

基本的に以降の内容はWindows 7で実施している前提です。

Steamのコンソールを表示するには、単純には次のコマンドをファイル名を指定して実行(Windowログのキー + R キー)で起動します。
C:\Program Files (x86)\Steam\Steam.exe console

コンソールを起動する際、既にSteamを起動している場合は、一旦完全に終了してから起動するようにします。
まぬけな話ですが、Steamを起動しても CONSOLE といった表示がされず、しばらく悩んだのですが、原因はウィンドウの右上の×ボタンで閉じていたりして終了させたつもりでいたためです。

以下、Terrariaでの直リンクです。 (APPID:105600 DepotID:105601)
steamdb.info

バージョン番号はわかりませんので、日付で判断します。

v1.3.5.2をダウンロードする場合、次のコンソールコマンドとなります。
download_depot 105600 105601 4963288974433434036

ダウンロードはかなり遅いです。進行状況が気になる場合、以下のフォルダにダウンロードしていると思いますので、フォルダのプロパティなりで、サイズが変わっていることを確認ることで確かめられるかと思います。
C:\Program Files (x86)\Steam\steamapps\content

なお、ダウンロードは app_{APPID}\depot_{DepotID} といった形で保存されます。同一のAPPID、DepotIDで、異なるManifestIDで同時にダウンロードを実行すると、タブン後の方で上書きされてしまうと思いますのでご注意ください。

DATE MANIFESTID Version
April 25, 2017 – 20:59:06 UTC (2017/04/25) 8115792227484220109 1.3.5.3
April 21, 2017 – 21:11:19 UTC (2017/04/21) 4963288974433434036 1.3.5.2
April 19, 2017 – 22:11:27 UTC (2017/04/19) 2659464619157023246 1.3.5.1
April 19, 2017 – 14:04:13 UTC (2017/04/19) 5600735809725268128 1.3.5
December 16, 2016 – 22:00:42 UTC (2016/12/16) 7118084600027986257 1.3.4.4
November 18, 2016 – 18:16:37 UTC (2016/11/18) 6620202942746136387 1.3.4.3
November 17, 2016 – 01:48:29 UTC (2016/11/17) 4606046863940759363 1.3.4.2
November 16, 2016 – 01:28:04 UTC (2016/11/16) 9068693499074602683 1.3.4.1
November 15, 2016 – 17:02:10 UTC (2016/11/15) 3514095875374335516 1.3.4
October 3, 2016 – 18:51:05 UTC (2016/10/03) 7340682334336327551 1.3.3.3
September 13, 2016 – 15:34:32 UTC (2016/09/13) 7250605150353484052 1.3.3.2
September 11, 2016 – 19:50:29 UTC (2016/09/11) 3874793985052337375 1.3.3.1
September 9, 2016 – 15:00:39 UTC (2016/09/09) 2815579254257354684 1.3.3
July 21, 2016 – 18:29:53 UTC (2016/07/21) 3490554075187311728 1.3.2.1
July 20, 2016 – 18:36:52 UTC (2016/07/20) 2032235115638138428 1.3.2
May 31, 2016 – 15:58:49 UTC (2016/05/31) 1191364476941491444 1.3.1.1
May 22, 2016 – 14:39:38 UTC (2016/05/22) 2679835326116187769 1.3.1
August 12, 2015 – 18:32:35 UTC (2015/08/12) 4187789340605599532 1.3.0.8
July 23, 2015 – 20:21:07 UTC (2015/07/23) 1141292393149860915 1.3.0.7
July 20, 2015 – 18:36:19 UTC (2015/07/20) 4359342544884831593 1.3.0.6
July 13, 2015 – 20:04:36 UTC (2015/07/13) 6779472984295384730 1.3.0.5
July 9, 2015 – 19:38:12 UTC (2015/07/09) 6548034163903474739 1.3.0.4
July 9, 2015 – 18:59:26 UTC (2015/07/09) 1743789827276687572 ?
July 2, 2015 – 19:35:02 UTC (2015/07/02) 2895227600346198332 1.3.0.3
June 30, 2015 – 23:38:16 UTC (2015/06/30) 9114151810677589101 1.3.0.2
June 30, 2015 – 16:59:45 UTC (2015/06/30) 5455170145185841928 1.3
June 16, 2014 – 08:08:22 UTC (2014/05/16) 1270558334791485575 1.2.4.1
December 31, 2013 – 13:16:17 UTC (2013/12/31) 5761620975617404996 1.2.2 ?

Terrariaのゲーム内のイメージを抜き出してpngで保存する

次の記事を参考にしました。
MOD - Stardew Valley 日本語Wiki
Terrariaのグラフィックを差し替える | Frea.Inventory

イメージを出力したいだけなら、上記記事で十分です。

事の経緯

最近TerrariaのMod開発にどはまりどハマりしているのですが、既存のイメージを利用したくとも、どこのフィールドを参照すればよいかがわからず、リフレクションを使用してイメージファイルを出力したのですが、そういえばxnbってファイルがあるから、出力するツールがあるのではっと気付いた次第です。
なお、TerrariaでMod開発する場合に、既存のイメージが Mainクラスのどのフィールドかを知る場合なら、次の方法で出力すれば役立つかも知れません。
qiita.com


以上

TerrariaのMod開発はじめの一歩

はじめに

この記事はTerrariaのMod作成をtModLoaderを利用して開発する方法について手探りで進めている様子を記載しています。

経緯

このブログはSkyrimのMod開発について日々の記録を残そうとはじめたものです。
肝心のMod開発はその元ネタとしているゲームのプレイと動画投稿のための編集に時間が費やされ、さらに息抜きではじめたTerrariaもまた、そのプレイと動画投稿の編集に時間が費やされ一向に進んでいません。

そんな中、さらにTerrariaのModに興味が湧き、どのように開発するのかを調べていますが、ほとんど日本語の情報が見つかりません。
そうなるともう、英語を見るか、オープンソースのコードを見て、見よう見まねでやるしかありません。

しかし、覚悟を決めて英語を見ていけば、それなりに親切な内容になっているようです。

Modの雛形は簡単に作れる

武器を1個追加するだけであれば直ぐにできます。

まずは、TerrariaのフォーラムのtModLoadのページへ
forums.terraria.org

そこから、Link to Documentation​をクリックします。
github.com

Basic tModLoader Modding Starter Guide - Start here if you want to make a mod. と書かれたリンクがあります。
(Google翻訳:あなたがモッズを作りたいなら、ここから始めてください。)

そうすると、Mod Skeleton Generatorなるものがあるようです。

ページの説明にある通りに、各手順を進めて行きます。

まず、ジェネレーターのリンク先にてModの名前と、アイテムの名称などを入力してボタンを押すとダウンロードが始まります。

ダウンロードして解凍したらそれを、所定の位置に置けばいいみたいです。
(通常なら %UserProfile%\Documents\My Games\Terraria\ModLoader\Mod Sources\ に配置)

Terrariaを起動し、tModLoaderのメニューから今配置したModをビルド&リロードして、ゲームを開始。
つちブロックを10個集めてワークベンチで新しい剣を作る事ができます。

このくらいであればめちゃくちゃ簡単にModが作れちゃうみたいです。
例えばダメージを変えれば簡単にチートできてしまうでしょう。
後は、単純なアイテム類ならサンプルコードなどを参考に追加していけばそれだけでも自作のオリジナルアイテムを導入したModが作れるでしょう。

とりあえず、取っ掛かりは簡単だとわかりました。


以上

AviUtlでの動画作成の一部を自動化する - 1 - テキストの変換

自分はまだまだAviUtlの事に詳しくはないですが、AviUtlにはオブジェクトファイルのインポートとエクスポートの機能があり、エクスポートしたファイルの中身を見てみるとテキスト形式のファイルになっています。
ということは、なんらかしらの方法でこのファイルを出力すれば、ある程度自動化できます。

まぁ知っている人には当然の知識で、たぶんそのための色々なツールも一杯あるのでしょう。

というか、「ゆっくりMovieMaker」もそうですよね。

ただ、拡張子が exo のこのファイル。
テキストオブジェクトの text の項目だけは単純なテキストデータではありません。
Unicodeのバイト文字列で4096文字分の固定長となっているようです。

普段ちょっとしたツールはC#で作成していますので、次のような変換用のメソッドを用意しました。

private string ConvertExoText(string text)
{
    string result = BitConverter.ToString(UnicodeEncoding.Unicode.GetBytes(text)).Replace("-", "");
    result = result + new string('0', 4096 - result.Length);
    return result;
}

その他はやりたい事に合せて必要な文字列を出力するようにしました。

とりあえずは、こんなところで。