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

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

やっぱりSublime Textを日本語対応にしておこう

日本語入力時に特に不便なので、日本語対応しておこうと思います。

まず、メニュー等の日本語ですが、色々と記事があるところ、次の記事を参考にしました。
qiita.com

続いて、IMEの入力がインラインで行えるようにします。
qiita.com

やろうとするとすぐに出来るのと、Package Controlが中々に重要な機能のようですね。
使い方が分かれば色々と拡張が簡単に行えるのでしょう。

.pscファイルをSublime Textで開くようにしているのと、Creation Kitでスクリプトをダブルクリックした際の表示を外部エディタで表示するようにしているので、もうSublime Textなしでは考えられなくなってきています。
f:id:rrryutaro:20170115193934p:plain


う~ん。今まで愛用していた秀丸どうしよう・・・

Skyrim Mod 製作日記 - 6 - PS4版でスキルの本であることをわかりやすくしたい

やりたいこと:読むとスキルが上がる本を目立たせたい(できれば、味読の有無もわかりたい)
やれたこと:EffectShaderとそれを実行させる"DA10MolagBalMaceEffectsSCRIPT"で実現させた

はじめに

PC版で『Unread Books Glow』というModを愛用していました。
skyrimspecialedition.2game.info

Skyrimをはじめて間もない頃は、本もせっせと集めてしまうものですが、さすがにあの大量のテキストを読んでいられないので、コレクション目的になってきます。
そうなると、まだ持っていない本を集めたくなりますが、中身を読まないこともあり、それが持っているか持っていないか容易に判断できません。
そこで、このModが非常に役立つわけです。読んでいない本が光っているので、大量に本があっても一目で分かります。

また、本の種類を、一般の本、スキルの本、魔法を覚える本、クエストの本といった感じで絞り込めます。
最近のプレイでは、スキルの本は見逃したくないので、スキルの本のみ光らせていました。

折角なら、この素敵なModを紹介したいと思い、それならば各エディションでと思い調べたら、NexusにSE版まではありましたが、Bethesdaには登録がありません。
PS4版ではこれを利用できないのです。最近はPS4版でも動くものを がモットーですので、何か変わりのものが無いか探しましたが、その時は見つけられませんでした。

そこで、自分で作ろうとなったわけです。

最初にやったこと

『Unread Books Glow』をダウンロードして中身を見てみると、結構独自にスクリプトを組んでいました。
これはさすがに無理だと思い、単純にエフェクトをかけられないか、本の設定項目を見てみます。
f:id:rrryutaro:20170111200457p:plain

それらしい項目はありませんでした。
あれこれ試したりしましたが、よい方法が見つけられず、ならば、本の名前でわかるようにしようと思い、本の先頭に"[スキル]"を付ける事にしました。
まず、英語版で"[Skill]"と手作業でせっせと名前を変更します。
これはこれで、英語版としてBethesdaに登録します。その後、sseTranslatorで日本語化します。
名前に"[Skill]"と付いているため、このままでは自動翻訳されませんが、ヒューリスティック候補で出てくるので、ひとつひとつ選択して翻訳します。
これを日本語版としてBethesdaに登録しました。

その後にすぐに、やりたかったことを実現しているModを発見

mods.bethesda.net

あるぇ~ できてんじゃ~ん。なるほどなるほど。自分が無知でした。
そもそも、表面を発光させているあのエフェクトがPS4関係なくどのように実現しているか分かっておりませんでした。
ちょっと調べてみたら、すばらしい解説記事がありました。
kasulog.blog-rpg.com

