sumisoクラフト

sumisoクラフトはてなブログ拠点

ymmpファイルからセリフだけ抽出する【python】

ゆっくりムービーメーカー4のプロジェクトファイルから
時系列でセリフだけ抽出してテキストファイルに書き出す方法です

ちなみにYMM4では
動画出力時に字幕ファイルを生成すれば、セリフの一覧として利用できます
動画のエンコードが待てなくてpythonは即起動できる方向け

ymmpファイルからセリフだけ抽出してtxtファイルに出力

import json
filepath = r"path\to\yukkuri.ymmp"
filename = "output.txt"
data = {}

with open(filepath, 'r', encoding='utf-8-sig') as f:
    data = json.load(f)

# セリフとフレームを抽出して辞書リストにまとめる
serif_data = [
    {
        'serif': item['Serif'].replace('\r\n', ' '),
        'frame': item['Frame']
    }
    for item in data['Timelines'][0]['Items']
    if 'Serif' in item
]

# frameの昇順でソート
serif_data.sort(key=lambda x: x['frame'])

# 改行付きで整形
output_text = '\n'.join(f"{entry['serif']}" for entry in serif_data)

with open(filename, "w", encoding="utf-8") as f:
    f.write(output_text)

出力イメージ

こんにちは
ゆっくり霊夢よ
ゆっくり魔理沙だぜ

ymm4が出力するsubファイルのタイムスタンプ修正方法

ゆっくりムービーメーカー4では、動画出力時に
字幕ファイル(.sub)を出力することができます

動画出力

字幕ファイルがあれば、翻訳して動画の多言語対応などに利用できます

タイムスタンプの形式

しかし、タイムスタンプのフォーマットがおかしいことがあります

00:00:03.2000000,00:00:04.5666666
醸造台に

00:00:04.5666666,00:00:06.5666666
水入り瓶をセットして

本来hh:mm:SS.sss形式ですが
ミリ秒のケタ数が多くなっています

これだと、他の編集ソフトに読み込ませたいときや
srtに変換したいときにエラーになって困ります

30fpsで動画を作成していると発生するようです
時間が割り切れないからだろうか

バージョン

ゆっくりMovieMaker v4.45.3.5

対策

ミリ秒のケタ数が多い部分を
正規表現に対応したテキストエディタで切り取って、置換します

出力したsubファイルをテキストエディタで開き
検索欄を表示します
大体のエディタはCtrl + Fで検索欄が表示されます

VScode

検索欄に(\d{2}:\d{2}:\d{2}\.\d{3})\d+と入力します
このとき正規表現を有効化してください

置換欄に$1と入力して
(\d{2}:\d{2}:\d{2}\.\d{3})の部分だけに切り取ります

置換すると、ケタ数が多い部分が切り捨てられ
本来のフォーマットになります

なお、時間がちょうど割り切れるときは
逆にミリ秒がつかないようです

00:00:16.900,00:00:21

このような箇所は手作業で.000を追加し修正します

マイクラmod管理アプリ modrinth導入方法【Java版マイクラ】

Java版マイクラのmod管理を便利にするアプリ
modrinthの導入方法を紹介します

modrinth.com

modrinthを導入して、サバイバル向けのmodを導入します

環境

windows11

インストール

サイトにアクセスします

modrinth.com

画面上部の「Get Modrinth App」をクリック

トップページ

「Download the Modrinth App」をクリック

ダウンロード

インストーラーがダウンロードされます
クリックして起動します

インストーラ

セットアップ画面が表示されます
「Next」をクリック

セットアップ

インストールする場所を確認します
特にこだわりがなければそのまま「Next」をクリック

パス

インストールされます
完了したら「Next」をクリック

インストール完了

インストール完了です
そのまま「finish」をクリックしてアプリを起動させます

完了画面

アプリが起動します

初期画面

