joysoundに入っているデレマス曲を片っ端から歌ってきた


どうも、mrtskaです。

 

タイトルから狂気を感じますが、やりましたよ!


2017/3/16の22時から始まり~

 

終わったのは

17日の10時 \(^o^)/

 

折角金曜日にお休みを頂けたので前からやりたいと思っていたオールカラオケデレマス曲制覇とかいう頭の悪そうなことをしたかったんですよ。

実際に一曲ずつツイートしているのでこちらも。


この時TLに居た方には申し訳ない。

 

数えてみるとjewelriesのカバー曲と346Pro IDOL selectionのrearrangeを除いて120曲なのかな?

普段からプログラムばっかり書いているのでたまには、ねぇ?

いや~でも結構歌えるもんですね。自分でもびっくりです。途中で寝落ちするかな?とか思っていましたが時間内に歌いきれないのでは?!という疑惑が出て来始めてから眠気なんてどっか行きました。

(結局歌いきれずに1時間延長したんですけどね・・・深夜フリータイムのあとに延長するやついる?笑)

 

というわけでしょうもないまとめ記事を書いてみましたが、また曲が増えたらやってみたいですね。

もうフリータイム内で歌い切ることは出来ないのが確定してますので延長不可避ですが・・・

やるならちゃんと準備とかしないとですね。

 

ちなみにお世話になったカラオケ屋はここです。ありがとうございました。

 

 

~結論~

 

 

カテゴリー: デレマス | コメントする

NicoNicoViewer #12


どうも、mrtskaです。

ようやく正式版のNicoNicoViewerがリリースできました。

(とはいえ、バグフィックスアップデートも沢山出しましたが・・・)

beta版の時と比べてUIを頑張ってみたのですが、皆さん分かりますかね。

 

テーマカラー

beta版とまず違うのがテーマですね。betaはBlueのみでしたが1.0では選べるようにしました。

どのテーマも個性が強いというか、まあ好きなの使ってくださいな。

ちなみに私はOrangeが一番好みなのでデフォルトもOrangeです。

 

動画View

beta版を知っている方は分かると思いますが、かなりUIを変えてます。

マイリストやツイートボタンはホントにただのボタンだったのをベクターなアイコンに変えてます。

ツイートボタンもブラウザで開くのではなくその場所にポップアップを出してその場でツイートできるようにしました。

初回はログイン必要ですけどね。

その他再生速度を変えれたり(プレミアムオンリー)いろいろあります。

 

HelpView

これを見てなんのことか分かる人はいるのだろうか。という疑問はありますが・・・

使い始めの人には是非使ってもらいたいものです。

この右上の「?」マーク、押したことある人いますか?

このボタンは各タブで用意されていれば押せるようになっているボタンです。

キーボードショートカットや小ネタなど、いろいろ書いたつもりです。

特に動画Viewでは押してもらいたいですね。ショートカットを沢山書きましたから。あとマイリストも。

 

まとめ

beta 0.943を公開した後3ヶ月くらいかけて作り直した1.0です。

難儀なバグからしょうもないバグまでいくつかありましたが現バージョンはそこそこ安定してきているんじゃないかなと思います。

これから先ニコニコがどうなるかは分かりませんが、私がニコニコを見てるうちは更新されるでしょう。

 

みなさんHelpView使ってくださいね!

少し短い気もしますが、これにて。

 

 

追伸:

所謂、厄介と思われるコメントには返信も承認もしません。ご了承ください。

 

カテゴリー: NicoNicoViewer, WPF, 未分類 | 3件のコメント

NicoNicoViewer ver 1.0で動画が説明文だけいっぱいに表示されてしまう時の対処法


どうも、mrtskaです。

NicoNicoViewer 1.0で動画を再生しようとするとこうなる方、いると思います。

これはbeta版が作った設定ファイルが悪さをしているのが原因です。

対処方法を2つ書きますので好きなほうでお願いします。

v1.01にアップデートしてから実施してください

 

ファイルを弄るのは面倒という方

設定画面で設定を初期化するボタンを押してください。

