はかせのラボ

私の頭の中を書いていく雑記ブログです

雑記 さっぽろ雪まつりに行ってきたぞー!

あいさつ

お久しぶりです。はかせです。
今日2/11日は雪まつり最終日。
ということで行ってきたので今回はそのレポ記事です。

札幌雪まつりとは

2月上旬頃に開催される北海道最大規模の祭りです。
色んな雪像があり、
それらを見ながら飲み食いしたりします。

私は地元なのでイマイチ実感ないですが、
このさっぽろ雪まつりなんと世界三大雪まつりらしく
毎回200万人もの人が全世界からやってくるそうですよ。

雪像

自分が見てきた雪像を貼っていきます。
とはいえ全部ポケモンなんですけどね・・・

f:id:hakase0274:20200211191240j:plain
アローラロコンですね。
撮った時後ろに日があって逆光でかなり見づらいですが、
クオリティはものすごかったです。
アローラロコン自体かなり雪っぽいので
雪像との相性ばつぐんですね。

f:id:hakase0274:20200211191238j:plain
ガラル御三家ですね。
確か市民制作だったと思います。
御三家の中ではヒバニー推しなので
センター取ってて嬉しい気持ちになりました。

f:id:hakase0274:20200211191234j:plain
カビゴンアローラロコンピカチュウですね。
ちっこい二匹の後ろにカビゴンがいると
どことなく保護者感がでますね。

f:id:hakase0274:20200211191231j:plain
名探偵ピカチュウですね。
雪でできてるからか本家より体調が悪そうに見えますね。
でもなぜかかわいい。

食べ物

雪まつりというか祭りと言えば美味しい食べ物が必須です。
今回の雪まつりでは食の広場とアイヌの食文化体験の二つの
大きな屋台の集まりがありました。

今回は昼ごはんも兼ねてという感じだったのでラーメンとか
そういう重めのものは食べてませんが、
美味しかったので食べたものを紹介します。

f:id:hakase0274:20200211192614j:plain
ザンギです。
まぁ鶏肉好物なら大抵の人が美味しく食べれると思います。
ちなみに唐揚げとの違いはわかりません。
もはや唐揚げの北海道弁がザンギなんじゃねって感じです。

f:id:hakase0274:20200211192618j:plain
鹿肉ソーセージです。
アイヌの食文化体験のところで気になったので買ってみました。
食べた感想は美味しかったです。
豚のソーセージと違って溢れるような油はないんですが、
おかげでソーセージの割にはさっぱりと食べることができました。

それに俗にジビエというものである鹿肉を使っているからか
とても肉肉しく感じました。

油っぽいものは苦手だけど肉肉しいものが食べたいって方には
鹿肉料理はおすすめですね。

f:id:hakase0274:20200211193509j:plain
ホタテのバター醤油焼きです。
もうこれは外しませんね。
安定と信頼の美味しさでした。

ホタテ苦手な人も一口食べてみることを勧めます。
北海道のホタテは甘くておいしいですよ。

f:id:hakase0274:20200211192626j:plain
最後は体が冷えてきたのでホットチョコレートです。
甘いものはそこまで得意じゃないんですが、
ホットココアとかホットチョコレートとか温かいものならいけるんですよね。
不思議。

ReoNaさんのライブ

特別調べていったわけではないんですが、
私が行ったときたまたまReoNaさんのライブが始まりまして、
参加してきました。

私はSAO関連の楽曲しか知らなかったのですが、
ハッピーシュガーライフのエンディングも歌っていたんですね。

私自身こういうライブに参加するのは初めてだったんですが、
ライブっていいもんですね。
アイドルとかのライブに遠くても行く人の気持ちがなんとなくわかった気がしました。

うまく言葉にできないんですけど、
音が体の芯まで響いてくる感覚と
それを会場にいる人たちで共有する感覚には
遠くから金払ってでも行くに値する価値を感じました。

あとがき

今回はさっぽろ雪まつりに参加してきました。
予想通りの驚きもあれば予想外の驚きもあって
とても楽しかったです。