画面下のタスクバーにアプリを固定しておくと、すぐ起動できて便利です
お好みで設定してください

タスクバーのアイコンを右クリック
「タスクバーにピン留めする」をクリック

タスクバー

ログイン

イクラのアカウントでログインします
右上の「Select account」をクリック

アカウント選択

ログインボタンをクリック

ログイン

サインイン画面が表示されます
イクラで使っているマイクロソフトのアカウントで進めてください

サインイン画面

ログインできると、自分の顔が表示されます

ログイン完了

インスタンス作成

modを入れたマイクラの環境を作成します

左側のプラスのボタンをクリック

新しいインスタンスの作成

インスタンスの名前を決めます
例えば、用途に合わせて
サバイバル用、工業mod用といった名前を付けておくと分かりやすいです

Loaderはmodを読み込むための前提mod
使う予定のmodに合わせて選択してください

このあと入れるmodに合わせてFabricを選択しています

Game versionはマイクラ自体のバージョン
記事執筆時最新版を選択しています

初期設定画面
sumiso環境ではインスタンス名に食べ物の名前を付けているので、キャベツです
以前の環境は大根でした

空っぽの新しいインスタンスが作成されました
設定を確認します
右上の歯車のボタンをクリック

新しいインスタンス

一般設定が表示されます

先ほどはインスタンスのアイコンを設定していませんでしたが
やっぱり設定します

アイコンの設定

いらすとやのキャベツを設定しておきました
www.irasutoya.com

前提modやマイクラのバージョンを確認します
「Installation」をクリック

アイコン設定例

現在のバージョンが表示されます
アップデートがあった際はここから変更できます

メモリの設定を確認します
Java and memory」をクリック

バージョン確認

デフォルトは2GBしかメモリが使えず少ないので割り当てを増やします
「Custom memory allocation」にチェックを入れて
バーの左から3個目のガイドの位置に合わせて8GBにしておきます
お使いのパソコンのスペックに合わせて調整してください
よくわからなかったらデフォルトのまま推奨

終わったら右上の×ボタンで閉じます

メモリの設定

mod追加

インスタンスにmodを追加します

「Install content」をクリック

コンテンツの追加

様々なmodが表示されます
お好みのmodの「Install」をクリックして追加します

インストール

検索欄にmodの名前を入れて探すこともできます

modの検索

先ほどのインスタンスの画面に戻るときは
右上の「Back to instance」をクリック

戻る

インスタンス画面から再度modを追加するには
「Install content」をクリック

modの追加

また、mod以外に例えばシェーダーパックも追加できます
「Shaders」をクリックして選択するとシェーダーが表示されます
お好みの影modをインストールしてください

シェーダーの追加

サバイバルにオススメのmod

sumiso環境には以下のmodを導入しました

オススメのmod一覧

Fabric Api
Fabric用のmodを入れるためのmod
とりあえず入れておく

Sodium Lithium
動作最適化mod
いわゆる軽量化mod

Sodium Extra Reese's Sodium Options
Sodiumの設定画面がすごい()ので
機能追加したり、見やすくしたりするmod

Mod Menu
modの設定画面を表示するmod

Iris Shaders Complementary Shaders - Unbound
影modと読み込むシェーダーパック
有名な影modにOptifineがありますが
Iris Shadersはマイクラアプデ後の対応が早くて助かる

Flashback
youtuberには欠かせない録画mod
Replay modより動作が軽く、乗り換えが進んでいる

イクラ起動

お好みのmodを入れたら、マイクラを起動します
「Play」ボタンをクリック

イクラ起動

しばらくするとマイクラが起動します
初期設定をしてください

イクラ

イクラスクリーンショットやセーブデータがある場所は
設定の横のボタンより確認できます
「Open folder」よりエクスプローラーが表示されます

セーブデータなどの場所

まとめ

modrinthを使ったJava版マイクラmod環境構築方法を紹介しました
よいマイクラ生活を