設定は初期化されますが、これで解消します。(ver1.0で追加したNGフィルターは別の領域に保存しているので設定を初期化しても消えません)

 

 

以上です。

 

設定は残したい方

設定画面を開き、”設定ファイルがあるフォルダを開く”ボタンを押します。

NicoNicoViewerを閉じます。

user.settingsファイルをテキストエディタで開きます。

テキストエディタの検索機能などで”Grid”と検索すると”GridLength”という項目が見つかりますので、このValueの値に入っている*を消します。

保存して閉じます。

 

 

以上です。

カテゴリー: 未分類 | コメントする

WPFでViewを今のウィンドウとは別のウィンドウに表示させたい時


WPFでデスクトップアプリケーションを作っていてこのViewを別のウィンドウにも表示したいなと思うことがあります。

大抵の場合はMVVMですとViewModelをもとにViewをDataTemplateとかで紐付ければOKなのですが、そんなに簡単にやらせてくれるコントロールばかりではないですよね。

例えばWebBrowserコントロールとか。

現在WebBrowserコントロールで表示しているものを別のウィンドウで表示したいとなった時に非常に悩みます。

1483339947316

例えばこのNicoNicoViewerのWebBrowserコントロールの部分をフルスクリーンのウィンドウに移動したいときなど。(※画面は開発中のものです!)

DataTemplateだとフルスクリーンにした時にWebBrowserの初期化処理が走って一からロードし直しになってしまうので困ってしまいます。

何かいい方法な無いか考えて私が試行錯誤した結果

※ここではMVVMインフラにLivetを使用しています

ViewModel側にWebBrowserのインスタンスをもたせ

こんな感じでContentに直接WebBrowserコントロールをバインドすればうまいこと表示されます。

次にフルスクリーン側のViewでも上と同じXAMLを書いてフルスクリーンのViewを表示すれば

1483340995083

もとのウィンドウからはWebBrowser部分が消えてフルスクリーン側に行ってくれました。

もとに戻す時は

と一度WebBrowserプロパティにnullを代入してから再度同じインスタンスを代入するともとの位置に戻ってくれます。

この辺もうちょっとなんとかならないかな・・・

 

WebBrowserコントロールではなく普通のUserControlでも同じように書けば動きます。

どうしてもViewを同じインスタンスでないと困るという時は役に立つかもしれません。

 

ただ

 

そのViewにPopupコントロールが含まれていると話が変わってきます。

Popupが含まれているとフルスクリーンにして戻ってきた時にIsOpenがtrueになっても表示されなくなってしまいます。

原因はさっぱり分からないという・・・

私の場合、WebBrowserコントロールと一緒にVideoControllerというViewも一緒に移動させているのですが、フルスクリーンから戻ってきた時にVideoControllerにあるPopupが一切反応しなくなってしまいました。

解決策としては

このようにフルスクリーンとそうでない時のプロパティを分けて別々にバインドさせればPopupも正しく動きました。

訳わかめですね。

WPFでこんなことするやつおらんやろwって感じはありますがggっても全然見つからなかったので記事にしてみました。

他にいい方法があるよ!という方はぜひ教えてください。

 

 

カテゴリー: C#, WPF | コメントする

NicoNicoViewer #11


どうも、mrtskaです。

久しぶりのNicoNicoViewer記事です。

皆さんもご存知だとは思いますが、現行のbeta 0.943、いろいろとお粗末な感じになっていて申し訳無さしかないです・・・

いや~、自分でも動画を見る時にこのbeta 0.943を使っていますが作っている本人の私も「これはひどい」と。

今日までたくさんの不具合報告などのコメントを頂いてそれを元に少しずつ直していこうと思っていたのですが・・・

あまりにアチコチで不具合が出ていたので、「これ・・・1から作り直したほうが良いのでは・・・?」と思いはじめました。

もともとNicoNicoViewerは私がWPFの勉強をするためにじゃあ何作ろうかと考えたところ、ニコニコを見るやつを作りたいと思ったのがきっかけです。

当然現行のNicoNicoViewerには当時のコードが結構残っています。

今見たら「なんだこのクソコードは」と吐き捨てたくなるようなものです。