なんやかんや生まれてからずっと北海道に住んでますが、
一回も行ったことがなかったんですよね。
特に何か嫌な理由とかがあったわけでもなく。
ただいつでも行こうと思えば行けるからいいやって感じでした。

今回は来年から何時でも行ける状態ではなくなるので
行っとくかと軽い感じで行きましたが、
これならもっと前から行っておきたかったなぁと思いました。

来年以降この時期に北海道を訪れることがあれば
是非参加することを勧めます。

それでは今回はこの辺でノシ

C# Unityでもコンソールアプリでもタイマイベントを簡単に作れるSystem.Timers.Timerの紹介

あいさつ

新年あけましておめでとうございます。
はかせです。

今回はC#が使える環境ならばほぼ全てでタイマイベントをサクッと作れる
System.Timers.Timerの紹介です。

使い方

using System.Timers;

private Timer timer;

//タイマーの設定
timer = new Timer(1000.0);
timer.Elapsed += TimerElapsed;

//タイマー開始
timer.Enabled = true;

//タイマイベントの処理
private void TimerElapsed(object sender, ElapsedEventArgs e)
{
}

Timerクラスのインスタンスを作ってそのインスタンスのプロパティを
設定していくだけで簡単にタイマイベントができます。

Intervalがタイマイベントの間隔を設定するプロパティです。
値はミリ秒単位で設定します。

Elapsedは設定した時間が経過したとき呼ばれるイベントです。
ここにメソッドを追加することでタイマイベントができます。

Enabledはタイマーを動かすかどうかを設定します。
Enabledがtrueになった時から時間計測が始まります。
逆にタイマーを止めたいときはこの値をfalseにすればいいです。

TimerクラスはIDisposableを実装しているので、
使わなくなったらDisposeをお忘れなく。

注意

Timerクラスを用いて処理を呼び出したとき
その処理はワーカースレッドで処理されます。
つまりUnityAPIをTimerクラスのイベントで呼び出すことはできません
(ISynchronizeInvokeオブジェクトをメインスレッドで作成しアタッチすれば使えそうな雰囲気ですが、ISynchronizeInvokeはSystem.ComponentModel下のものなのでUnityと相性がいいとは思えないです)

当然解決策もあります。
一番メジャーだと思われるのはSynchronizationContextを使ったやり方ですね。
下記の記事でやっています。
hakase0274.hatenablog.com

ただUnityAPIを使う用事があるのならばTimerクラスではなく、
コルーチンを使うべきだと思います。

どういう時に使うか

私はUnityで使うならデバッグ用として割り切って使うのがいいと思います。

見てもらったようにほぼプロパティ設定だけで動きますし、
ON/OFFを動的に切り替えたり、処理を付け足したり外したりもできます。

なので一定間隔でインスペクタだと見づらい情報をテキストに書きだしたり、
指定時間内に何がどれだけ呼ばれたかとかをログとして出したりと言った使い方ですね。

もちろんコルーチンやasync/awaitでも実現できますが、記述量が違います。
何より脳死でも組めるのが良きです。

こういったデバッグ用の機能って色々欲しくなるんですけど、
本番では外すので膨大な記述や依存があると外すときめんどくさいです。
かといってライブラリ依存無しとかでやろうとすると
開発速度が遅れたり、変なバグの温床になったりします。

TimerはSystem下にあるので依存は増えないですし、
記述量も少ないので実装楽ちんです。

あとがき

今回はSystem.Timers.Timerのご紹介でした。
元々コンソールアプリやWindowアプリ作る時に使ってたんですが、
Unityでも使えるんじゃねと思い使ってみたら行けたので紹介してみました。

個人的にこういう脳死で使えるクラスは大好きなので、
よく使いますし、よく作ります。
(できているとは言っていない)

変なことやろうとすると「なんでそんなことするの?余計なお世話だよ!」ってなるんですが、
それ以外だと「そんなことまでやってくれるの?神!」ってなります。
手がねじ切れるほどの手のひらクルーですねw

何かこんな感じで楽に使えてちょっと便利みたいなクラスや機能があったら
是非教えてください。

それでは今回はこの辺でノシ