残像ブログ

残像だった

Blender2.64で追加されたワイヤーフレームツールの使い方


Dev:JA/Ref/Release Notes/2.64/BMesh - BlenderWikiにて2.64で追加された機能の一覧を見ていたところ、大抵はよくわからなかったのですがワイヤーフレームツールと言うのが気になって調べたところ超面白かったのでメモ。

どんなツールかよくわかる動画

こんな感じでメッシュを辺に沿って網状に変換してくれます。

使い方

網状にしたい部分を選択(もちろんオブジェクト全体でも良い)してEdit Modeにする。

Ctrl+Fを押してFacesメニューを表示し、Wire Frameを選択。

これで変換されます。

オブジェクトの一部だけを選択した状態だと、選択部分のみ網になる。

設定

適用直後のみ左側のツールメニュー下部に設定パネルが表示される(他のツール同様、この設定パネルは適用直後しか表示されないので注意)。

上のBoundary、Offset Even、Offset Relativeはよくわからん(Offset Even選ぶと網が太め、Offset Relativeだと細めになる?)
Thicknessは網の太さを設定する。あんまり太くすると使徒みたいになるので注意。

Replaceにチェックを入れた状態だと返還前の元の部分が消える。チェックを外すと元部分も残る。

Creaseにチェックを入れると、網の繋ぎ目の辺がピンクになる。この状態だと、Subdivision Surfaceした時にピンク色になっている辺には丸みが適用されない。


よって網目の四角が保たれた状態で辺部分のみ丸みができる。
左がCreaseチェックなし、右がCreaseチェックあり。

なおこのCreaseはEdit Mode時に適用したい辺を選択してShift+Eでカーソルを動かせばWire Frame関係無しに任意に設定できる(丸みの適用具合も調節できる)。

OMAKE

ワイヤーフレームツール使って作ったオブジェクトで壁紙的なもの作ってみた。

Google Driveの日本語化

こちらの記事を読みました。
無料でOCR(光学文字認識)したかったらGoogleDriveを試してみるといいかもね | 56docブログ
Googleさんすげー!とわけもわからず飛び付いたものの、Google Driveのページを開いたら英語が出てきたためアレルギーを起こし、「なんで私のGoogle Driveは英語なのよー!」と今日も情弱最前線は快晴。

再発を防ぐ為に日本語化設定をメモっとく(ただの設定変更である)。