勉強がメイン(今でも)なのでそのクソコードも勉強には必要ではあったのですが、今はもう必要ありません。

じゃあそのクソコードを書き換えればいいじゃないかと思うのですが、

もともと書いてあるコードを見ながら新しく書き直すというのは結構難しく、結局似たようなクソコードが出来上がってしまうのです。(経験談)

だったら1から作ったほうがクソコードはリプレース出来るし頂いた不具合報告を見ながら作っていけば良いものが出来るのでは? と。

 

というわけで現在私はNicoNicoViewer 2nd Generaion(仮称)を作っています。

Twitterでは少し画像を上げたりしていますが、いろいろと一新するつもりで作っています。

今まではマンスリーで更新できれば良いなと思っていましたが今回はちょっと無理そうです。

前回はこのマンスリー目標が目前で勝手に焦ってたのが悪かったですね。

急ぐとクォリティは落ちるのが良くわかりました。

 

 

次回の更新日は全くの未定ではありますけど開発はしてます。

まだGitHubにプッシュしてませんが。

ここのところ休みは9割くらいNicoNicoViewerに時間を割いてます。

私が使いたいからですね。私が使わなくなったらとっくに開発も止まってると思います。

 

2nd Genは完成度が高くなるように丁寧に作っていますので時間はかかりますが良いものが出来るんじゃないかなと思います。

 

あと。

 

このブログへ沢山のコメントがついて嬉しい限りなのですが、中には私が見て気分が悪くなるようなコメントもちょくちょくあります。

だいたいそういうコメントをする人って名前の所に「匿名」と入れている人なんですよね。

名前を匿名にされると同じ人のコメントでも別の人かと思ってしまいますし匿名を良いことに好き放題書く人も少なからずいるようです。悲しいことですが。

 

今まで名前のところを匿名と書いていた方、別に本名を書けと言っている訳ではありません。

適当なハンドルネームで構いません。メールアドレスもテキトー又はブランクで構いませんので匿名以外にしませんか。

今後名前が匿名の人のコメントは自動的にゴミ箱行きにする処理を追加する可能性もありますので。

(まあ匿名と言っても2chと違ってIPバレてますからあんまり匿名感無いですけどね)

 

NicoNicoViewerの2chスレがあるのは知っていますが私は書き込む気は一切ないのでよろしくお願いいたします。見てはいますけどね。

そもそも2chじゃ私の書き込みと証明できないですし。

 

話がバラバラで読みづらい感じになってしまいましたが、書きたいことは書きました。

2nd Genでは内部構造を大幅に変更する予定なのでおそらく現行のバージョンの自動アップデート機能ではアップデート出来ない可能性が高いのでリリースができ次第Viewer内更新履歴を書き換えたいと思います。

では、長くなってきましたのでこの辺で。

次回の更新日は未定ですがいつか良いものが出来るようにしたいと思います。

 

ではでは。

 

 

カテゴリー: NicoNicoViewer, WPF | コメントする

NicoNicoViewer #10


どうも、mrtskaです。

 

beta 0.92を公開して少し経ちましたが、なんとか動いている感じですかね。

最近ニコニコが100MB以上の動画を上げられるなどと脱Flashを進めていますが、NicoNicoViewerはPC版ニコニコが脱Flashを終えたらhtml5化しようかなと思っています。(思ってるだけです)

 

今回のアップデートでは下記の通り。

  • WebViewのタブ化
  • 各種ページにコンテキストメニューを追加
  • コメントコマンドのNG機能
  • バグ修正

ですかね。

beta 0.91にニコ生のガバガバプロトタイプが開けてしまう不具合があったりなどなかなか酷かったですが、今でもバグはちらほらありますね。

 

WebViewのタブ化ですが、結局Chromiumは使わずWPFのWebBrowserで実装しました。

1471966876006

ただ、IEのコンポーネントを使っていてUIスレッドでしかWebBrowserを操作できないのでタブを閉じる際に時間がかかるとNicoNicoViewer全体がフリーズしてしまうことがあるかもしれません。

さすがにこればっかりは私にはどうにも出来ないのでWebViewは程々に使いましょうと言っておきます。

 

