2022年1月8日土曜日

citraの画像を高画質にする方法

百聞は一見に如かず。opencvで利用できるモデルが公開されていますので、ダウンロードしてすぐに利用できます。なんて素敵な時代なんでしょう。
高嶺 愛花様の右目だけ切り出して並べてみました。ギザギザがあるとかないとかそんなレベルではないことをお分かりいただけるのではないかと思います。ソースコードはたった10行程です。是非一度チャレンジしてみてください。

import cv2
img=cv2.imread("1.png")
sr = cv2.dnn_superres.DnnSuperResImpl_create()
path = "LapSRN_x8.pb"
sr.readModel(path)
sr.setModel("lapsrn", 8) 
result = sr.upsample(img) 
cv2.imwrite("1x8.jpg",result)

2022年1月7日金曜日

3DSの映像を4K解像度に変換する方法

 3DSの液晶解像度は上画面が400x240ピクセル、下画面が320x240ピクセルとなっています。とてもお手軽な解像度なので、録画したデータをPCの画面で拡大するとかなり厳しい見見た目になります。
 ということで、無料で利用できる機能・サービスの範囲で解像度の低い映像を高解像度化する方法の1例をご紹介します。

 動画を直接高解像度化できると簡単なのですが、無料でなんとかしようとしていますのでひと手間、二手間必要です。
 静止画であれば高解像度化はかなり方法が出回っています。お勧めはこちらのサイトで紹介されている「LapSRN」です。pythonの経験がないと難しいですが、もし読める程度のスキルがあればサンプルも掲載されているのでイケると思います。

Super Resolution in OpenCV

ざっくりとした手順は、録画した動画をffmpegを利用して静止画に分解します。その静止画を1枚づつ上記サイトで紹介されている手法で高解像度化します。全ての静止画の高解像度化が終わったら、ffmpegを利用して逆に動画に戻す、という方法を使います。1分の動画を処理するのにも数時間かかりますが、出来上がりはなかなか満足するのではないかと思います。それはいってみましょう!

■録画

 PC上でエミュレーションされている前提ですが、まずはなんとか録画しましょう。お手軽なのはWindows本体の機能でウィンドウごと録画してしまう方法です。Xbox Game Barという機能がありますので、調べてみてください。静止画でキャプチャするとこんな感じになりますね。


■録画した映像から音声の抽出

 ffmpegの紹介記事を見てもらうと良いですが、コマンドとしてはこんな感じです。mv.mp4の動画ファイルから音声のみを192Kの音質で抽出します。後で使うのでこんな感じで抽出しておきます。

ffmpeg -i mv.mp4 -f mp3 -ab 192000 -vn bgm.mp3

■動画を静止画に分解

 動画を指定したコマ数(1秒間に何画像抽出するか?)で静止画に落とします。以下の例だと、mv.mp4という動画ファイルを、"crack"というディレクトリに、image_00001.pngから順番に数字を加算して画像ファイルにしてくれます。1秒10枚と指定すれば、60秒の映像なら600枚になります。
 "-r"で指定している30はフレーム数です。元の映像ファイルのプロパティを確認すればわかりますので同じ値を指定しておくのが無難です。

ffmpeg -i mv.mp4 -vcodec png -r 30 crack\image_%05d.png

■静止画を高解像度化

 たったこれだけで高解像度化されます。これはpathに指定されたファイルを高解像度化して変数resultに格納しているだけですので、順番に読み込み、保存する処理を加えてください。PCのスペックに依存しますが、1枚処理するのに数分かかりますので寝る前に走らせておく、そんな感じです。

1sr = cv2.dnn_superres.DnnSuperResImpl_create()
2
3path = "LapSRN_x8.pb"
4 
5sr.readModel(path)
6 
7sr.setModel("lapsrn",8)
8 
9result = sr.upsample(img)

 

■高解像度化した静止画を動画に戻す

 静止画に分解するときの逆の処理です。

ffmpeg -y -r 10 -i crack\%05d.png -an -vcodec libx264 -pix_fmt yuv420p output.mp4

■音声を加える

 保存しておいた音声を付け加えます。

ffmpeg -y -i mv.mp4  -i bgm.mp3 -c:a aac -map 0:v:0 -map 1:a:0 fin.mp4

2022年1月5日水曜日

Citraの映像を録画する3つの方法

Citraに限らないのですが、PC上でのゲーム画像をどうやって映像として残すか?という話。お勧めはXbox Game Barですね。とてもお手軽です。

GEFORCE EXPERIENCE 

GEFORCEをご利用であれば、これを使用しない手はありません。GEFORCE EXPERIENCE(スタートメニューには、NVIDIA Corporationの配下にあります)を常駐させておくことで、デスクトップ全体のキャプチャ映像を取ることができます。この方法の最大の特徴はCPUを消費しないことです。GPUのみで処理しているようでGPUだけ使用率が上昇します。また、次に紹介するXbox Game Barの場合、ウィンドウのみのキャプチャとなるため、複数のウィンドウを同時に記録したい場合は、GEFORCE EXPERIENCEの録画機能一択です。