英語を我慢しながらGoogle Driveのページを開き、Googleのいつもの設定ボタン(右上にある歯車(をクリック。
ドロップダウンリストから「Settings」を選択して設定画面を開く。

一番上にある「Language」で日本語を選択。せっかくなので「Time zone」でTokyoを選択しておいた。
ページ下部の「Save」ボタンを押して設定を保存する。

これで日本語になる。やったー!

なおOCR機能はまだ試していない。

ブックカバーをいくつか買った感想

いつの間にかブックカバーが増えてたので使ってみた感想を書く。
意外と売ってる場所や種類がなかったりして困る。

条件:しおりが付いている事、表紙が隠れる事
目的:本の保護および表紙を隠すこと
サイズは文庫〜A5

『美月幸房 』ブックカバー

読書好きのあなたに『美月幸房』ブックカバー 帆布製 文庫サイズ 緑

読書好きのあなたに『美月幸房』ブックカバー 帆布製 文庫サイズ 緑


サイズ:文庫判
買物といったらamazonと考えていた頃に1790円で購入(今amazon見たら1990円になってた)。いつものamazon箱にブックカバーだけ入っててシュールだった。
素材は布製。柔らかめでサラサラしてるので肌触りはいいです。耐水性もありそうな雰囲気
中央についてるしおりはよくあるリボンタイプではなさそうで、結構しっかりしてます。
悪い所は無いけがもうちょっと安い値段で同じようなの買えそうな気がする

Beahouseフリーサイズブックカバー


布にマジックテープが付いており、どのサイズの本でも使えるというのがウリの布
私は文庫や新書などに加えてA5くらいのを読む機会が多かったので色々買うのめんどくさくね?一個で済んだらラクじゃね?と思いamazonで購入しました。
が、これに1470円払うくらいならどっかで適当な布買って巻いたほうが良いわというレベルで買ったの後悔しました。
マジックテープの厚みでボコボコするし、なによりすぐずれちゃって頻繁にバックから出し入れしたり片手で持ったりするとズルッと脱げてしまうので持ち運びすると使い物にならない。
あと私の使い方が乱暴だったのか、しおり代わりのリボンの先がほぐれちゃって箒みたいになってしまいもう駄目って感じ。

キャンドゥのブックカバー


サイズは新書判
新書なんてそんな読まんだろうし100均のでいーやーとキャンドゥで購入。
完全ビニール製で意外と使いやすいけど、画像の通り両側に挟む部分があるので幅の調整がきかない。
なによりまず普通に透ける。
あと1,2ヶ月使ったらしおり部分がちぎれてやっぱり値段相応なんだなあと思いました。

カダケス・ブックカバー


サイズは新書判
上のキャンドゥブックカバーじゃやっぱ無理だし新書意外と読むし…となったので東急ハンズで購入。
布地がサラサラしててさわり心地はよい、生地は柔らかめ。内側はビニールっぽくなっているのできっと水も平気
しおりもちゃんと付いてるし割と安かった気がするので、とにかく普通のブックカバーほしいってなら丁度いい。

なんか名前とかわからん(UNITED BEES INC.とか書いてある)


サイズはA5判
東急ハンズで1575円で購入
A5サイズのブックカバーとか無いだろと思ったら普通にありました。
ハンズで見た時はどう見てもA5よりでけえ!ぶかぶかだったら困るんだけど!と思ってヒヤヒヤしながら買ったのですが、家帰って本はめてみたら丁度よかったです。
触った感じだと布地はかなりザラザラしてるんだけど、今まで買ったなかだと一番しっかりしてて高級感あるかも。

NUnitを使ってVisual Studioでユニットテスト自動化的なやつやる

必要な物

NUnitの用意

NUnitは.Netでテストするためのフレームワーク

ダウンロードする

2.6.0 : Series 2.6 : NUnit V2
色々あるけどNUnit-2.6.0.12051.msiというのがWindowsインストーラ

インストールする


インストーラを起動して操作してく

インストールのタイプを聞かれるところではCompleteを選択した

参照設定

Visual Studioを立ち上げてプロジェクトを作成する
[プロジェクト]→[参照の追加]で「nunit.framework」を選択してOKボタンを押下

コードを書く

テスト用のクラスを作成して[TestFixture]属性をつける
そのクラスの中にテスト用のメソッドを作っていき、各メソッドに[TestCase]属性をつける
属性を着けることによりNunitがテストを認識してくれる

using NUnit.Framework;

[TestFixture]
public class runTest{
	[TestCase]
	public void test01(){
		
	}
	
	[TestCase]
	public void test02(){
		
	}
}

[TestCase]属性には引数を持たせる事が出来る。持たせた引数は対象のテストメソッドに渡される
また、1つのテストメソッドに複数の[TestCase]属性を持たせる事が出来る(コレにより複数のテストケースを簡単に試せる)

[TestCase(2,4)]
[TestCase(3,8)]
public void test01(int 指数,int 期待値){
}

テストの成否はテストメソッド内でAssertクラスを呼び出して判定する
テストするメソッドに渡す引数(下記では指数)とそのメソッドに期待する値(下記では期待値)
AreEqualメソッドなら期待値と実際にテスト対象から帰ってくる値を比べて、同じならテスト成功、違ったらテスト失敗と判定する

[TestCase(2,4)]
[TestCase(3,8)]
public void test01(int 指数,int 期待値){
	Assert.AreEqual(期待値, べき乗.2のべき乗(指数));
}

テストの実行

一度コンパイルを成功させてからNUnitを起動する
メニューの[File]→[OpenProject]で今回作成したC#のプロジェクトのdllかexe(Visual Studioの各プロジェクトのフォルダ内のbin/Debug/にあるプロジェクト名と同名のファイル)を読み込む
読み込むと左側にテストがツリー表示される
テストを行いたい時は真ん中あたりのRunボタンを押す

テスト失敗の時

赤くなる

緑になる

C#でWAVEファイルを再生する

簡単なアラームを作りたかったので音再生ってどうやるのかメモ。
Windowsが用意してるデュン!とかの標準装備音も出せるみたいだけど、びっくりしそうなので今回は効果音を自作してWAVEファイルを再生させる事にした。

WAVEファイルの再生にはSoundPlayerクラスを使う

SoundPlayerクラスは .NET Framework 2.0以降(VisualStudio2005以降)で使える。

インスタンスの作成

コンストラクタは引数にWAVEファイルパスを指定するものとstreamを指定するものとか色々ある。

//ファイルパスを指定するもの
 System.Media.SoundPlayer player = new SoundPlayer(@"c:\test.wav");

パスを指定する時に「\」がエスケープシーケンスと認識されてしまうので、「\\」として回避するか、文字列の前に「@」をつけて文字列リテラルと明示的に書くとかなんとか

//streamオブジェクトを指定するもの
 System.Media.SoundPlayer player = new SoundPlayer(Properties.Resources.test);

WAVEファイルをリソースとして取り込んだ時(後述)に使える

再生

あとはメソッド呼び出して再生したり止めたりすればいい。
再生に使うメソッド

Play() 音声を再生。再生し終わらなくても他の処理ができる。
PlayLooping() 音声をループ再生。再生し終わらなくても他の処理ができる。
PlaySync() 音声を再生。再生し終わらないと他の処理ができない。
Stop() 再生を止める。

WAVEファイルの設置

ファイルパスから呼び出す場合

これはそのまんま好きな場所にWAVEファイルを保存すればいい

リソースに取り込む場合

以下の操作はVisual Studio 2005でのものです

メニューバーの[プロジェクト]→[(プロジェクト名)のプロパティ]を選択し、表示される一覧からさらに「リソース」を選択(下図の1)。
上のほうにある「リソースを追加」の右側にある▼を押して(下図の2)「既存のファイルを追加」からWAVEファイルを選択する。
(初期表示では文字列リソースの一覧になっているので図の「文字列」からリソースの種類を「オーディオ」に変更すれば「リソースの追加」を押して直でWAVEを追加できる)

取り込んだリソースにアクセスするには下記のようにする(test.wavを取り込んだ場合)

Properties.Resources.test

strmオブジェクトで参照できるようだ

はてダで記事にmp3再生プレイヤーを埋め込む

ブログとかでよくある記事に直接プレイヤーみたいなのが埋め込まれてるやつがはてダでも出来るのか気になったので、調べてみたら不通にヘルプにあったのでメモ。

参考:リンクを簡単に記述する(http記法、mailto記法) - はてなダイアリーのヘルプ

[http://URL.mp3:sound]

単にはてな記法のhttpを使えばよかった。
上のようにhttp記法で「:sound」とつければプレイヤーが表示される。
Download

ただし、これを使うには対象のURLがmp3で終わっている必要があるのでwavとかは無理だし、オンラインストレージの共有URLで末尾が拡張子にならない場合(SugarSyncとか)も使えなそう。

UnicodeとかUTF-8とかShift_JISとか色々複雑なので自メモ

下記の書籍を参考にしてます
この記事内の記述には私の理解不足により誤りがある可能性があるので、こちらの本を読むのがとてもおすすめ

プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)

プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)

そもそも文字コードとは

任意の文字を重複無く集めたものを文字集合という

その文字集合とビット組み合わせを対応付けたものを文字コードまたは符号化文字集合という

文字コードは収録している文字の種類・数、ビット組み合わせの桁数などの違いがある
ASCII、JIS X 0208Unicodeなどが文字コードにあたり、それぞれの特徴は以下の通り

文字コード 説明 ビット桁数
ASCII 英数字と一部の記号のみを収録した基礎的な文字コード 7ビット単位の1バイト
JIS X 0208 日本語で使用される主な文字を収録した文字コード。漢字はJIS第1・第2水準漢字が収録されている 7ビット単位の2バイト
Unicode 全世界の文字の収録を目的とした文字コード。2バイト 作成当初は16ビットだったが、今は8ビット単位の1〜4バイト

UTF-8Shift_JIS文字符号化方式

UTF-8Shift_JISなどは上記参考資料では「文字符号化方式」と呼ばれています
文字符号化方式は、文字コードのビット組み合わせに対して、計算などによってビット値を与える
文字コードでもうビット組み合わせが定義されてるんだからそのまま使えばいいじゃん!!!!と思うところだが(実際ASCIIなどは文字コードのビット組み合わせをそのまま使う)、そうも行かない場合がある。その場合とは

などがあるらしい

複数の文字コードを組み合わせて使う場合

たとえばJIS X 0208は英数字も収録された文字コードだが、先発のASCIIとの後方互換を保つためには、1バイトの文字は1バイト、2バイトの文字は2バイトで表現できなければならない
そのためにJIS X 0208とASCIIを同時に使えるように符号化方式が必要になる

文字コードUnicodeの場合

Unicodeは作成当初はビット組み合わせの桁は16ビットだったが、それでは世界中の文字を収録しきれない事が判明したため桁数を増やさなければならなくなった
そのため、従来の16ビットのUnicode後方互換を保つ為には符号化方式を使用してビット値を与える必要ができた

まとめ

Unicode 文字コード
UTF-8 Unicode」という文字コードのビット値を計算する方式
Shift_JIS JIS X 0208」という文字コードのビット値を計算する方式