各種コンテキストメニューの追加については、ニコレポやランキングなどの検索結果を右クリックすれば分かると思います。

コンテキストメニューの中身も今後増やしていきたいと思っています。

 

あとはコメントコマンドをNGフィルターに登録できるようになったのとその他バグ修正ですね。

バグ修正の内容は更新履歴を見ていただくとして。

 

今後ですが、とりあえずは新規機能追加はほどほどにバグ修正、コードのリファクタリングを進めていきたいと思っています。

検索周りがガバガバなのもなんとかしないとですし。

ちなみにニコ生を正式実装するまでbetaは取れません。

NicoNicoViewer 1.0になったらきっとニコ生も見れるようになってるはず。

 

余談ですが、テスターの秋雨さんがNicoNicoViewerの説明書を書いてくれました。

NicoNicoViewerのコマンドと設定項目まとめ – Akisame’s Diary

 

今後解説などはViewer内で完結するようにしたいと思っています。

 

ではでは。

 

 

 

 

カテゴリー: 未分類 | コメントする

NicoNicoViewer #9


どうも、mrtskaです。

 

beta 0.9をリリースしてからだいぶ経ってしまいましたが今更0.9のいろいろを書こうかなと。

 

今回のアップデートの一番の機能はNGフィルターですかね。

1468846294304

コメントを指定したフィルターで弾くことが出来ます。

ここに指定されたフィルターに引っかかったコメントは一覧にも表示されません。

私は特に使ってないですが需要はあるみたいですね。

赤文字NGなどは実装してませんがあったほうが絶対良いですよね。次回実装できるかな。

 

ランキングを独自UIにしました。

これは便利なのかな?私はそもそもランキングを見ないのでなんともいえませんが。

1468846100773

でもなかなかいい感じに出来たと思ってます。

見たくないカテゴリのランキングは設定で消せますし。

1468847671290

このUI作るの大変でした。

ひたすらチェックボックスを作る作業はさすがに辛いものがありましたね。

 

後はWebViewが追加されたり修了時のダイアログが出たり(設定で消せます)など。

バックエンドでは設定ファイルの置き場所が変わって%APPDATA%\SRNicoNico\user.settingsにあります。

中身はただのJsonですけどね。

 

次回はWebViewをなんとかしたりコンテキストメニュー(右クリックのアレ)を増やしたりしたいとおもってますがWebViewがちょっと問題ありで考え中です。

前々から言ってましたがWPFのWebBrowserはクソ!!!!!!!!!!!!!と。

中途半端なんですよね。ほんと。

ページ移動しても移動したというイベントが飛んできたり飛んでこなかったり。

 

なのでやっぱりChromiumを使おうかなと。

そのほうがいろいろ捗ると思いますし。

ということで次回のアップデートbeta 0.91はChromium導入になるかもです。

サイズがかなり大きくなるけど致し方ないですね。

 

それでは今回はこの辺で。

次回は9月に入る頃を目標に・・・

 

 

ではでは。

 

 

カテゴリー: C#, NicoNicoViewer, WPF | 6件のコメント

デレステイベントのまとめページを作った


どうも、mrtskaです。

 

勉強がてらこんなページを作ってみたのですがUIは見た目は置いておいていい勉強になりました。

https://mrtska.net/deresute/slstageevent

 

前は固定ページにどんどん書いていたのですがどんどん長くなる上に一度ページをロードするのに40MB近く通信が発生しちゃうんですよね。

PCならまあいいかもですけど従量制課金接続のモバイルネットワークとかでやったら困っちゃいます。

友人氏からはイベント事にページ分ければいいのではと言われたのですがそれだと30投稿近くしないといけなくなるしNicoNicoViewer関連の投稿も埋もれそうな気がしてなんかなーと思っていたのです。

 

ここからはわりと技術系な話。

最初はPHPでapi的な物を作って書こうとしたのですがPHPを見たことはあったけど書いたことはなかった私にとっては苦痛でしかなく特に配列関連の訳ワカメな仕様と格闘して10分。

別の方法を探そうと。

 

