読者です 読者をやめる 読者になる 読者になる

みつろぐ

やれることはやってみる

いつでもAffectionな気持ちになりたい

これはゆゆ式AdventCalendar 2016 11日目の記事になります

本AdventCalendar初日にid:esuji5さんが取り上げてくださっているように新作OVAが2月22日に発売が決定、新OP/EDとキャラクターソングアルバムに加えてイベント開催決定と来年もゆゆ式な1年になると思うと胸が熱くなります。
d.hatena.ne.jp


さて、ゆゆ式といえばOP「せーのっ」で五臓六腑に染み渡る津田さんの歌声もいいですが、個人的にはすべてを忘れて脳汁だけが流れ続けるED「Affection」も好きです。
「せーのっ」を拝聴し続けるとすぐに歌いそうになってしまうため、今回はいつでもAffectionな気持ちになれるツールを作ってみました。
f:id:Mitu217:20161211220021p:plain

画面右下に表示されるデスクトップアイコン的なアプリとなっているため、少し容量は思いですがぜひ使ってみてください。zipファイルを解凍してでてきたAlwaysAffectionというファイルが実行ファイルとなります。
AlwaysAffection


以下は作成記録です。NW.jsの導入方法やビルド方法については今回触れません。

  1. まずはAffectionを拝聴しながら素材をゲットします

f:id:Mitu217:20161211220837p:plain

  1. いい感じにGIFへ編集します。今回はあまり時間がなくPhotoShop先生に頼りきってしまいましたので、あとで調整したい…

f:id:Mitu217:20161211221022g:plain

  1. NW.jsでGIF画像を表示するだけのアプリを作ります
{
	"name": "AlwaysAffection",
	"main": "index.html",
	"version": "1.0",
	"window": {
			"width": 200,
			"height": 250,
		"icon": "icon.png",
		"transparent": true,
		"toolbar": false,
		"frame": false,
		"always_on_top": true,
		"show": false
	}
}
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>いつでもAffection</title>
</head>

<style>
html {
  height: 200px;
  width: 200px;
}
body {
  margin: 0;
  height: 100%;
  width: 100%;
  background-color: rgba(0, 0, 0, 0.0);
  color:#fff;
  -webkit--app-region: drag;
}
.content {
  position: absolute;
  bottom: .25rem;
  right: 0rem
}
</style>

<script>
  var gui = require('nw.gui');
  var win = gui.Window.get();
  win.moveTo(
    window.screen.availWidth - win.width,
    window.screen.availHeight - win.height
  );
  win.show();
</script>

<body>
  <div class="content">
    <img src="Affection.gif" width="200" height="200" border="0" align="center" hspace="10" vspace=10 loop=infinite ondragstart="return false;"  oncontextmenu="return false;">
  </div>
</body>
</html>
  1. あとはビルドをして実行すれば完成!

f:id:Mitu217:20161211221909p:plain


動きがそこまで激しくないため常に表示しても邪魔に感じないので、さすがゆゆ式というところです。


雑な記事になってしまいましたが、以上となります。
明日はid:masaybloveさんで4コマ漫画を書いてくれそうな雰囲気で非常に楽しみです。よろしくお願いいたします。

ThinkPadx260とWigigDockの使用感とか

先日購入したThinkPadX260とWigigDockの使用レポート的な記事です。購入の経緯などは過去記事を参照ください。

mitu217.hatenablog.jp


ざっくりと良かった点、気になった点は次の通りです

ThinkPadX260

  • 画面サイズは小さくなったがそこまで気にならない
  • キーボードとトラックポイントは安定している
  • SDカードEthernetが直接させる安心感
  • (3セルだと)バッテリーの持ちがイマイチ
  • 指紋認証の精度がイマイチ…

WigigDock

  • 電源Onから5秒前後でPCと接続される
  • USBも自動で接続されるので便利!
  • 接続中のバッテリー消耗率は気にならない
  • ファンの音が気になる
  • 出力できるのはHDMIかDPのどちらか
  • 4k出力ができない(2kまで)


ThinkPadX260については以前使用していたMaxBookAir(Mid2013)との比較になります。
購入の際、新型MacBookProも候補ではありましたが写真の取り込みやらスパイのOS焼きなどでSDカードを頻繁に使う私としては直接読み込みが出来るのは大きな利点だったと感じています。まだUSBtypeCのケーブルはハードルが高い…
ただ今回失敗したと感じた点はバッテリーのセル数を増やさなかったこと、指紋認証をつけたことです。前者は今後バッテリーを買い足せば良いので問題ないのですが、後者はせっかくログインなどに使用できるのに残念で仕方がありません。今後アップデートなどで精度が改善される可能性もありますが、今のところオプションとしてつける利点は低いかなと感じました。