これまで、EffectShaderというのをわかっておりませんでした。
(正確には、新しい錬金素材を作ったりしてMagic Effectなどはいじっていましたが、視覚効果的な部分は見た瞬間そっ閉じしていたのです。

さて、これで、EffectShaderという重要なキーワードを得たので、早速スクリプトが無いか探してみると、それなりに検索結果が出てきました。
しかたないので、ひとつひとつ見ていくと、わりとすぐによさげなのがみつかります。
f:id:rrryutaro:20170111201948p:plain

中身をさらに開くとずばりでした。

scriptName DA10MolagBalMaceEffectsSCRIPT extends objectReference
;
;
;===============================================================

effectShader property glowEffect auto

event OnLoad()
	glowEffect.play(self as objectReference)
endEvent

event OnUnload()
	glowEffect.stop(self as objectReference)
endEvent

OnLoad時に、プロパティで設定したEffectShaderを自身に表現してくれます。
とてつもなく汎用性の高いスクリプトです。基本的にエフェクトを付けたいもの全てに利用できるかと思います。

というわけで、こんどはせっせとこのスクリプトを各本へと適用します。
なお、EffectShader自体は自作しようとしましたが、綺麗なのが作れませんでしたので『Unread Books Glow』から拝借させてもらいました。

これで、PS4版で出来る範囲でやりたいことが実現できました。
さて、ここから先ですが、『Scholar's Eye』のコメント欄で次のような発言があります。

> It would be really cool if the books would glow either red, blue, or green depending on the type of skill it boosts. For example: if it's a spellbook, it would be blue, along with all other books that boost skills within the "Mage" portion of the skill menu. Sneak skills would be green; warrior skills would be red.

> レッスンの種類に応じて、赤、青、緑のいずれかの本が輝くなら、本当に涼しいでしょう。たとえば、魔法書であれば、それは青で、スキルメニューの「Mage」部分でスキルを上げる他のすべての本となります。スニークスキルは緑色です。戦士のスキルは赤くなります。

そうですよね、どうせなら種別に応じて見栄えが変わっていればより便利ですよね。
機能拡張するとしたら、この辺を対応することになるでしょうか。

PS4版でのMod開発の難しさ

何度か書いているかもしれませんが、PS4は外部アセットが利用できないため、既存のスクリプトでまかなわなくてはなりません。
例えば、PS4で本を読んだかどうかを判断して、何らかの処理をしたい場合、少なくとも IsRead() を使っているスクリプトが必要です。
はい。自分が調べた限りでは1つも存在していませんでした。実現不可能です。

今回はたまたま、やりたいことがもっともシンプルかつ汎用的にできるスクリプトが存在しました。

その他のものでは、なんらか余分な処理があるため、利用しづらいですが、逆にそれを活用するように合わせたりなどで、やりたいことが実現できる可能性もあります。
これはこれで、パズル的面白さもあるかもしれませんが、やっぱり、さくっとスクリプトを書いて済ませられればいいのですが。

今回作ったもの

mods.bethesda.net


以上

Skyrim Mod 製作日記 - 5 - はじめてのクエスト作成2

やりたいこと:NPCとの会話で選択肢を選択後にクエストステージの更新とクエストタイトルを表示させる
やったこと:それを可能とするスクリプトを探して実行させるように置き換える

前回遭遇した問題について

前回、Creation Kit(以降CK)のチュートリアルを進めていましたが、CKがクラッシュする問題に見舞われました。

この時まさに丁度、BethesdaのCommunityに同様の問題をかかえる方の投稿がありました。
beta-community.bethesda.net

自分も便乗して現在の状況について書き込みします。
さらに、Communityを調べていると、それよりも2ヶ月ほど前の記事に、解決の糸口となる内容が記載されていました。

[Dialogue Views]タブの隣にある[Player Dialogue]でも編集可能なことを知ります。
f:id:rrryutaro:20170109115210p:plain

クラッシュする問題の根本解決は出来ていませんが、これで作業を進めることは出来るようになりました。

新たな問題

CKのチュートリアルはPS4向けに作られているわけではありませんので、スクリプトを作る工程があります。
PS4では外部アセットと呼ばれる、自分で作ったスクリプトやらテクスチャやらを利用できませんので、ここでかなり躓きました。

そして、この問題もまさに丁度Communityに投稿がありました。
beta-community.bethesda.net

投稿そのものは2ヶ月前ですが、丁度今まさにのタイミングでコメントが付き、丁度自分と同じ問題を抱えていると思われる内容でした。

現在既に解決策を見出して、この記事を書いているため、それまでの過程を改めるのが少々おっくうなので結論ですが、既存のスクリプトから利用できそうなものを探して使うだけです。

例えば、今回のケースでやりたいことは、錬金術士のトレーナーに話しかけ、錬金術を習いたいかという問いかけに、Yesと答えたら、トレーナーは指示を出し、同時にクエストステージを0から10に変更し、かつクエストステージ10のタイトルを表示させることです。

スクリプトが使える場合、Topic Info Fragments.に、次のように書き込むだけです。

GetOwningQuest().SetStage(10)
GetOwningQuest().SetObjectiveDisplayed(10)

これと同じことが出来そうなスクリプトを探すために、C:\Program Files (x86)\Steam\steamapps\common\Skyrim Special Edition\Data\Source\Scriptsを基点に、次の正規表現文字列でgrepします。

SetObjectiveDisplayed\(10\D

"SetObjectiveDisplayed(10)"とせずに、正規表現を使うのは"(10, "のように、第2引数なりを指定しているものをピックアップするためです。
後元々は、"SetObjectiveDisplayed\(\D"として、プロパティが使えるスクリプトが無いかを探していたためです。

これにより、いくつかの候補が見つかったので、あとは中身を覗いてそのまま利用できそうなスクリプトを探します。
今回は丁度、"TIF__0001B24C"というスクリプトが見つかりました。

では、これを使うようにしたいのですが、CKだとたぶん出来ないです。
少なくとも自分は方法が分かりませんので、一旦、ダミーでスクリプトが呼ばれる状態を作ります。
f:id:rrryutaro:20170109120749p:plain

これを保存し、今度はSSEEditで開き該当の設定を表示します。
f:id:rrryutaro:20170109120934p:plain

スクリプトのファイル名を直接変更します。
f:id:rrryutaro:20170109121019p:plain

"fragmentName"はたまたま同じだったのでそのままです。
SSEEDitを閉じて、保存し、CKで開き直します。

読込むスクリプトが"TIF__0001B24C"となっています。
f:id:rrryutaro:20170109121402p:plain

中身は次のようになっています。
f:id:rrryutaro:20170109121442p:plain

CKでは、";BEGIN CODE"と";END CODE"で囲われている部分をTopic Info Fragmentsとして、画面に表示させているのでしょう。
ともかくもこれで、目的とする動作をさせることができるようになりました。
既存のスクリプトなので、PS4のModとしてアップロードできます。

なお、Communityで話題となっていた、questAliasUtilitySCRIPTは、onACTIVATEで動くものなので、何か対象となるアイテムを用意して、それを操作した時にしか使えませんが、プロパティでクエストステージの数値を指定できるので、汎用性があるため、使えるところでは一番適切なスクリプトでしょう。

このようにして、進めるしかありませんので、場合によっては、既存のスクリプトの動作に合わせてクエストの設定をする必要があるかと思います。

例えば、上記のケースでは、そのステージのクエスト完了をするスクリプトとして、"SetObjectiveCompleted(10)"があるスクリプトを探してみましたが、大抵はその次のステージに進める記述があり、ステージの数値は12とか15などがあります。
このため、自分のクエストでもステージの数値を場合によっては、それに合わす必要があります。

ともかくも、これでどうにかある程度クエストの作り方がわかりました。

以上

Skyrim Mod 製作日記 - 4 - はじめてのクエスト作成1

やりたいこと:アルカディアの大ガマで、アルカディアから調合の依頼を受けて、調合アイテムを渡して報酬を受け取る
やれたこと:できるにはできたが、保存して一旦開きなおした以降、そのクエストを編集しようとするとCreation Kitが100%落ちるため、原因を調査中

正直、クエスト作成は中々に難しいイメージがあり、どこにどう手を出せばいいかもわかりませんでしたので、素直にCreationKit.com のチュートリアルを受けることにします。

Bethesda Tutorial Planning the Quest - Creation Kit

まずは、クエストを新規で、名前だけのクエストデータを作成して。
f:id:rrryutaro:20170103084827p:plain

同じく、アクターを新規で、名前と種族と服装を指定して作成して。
f:id:rrryutaro:20170103084957p:plain

セルビューで配置した位置を表示させて、そこにアクターをドロップして配置。
f:id:rrryutaro:20170103084606p:plain

うっは。こんなに簡単だったとは・・・

f:id:rrryutaro:20170103085424p:plain


続いて敵配置のチュートリアル。いずれ専用の敵を倒したり、専用のアイテムを入手できるようにはしたいので、続けて行く。
f:id:rrryutaro:20170103090404p:plain


ざっくりそれらしい場所にあたりを付けて。
f:id:rrryutaro:20170103091057p:plain

配置しやすいようにズームして。
f:id:rrryutaro:20170103091122p:plain

ドロップ。
f:id:rrryutaro:20170103091209p:plain

ゲームプレイで表示確認。
f:id:rrryutaro:20170103092414p:plain


っと。ここまでは順調でした。

続いて、チュートリアルではDialogue Viewsといった内容に着手するのですが、この項目を作成してから保存して開きなおすと100%、Creation Kitが落ちるという問題が発生しております。
→空のファイルを作り、Viewだけ作ったものでも落ちてしまいます。

※この記事に着手したのが、2016/01/03で、現在2016/01/07時点で、解決策を見出せないので、一旦ここまでで投稿しています。

別件で、サイトでのMod登録の挙動に問題があり、Bethesdaのサポートに問い合わせたところ、Modでの個別の質問は答えられないと回答をもらい、Communityで質問をしてみるも回答が付かずだったりしています。
ただ、このケースについていきなり質問を投げるわけにもいかないため、一通りCommunityでの質疑応答を確認してから、進めようと思っています。

やはり、クエストがきちんと動くようになれば、面白みが違いますから、なんとかしたいです。


以上

ニコニコ動画のタグ編集と投稿者コメント

ニコニコ動画で、タグ編集の方法と投稿者コメントの方法をいまいちわかっていなかった

やりたいこと:動画投稿時に設定したタグの編集、視聴者コメントを確認しつつ投稿者コメントを投稿する
やりかた:通常の動画再生の画面で[タグ編集]の部分をクリックする、コメント表示のコンボボックスをクリックする


ニコニコ動画への投稿をはじめて間もないのもあって、本気で知らなかったです。

編集画面でタグ操作が出来るところが無かったので、一度投稿するとダメなのか?っとしばし放置していました。
また投稿者コメントも編集画面から操作していたのですが、投稿者のコメントが確認できなかったりで操作しづらいと感じていました。

f:id:rrryutaro:20170107212336p:plain

視聴者から「別げーのタグロックなんかしたら反感買うよ」というコメントをいただきました。
グロックという言葉も聞きなれませんでしたが、投稿者が設定できるタグで、視聴者がいじれないものと理解。
また、今回のケースでは、Skyrimの話題を入れていたので、そのタグをつけていましたが、動画のほとんどはSkyrimとは関係ないため、Skyrimのタグで検索しているユーザーには目障りになってしまうでしょう。
大いに反省しました。

いや、この程度のこと、知らない場合は知らないのですよ。

Google Chrome 拡張機能の開発 はじめのいっぽ 早速やってみた

昨日知ったばかりの、Google Chrome拡張機能の便利さに鼻血が出そうになりました。
rrryutaro.hatenablog.com

自分でも早速作ってみなくてはいられなくなり、コードの話になるので、Qiita側で記事を作成してみました。
qiita.com

これはやばい。楽しすぎますね。簡単にカスタマイズできるので自分好みにできて、さらに作業が捗りそうです。
これでまたしばらくやりたいことから脱線しそうですが、その分便利になってさらに効率化できるのではと思う次第です。


以上