そして見つけたのがASP.NET Core。

 

なんとこれLinuxでも動いちゃうという。

若干チート感が拭えませんが勉強がてら使ってみることに。

 

Visual Studioでプロジェクトを作ってC#を書いてサーバーにアップロードしてdotnet runするだけでOKとかいうやっぱりチートなものでした。

インストールさえ終わってしまえばさほど敷居も高くないのでとても良かったですね。

将来何か作るときに使うかなと。

 

カテゴリー: ASP.NET, C# | 2件のコメント

NicoNicoViewer #8


どうも、mrtskaです。

前回の#7から4ヶ月も経ってしまいましたがなんとか更新は続いています。

やっとの思いでNicoNicoViewer beta 0.8をリリースしたわけですが、ユーザー数がかなり増えてきて嬉しい限りです。

今回のbeta 0.8ではやっつけでランキングを実装しましたがホントに表示しただけなんですよね・・・

1465486639628

独自のUIとかも考えましたがランキングを全く使わない私にはどんなUIが使いやすいのか全く分からず断念。

本当はNG機能も0.8で付けたかったのですが、起動しない不具合の修正があったので0.9に持ち越しにしました。

4ヶ月間でマイナーアップデートを重ねてきましたがUI的には全然マイナーアップデートじゃないんですよね。

コメント欄とか出てきましたし。

いつになったらbetaじゃなくなるのかよく分かりませんが正式版ではニコ生にもちゃんと対応したいですね。

まあ、今はbeta 0.9に向けてNG機能などを頑張って実装したいと思います。

 

ではでは。

カテゴリー: C#, NicoNicoViewer, WPF | 2件のコメント

1.9でICustomModelLoaderを使い独自のモデルを追加する


初めてのMinecraft Modding記事です。

この記事に書いてあることが全て正しいとは限りません。今後のアップデートで変わる可能性もあります。

ICustomModelLoaderは私が斜面MODを作る時にJsonファイルを作りたくないがために使用したものです。

やりたいことによってJsonと使い分けられればいいなと思います。

 

まずはICustomModelLoaderを実装するクラスを作る。

〇〇ModelLoaderとか〇〇Loaderとかの方がいいですかね。

唯一必要なblockstateのJsonを作ります。

 

ハマリポイント①の解説。

acceptsメソッドはこのモデルローダーで処理出来るモデルかどうかを判定するわけですがMODIDが自分のものだったらすぐにtrueを返して良いわけではありません。

このacceptsメソッドのmodelLocationはさまざまな形で呼ばれます。このacceptsメソッドでtrueを返して良いのは今回の場合では.modelで終わっているmodelLocation.getResourcePath()でしか返してはいけません。

具体的にはどのようなmodelLocationでacceptsメソッドが呼ばれるのとかというと、

・cornerblock

・models/block/cornerblock.model

・models/item/cornerblock

などです。.modelで終わっていない文字でtrueを返してしまうと面倒くさい処理をバニラに丸投げ出来なくなってしまうので注意。

 

ICustomModelLoaderを登録する。

ちらほらCoreなんてクラスが出て来てますがお察しの通り@Modがあるクラスです。

クラス宣言などは省略。

 

IModelを実装する

まずはサンプルを。

 

bakeメソッドでモデルを形成する感じです。このクラスにモデルの頂点データとかを持たせておくと便利かもしれない。

で、BakedSampleModelはテクスチャも頂点情報も揃ったモデルってことですかね。

 

getQuadsで適切なList<BakedQuad>を返せばブロック、アイテム共にいい感じに描画されるんじゃないかなと。

BakedQuadについてはmodding wikiの1.8のICustomModelLoader利用のgetFaceQuadsメソッドを見てください。

 

最後に

随分雑になってしまいましたが1.9の斜面MODのソースがgithubにあるので参考になるかは分かりませんが良かったらどうぞ。

 

ではでは。

余談

・1.9で草ブロックみたいなことをする方法

 

これをpostInitあたりでやると良いっぽい。CornerBlock.instanceは自分のMODのブロックに読み替える。

カテゴリー: Java, Minecraft | コメントする