WigigDockについてはすごく未来を感じました。
現在メインモニタにDELLU3415Wを使用しているため、デスクトップ機とキーボードやマウス、スピーカーの共有をモニタ側でおこなっているのですが、USBケーブルをDockに接続しただけで無事に動作しました。
これにより、Dockの電源さえつければモニタ拡張,キーボード,マウス,スピーカーが接続された環境が即座に完成するようになりました。
前述させていただいた気になる点についてはファンの騒音だけは気になるところですが、他は仕様と割り切れば気にせず十分利用が可能だと思われます。


手元に到着してから約10日ほど経過し、ハードウェアというよりはWindowsそのものに疲弊することはありつつも、下手に新型MacBookProのあのペタペタキーボードを使うよりは満足度は高かったのかなと感じていますが。現時点でインターネットにあるレビューを見る限り「慣れれば使える」というコメントが多く、全く褒めてる記事が見当たらないですからね…
以上、簡単な使用感レビューでした。

ThinkPadX260購入 + おまけ付き

これまでUnity以外の開発はMacBookAirを使っていたのですが、バッテリーが充電されにくいなどの現象が頻発するようになり買い替えを検討していました。

タイミングよく新型MacBookProが発表されるも、「あんだかな~」という気持ちだったので思い切ってWindowsにしてみようとThinkPad購入に踏み切りました。

以下、購入したスペックとかとか
f:id:Mitu217:20161116235453p:plain

ちょうど42%OFFクーポンを利用できたので、最終的には138,748円ぐらいでした。
カスタマイズ時にはHDDを選択し以下のSSDに換装しました。新品を即日換装するのはドキドキです。
Amazon CAPTCHA


これまでより画面が小さくなるので、慣れるまで大変かなと考えていたのですがいい意味で裏切られました。

同時にWigigDockも購入したため、後日それらのレビューもしていきたいと思います。


f:id:Mitu217:20161117000752j:plain

MusicBeeでNowPlayingをつぶやく、アートワークも出力します

自宅では音楽管理にMusicBeeを利用しています。
MusicBeeは機能が充実しているのに加えて、デフォルトで綺麗なテーマが多数用意されてるのでおすすめです。

MusicBeeでは「Social Networks Status」というプラグインを使えば、簡単にNowPlayingをTwitterFaceBookなどに投稿することができるのですが、いかんせんテキストのみになってしまうため非常に残念です。


そこで、プラグインを改造してアートワークを同時に呟けるようにしてみました。まずは以下のサイトを参考にプラグインの導入をおこなってください

NetskyのPC、音楽なんでもblogMusicBee Plug-in for twitter MusicBeeで再生中

  1. ここのDownload欄のSourceから、最新プロジェクトをDL
  2. 解答したフォルダにあるSocialNetworksStatus.slnをダブルクリックしてプロジェクトを開きます
  3. SocialNetworksStatus.csを次のように書き換え
  4. メニューの「BUILD/Build Solution」からビルド
  5. 生成された「mb_SocialNetworksStatus.dll」をProgramFile/MusicBee/Pluginsにコピー
// ソースファイルの先頭に追加
using System.IO;

// TwitterServiceクラス内
public bool updateStatus(string status, string imagePath = "")
{
    try 
    {
        if (imagePath == "") {
            TwitterStatus result = service.SendTweet(new SendTweetOptions
            {
                Status = status,
            });
        } else {
            using (var stream = new FileStream(imagePath, FileMode.Open))
            {
                var result = service.SendTweetWithMedia(new SendTweetWithMediaOptions
                {
                    Status = status,
                    Images = new Dictionary<string, Stream> { { "artwork", stream } }
                });
            }
        }
    } 
    catch (Exception ex) 
    {
        if (ex.Message != "Status is a duplicate")
            MessageBox.Show(ex.Message);
    }

    Plugin.MbApiInterface.MB_SetBackgroundTaskMessage("");

    return true;
}

// Pluginクラス内
public void updateStatusEventHandler(object sender, EventArgs e)
{
    string status = GetStatusText(MbApiInterface.NowPlaying_GetFileUrl());

    //Facebook
    if (facebookService != null) {
        MbApiInterface.MB_SetBackgroundTaskMessage(UpdateStatusCommandSbText);
        facebookService.updateStatus(status);
    }
            
    //Twitter
    if (twitterService != null) {
        MbApiInterface.MB_SetBackgroundTaskMessage(UpdateStatusCommandSbText);
        twitterService.updateStatus(status, MbApiInterface.NowPlaying_GetArtworkUrl());   
    }

    //VKontakte
    if (vkService != null) {
        MbApiInterface.MB_SetBackgroundTaskMessage(UpdateStatusCommandSbText);
        vkService.updateStatus(status);
    }
}

これでアートワーク付きのNowPlayingがつぶやけるようになるはずです。