Xbox Game Bar

ウィンドウの録画ができればよいということであればXbox game Barがおすすめです。調べてみたところ、この方法でもGPUのみ使用率が上昇しました。ビデオカードの機能を利用して録画しているようです。


PowerPoint

リボンの、挿入→メディア→画面録画によって、PC画面の録画ができます。この機能の最大の特徴は、PC画面上の録画する範囲を自由に設定できることです。逆にデスクトップ全体、特定ウィンドウのみといった指定はできません。GEFORCE EXPERIENCEは当然ながら、Xbox Game Barもビデオカードの状況によっては機能しないことがありますが、この機能はハードウェアの制約がありませんのでどのような環境でも利用できると思います。リソースの使用状況を確認したところでも、CPU使用率のみ上昇いますのでGPUへの依存はないようです。アプリの操作方法の説明用動画を説明スライドに張り付けるような利用方法を想定してると思われるためしかたない部分化とは思いますが、画質はかなり低めとなっています。


2022年1月3日月曜日

3DS NEWラブプラス+ 高嶺愛花様のオープニング1年

 NEWラブプラス+は起動したリアル日によって登場する彼女の衣装が変化します。高嶺愛花様の場合はこうなります。

2021年の1月1日から12月31日まで並べてみました。2232x1440の解像度ですが、これでも1/4に縮尺しています。2022年のカレンダーにするといいかなぁ。

1月:お正月、成人式
2月:バレンタイン
3月:ホワイトデー
6月:プール開き?
7月:夏祭りでしょうか
9月:体育祭かな
10月:お誕生日とハロウィン
11月:ん-なんだろう。何かありそうだけど。
12月:クリスマス

ちなみに、起動時間でも衣装が変わるので12時に固定しています。早い時間だとパジャマですね。






妖怪ウォッチ3用QRコード

このチャンネルを押さえておけば間違いないです。数千枚はあると思います。

 THE YY FILE

2022年1月2日日曜日

3DS NEWラブプラス+ セーブデータ解析その1

 3DS版のNEWラブプラス+(以降NLPP)は、savedata0からsavedata80までの81ファイルとなっています。最小サイズは28バイト、最大でも24Kと細切れな感じですね。

 セーブデータをバイナリダンプして少し進めて、またダンプしてを繰り返し、少し分かってきました。それ以前に何が凄いって暗号化されてないどころかチェックサムすらないところです。図にあるように、savedata9の以下の場所をFFにすることで、初日からパラメタMAXになります。該当箇所を書き換えるだけで良いです。暗号化されてないのでバイナリエディタで編集すればOK。

0x0c 運動
0x1a 知識
0x28 感性
0x36 魅力

編集中の画面 

開始後初回の予定入力画面


2022年1月1日土曜日

モンスターハンターダブルクロスのダウンロードコンテンツをPCでプレイする手順

 モンスターハンターダブルクロス(mhxx)に限りませんが、3DSのデータは、ゲーム本体のイメージ、ゲーム更新データのイメージ、セーブデータ、モンハン等のダウンロードコンテンツの4種類になるかと思います。
 ゲーム本体のデータ、更新データはgodmode9で抽出します(godmode9で吸い出す方法)
 セーブデータはcheckpointで抽出します。このセーブデータはカード内に保存されているセーブデータを指します。
 mhxxはセーブデータとダウンロードコンテンツの両方をSDカードに追加データとして保存します(カプコン公式:SDカード取り扱いのご注意)。そのため、他のゲームと違う手順で各種データを抽出してPCに移す必要があります。
※拡張データ、extdata、追加データ等と表現されています。本記事では追加データで統一しています。

■checkpointでセーブデータとダウンロードコンテンツの抽出

 checkpointを起動を起動した直後の画面。”あれ?mhxxを認識しない?”となりがちです。画面下部に説明がありますが、xボタンで追加データの保存画面に切り替わります。

[X]ボタンにより追加データの保存画面に切り替えた状態。mhxxがリストされますので、普通のセーブデータと同じ手順でバックアップします。


■抽出した追加データをcitraに移す

 SDカードの以下に保存されています。
 [ルートドライブ]\3ds\Checkpoint\extdata\0x01971 MONSTER HUNTER XX\[Checkpointで指定したパス]
 system,system_backupの2つをコピーすることになります。 


 citraを起動し、対象ゲームアイコンを右クリックすると、"拡張データの保存先を開く"というメニューが出ますので選択してエクスプローラを開きます。ちなみにmhxxは"セーブデータの保存先を開く"は出ませんね。


 エクスプローラが開いたら、先ほどの2つのファイルをコピーします。
※ファイルの日付が合ってませんが気にしないで。。。

これで、PCでも3DSの続きからプレイすることができます。ダウンロードコンテンツもプレイ可能です。HORIPADでプレイしてます。とても快適です。




妖怪ウォッチ2 QRコード集

ニコニコ動画に投稿させて頂いた動画を一覧にしておきました。メモにご利用ください。