# 参考サイト
Tutorial: Creating A Simple Plugin - MusicBee Wiki - Wikia
Post message with image on twitter using C# - DotNetFunda.com

【Unity】GameView上のマウス座標の取得方法

Unityエディタ上でタッチイベントをデバッグするときに、現在ではデフォルトでタッチがマウスのクリックイベントとしてシミュレートされてしまうのでInput.simulateMouseWithTouchesのパラメータを変更する形で分離する方法を紹介しました。
mitu217.hatenablog.jp

ただ、なぜかシミュレートをDisableにしてもInput.mousePositionがタッチイベントに上書きされてしまうので、Unityエディタでデバッグ中の時だけ回避できるような処理を実装しました。Unityエディタで実行中の時のみcurrentMousePositionInGameViewを参照するようにすれば大丈夫かと思います。

#if UNITY_EDITOR
private Vector2 currentMousePositionInGameView;
void OnGUI()
{
	var x = Event.current.mousePosition.x;
	var y = Screen.height - Event.current.mousePosition.y;
	currentMousePositionInGameView = new Vector2 (x, y);
}
#endif 

【Unity】タッチ入力をデバッグする時の注意点(Input.simulateMouseWithTouches)

注意点というより知らないとハマりそうなことメモ

Unityではデフォルトで"Input.simulateMouseWithTouches"の値がEnableに設定されています。

"Input.simulateMouseWithTouches"


Input.simulateMouseWithTouchesは名前の通り、タッチ入力をさもマウス入力の様にシミュレートするパラメータですが、様々なプラットフォーム(マウスとタッチが混在する環境)で対応する場合はDisableに設定したほうがいいでしょう。

Editor上に設定項目は見当たらないのでプログラムから設定します。AwakeやらStartで設定してあげればいいでしょう。

// Enable
Input.simulateMouseWithTouches = true;

// Disable
Input.simulateMouseWithTouches = false;

バグなのかどうかわかりませんが、次の手順で操作すると上手くタッチ座標が取得できません

Remoteでタッチ->マウスで左ボタンを押す(座標がおかしい)

マウスで左ボタンを押す->Remoteでタッチ->マウスで左ボタンを離す(座標がおかしい)

[追記]
エディタで実行中の時のみ回避できる処理を実装しました。
mitu217.hatenablog.jp

今年買ってよかったもの

年末でいろいろとやる気が起きないので、今年買ってよかったものをまとめてみます。

kindle Paperwhite(第六世代)

今年1,2番を争うレベルで生活を破壊してきた商品。
確かセールをやってたおかげで安く買えたし、本は読みやすいし、もう最高かよって感じです。
普通のkindleもあるかと思いますが、断然paperwhiteの方がいいと思います。
来年はジャケ買い(主にまんがタイム系)を控えたいところ…

Pebble Time

www.pebble.com

これまで腕時計をつける習慣がなかった私が身に着けるようになった腕時計。
通知をこれで見れるので、スマートフォンをポケットから取り出す回数も最低限になりましたし、友人が作ったSwarmのアプリを利用してシュッとチェックインできるようになりました。
最近は頻繁にセールをやってるそうです。

Filco Majestouch Minila Air (赤軸・USキー)

FILCO Majestouch MINILA US67キー 赤軸 FFKB67MRL/EB

FILCO Majestouch MINILA US67キー 赤軸 FFKB67MRL/EB

リンク先はJPキーですが購入したのはUSキーです。
Bluetoothでデスク周りからケーブルを排除でき、なおかつコンパクトなので最高って感じのキーボードです。
当初は所持していたBluetoothアダプタとの相性がイマイチだったせいかブツブツと通信が切れてましたが、おすすめされたアダプタに変更したら通信が切れることもなくなってさらに使いやすくなりました。

PLANEX Bluetooth USBアダプター

PLANEX Bluetooth USBアダプター Ver.4.0+EDR/LE(省エネ設計)対応 BT-Micro4

PLANEX Bluetooth USBアダプター Ver.4.0+EDR/LE(省エネ設計)対応 BT-Micro4

前述したおすすめされたBluetoothアダプターです。
他のBluetooth製品も繋いでいますが、どれも通信が途切れることが少なくなったような気がする?

THERMOS 真空断熱マグ

THERMOS 真空断熱マグ 0.28L ブラック JCP-280C BK

THERMOS 真空断熱マグ 0.28L ブラック JCP-280C BK

今年の春ぐらいに購入して、一年を通して生活を支えてくれた気がします。
洗い方が悪かったのか持ち手の部分の塗装が剥げてきてしまっていますが、これからも長くお世話になりそうです。

ゆゆ式 Blu-ray BOX

ゆゆ式 Blu-ray BOX

ゆゆ式 Blu-ray BOX

ゆゆ式はいいぞ