ふじさんのブログ

ふじさんのブログ

千人に一人がわかるような内容を書いていきます。

Blenderの3Dカーソルの使い方

※注意:この記事は、私のような初心者向けに書いています。期待しないでください。

Blenderの3Dカーソル(3D Cursor)、使ってますか?


私はつい最近まで使ってませんでした(汗)


あの左クリックするとついてくるやつです。


f:id:fujisan14153:20170312173917p:plain


Blenderを最初に起動したときには皆さま戸惑ったはず(笑)


そんな3Dカーソルですが、最近使い方を知って感動したので、忘れないうちに書いておきます。


最後から3番目の項目が本題です。時間のない方は「オブジェクトを中心じゃない位置で回したい。」をご覧ください。

オブジェクトは3Dカーソルから出てくる


さすがにこれは私でも知っていましたが、立方体(cube)でも平面(plane)でも新しく追加すると、3Dカーソルを中心として出現します。


またテキスト(text)を追加する際にも、文字の位置の基準となります。


f:id:fujisan14153:20170312174534p:plain
↑テキストを出現させた。デフォルトでは文字の左下を中心に出てくるらしい。


データタブの
f:id:fujisan14153:20170312175142p:plain

「段落」のところにある「行揃え」を「中心」にしてみると...
f:id:fujisan14153:20170312212348p:plain

文字が中央にそろいます。
f:id:fujisan14153:20170312212552p:plain

この状態で文字を変更しても、中心にそろえてくれます。
f:id:fujisan14153:20170312212838p:plain


だいぶ話が逸れましたが、テキストなどを任意の場所に置きたいときは、3Dカーソルの位置に注意しなければいけません。

3Dカーソルも使いこなせば便利


なんか前項で曲者みたいに書いてしまいましたが、きちんと使えれば便利です。

オブジェクトを任意の位置に出現させる


これは最初に言った通りですが、原点に3Dカーソルがあるために、原点から遠い位置にオブジェクトを置きたいときにいちいちオブジェクトを移動させていませんか?


3Dカーソルは、非常に簡単に原点に戻すことができるので、ジャンジャン好きに移動させちゃってください!


出来れば覚えたいコマンドが、「Shift + S」です。


左手で簡単に押せて、むしろクセになる押し心地です。


そこで出てきたメニューから、「カーソル→原点」を選択すれば原点に戻ってくれます。
f:id:fujisan14153:20170312220151p:plain

オブジェクトを中心じゃない位置で回したい。


さて、最後にして、むしろこの項目が当記事の本題でございます。


ここに立方体があります。
f:id:fujisan14153:20170312224430p:plain


これを辺を軸にして回転させたいとき。
f:id:fujisan14153:20170312224443p:plain


でも普通に回転させようとすると、中心を軸に回ってしまいます。
f:id:fujisan14153:20170312224831p:plain


ここで3Dカーソルの出番です!


一度この立方体を編集モードにします。
f:id:fujisan14153:20170312224921p:plain


そして回転させたい軸となる点を選択。写真では2つ選択していますが、どちらか1つでもOK
f:id:fujisan14153:20170312225024p:plain


Shift + S を押して「カーソル→選択物」を選択
f:id:fujisan14153:20170312225139p:plain


このまま「編集モード」で作業してもいいのですが、ここでは実践的に「オブジェクトモード」に戻してから回転させます。


オブジェクトモードに戻した後、①下のバーから写真のようなアイコンをクリックし、②3Dカーソルを選びます。
これで3Dカーソルを中心に回転できます。
f:id:fujisan14153:20170312225628p:plain


では回転モードに切り替えて、回転させてみましょう。
f:id:fujisan14153:20170312225716p:plain
f:id:fujisan14153:20170312225733p:plain

こんなことに使えます。


例えばドアなんか
f:id:fujisan14153:20170312231555p:plain


こんな感じに開けることができる。
f:id:fujisan14153:20170312231629p:plain

はい。以上です。


なんかだらだら書いてしまって体裁もへったくれもありませんが、最後の項目についてはアニメーションの際にボーンを正確に入れるなど、非常に便利に使えます。


ぜひ3Dカーソルを使いこなしてください。


次は3Dカーソルを便利に使えるアドオンでも紹介しますか...

趣味で使う無料のCADを比較してみる~3D・2D~

趣味でCADを使いたい人はきっと多いと思う。
でも本格的なCADは馬鹿みたいに高い。

そこで、AutoCADから怪しいフリーソフトまで
CADというCADを漁りまくった私が主観と偏見からピックアップしていきます。
ここで紹介するCADはすべて無料で使えるものです。

※私も趣味でしか使っていないので、あまり詳しい事は言えませんが...

無料で使えるCAD ~3D編~

おすすめ順に書いていく。

(Autodesk) Fusion360

恐らく一番広く使われているAutoCADを生み出した、天下のAutodesk様。
最近発売されたクラウドベースの格安CADです。
・値段  無料 (趣味・学生に限る)
・難易度 ★★☆☆☆
・種類  3D 2D CAD CAM CG 解析
http://www.autodesk.co.jp/products/fusion-360/overview
f:id:fujisan14153:20161218181417p:plainf:id:fujisan14153:20161218181423p:plain

(Autodesk) 123D Design

これまたAutodesk。無料CADと言ったらこれ!
簡単すぎて物足りないかも...
・値段  無料
・難易度 ★☆☆☆☆
・種類  3D CAD
http://www.123dapp.com/design
f:id:fujisan14153:20161218181854j:plain

(オープンソース) FreeCAD

有志によって開発されており、完全に無料。
まだ完成ではないが、普通に使える。拡張を前提につくられており、多様な機能を追加できる。
・値段  無料
・難易度 ★★★★☆
・種類  3D 2D CAD 解析
http://www.freecadweb.org/?lang=ja

(DESIGNSPARK) Design Spark Mechanical

機械設計に特化し、電子部品等のモデルが用意されている。
専門知識がなくても本格的な設計が可能。
・値段  無料
・難易度 ★★★☆☆
・種類  3D 2D CAD
https://www.rs-online.com/designspark/mechanical-software-jp

(Trimble) SketchUp Make

CADというよりはデザインソフトに近い。
モデリングに特化し、直観的な操作で使っていて楽しい。
初めてのCADに最適。
・値段  無料 (商業版もあるため、機能制限が少しある)
・難易度 ★☆☆☆☆
・種類  3D CAD(?) CG
http://www.sketchup.com/ja

無料で使えるCAD ~2D編~

(ダッソー・システムズ) DraftSight

完全無料の割には本格的な図面が書ける。
はっきり言って神です。2次元CADが欲しい方は迷わずこれ。
・値段  無料 (電子メールの登録で無料になる)
・難易度 ★☆☆☆☆
・種類  2D CAD
http://www.3ds.com/ja/products-services/draftsight-cad-software/
f:id:fujisan14153:20161218182246p:plain

(SIEMENS) Solid Edge Free 2D

びっくりする位知られていない。
特に特徴はないが、使用人口が少ないために取っつきにくいかもしれない。
・値段  無料
・難易度 ★★☆☆☆
・種類  2D CAD
https://www.plm.automation.siemens.com/ja_jp/products/solid-edge/free2d/

(SHF) AR_CAD

簡単に作図ができる。むしろお絵かきソフトに見える。
・値段  無料
・難易度 ★☆☆☆☆
・種類  2D CAD
http://www.ar-cad.net

無料で使える2DCADはまだまだありますが、省略させていただきます。

まとめ

というわけで無料のCADを紹介しましたが、私の一押しはFusion360ですね。
3Dモデルからレンダリングして、リアルな画像を作れたり、2Dの図面だって簡単です。
初心者にはSketchUpをおすすめします。
まとめになってないですが、この辺で失礼します。

(1/19)追記 : 各サイトへのリンクを追加

Processing で簡単なレンズのシミュレーターを作ってみる-算数の復習編

(2/13)タイトル変更 : 環境をNetBeansに変更したので、連載しません

ある日、友人に
「HUD作りたいんだけど、レンズの色の収差ってどのくらい?」
って聞かれました。


そもそもHUDとは無限の距離に焦点を結ばせて、
遠くのものとディスプレイ(透明)を重ねてしまおうっていうものだ。


もしそんな精密機器に収差なんぞあった日には、緑と赤の光がずれて表示されてしまう


というわけで前金として堅揚げポテトをもらい、シミュレーターを作ってあげることにした。
っていうか明日もテストなんですが...


それでは今回はレンズ(二次曲面)への光線の入射角を数式としてあらわしてみる。

収差ってなんだ...?

レンズは光を屈折させる道具だが、波長(色)によって屈折の度合いが変わってしまう。
要は、赤と青の光をレンズに通すとわずかにずれて出てくるのだ。


そこで、カメラでは大量のレンズを使って出来るだけ収差をなくそうとしている。

レンズの断面は曲線

レンズの断面は円形か二次曲線、と仮定する


もちろん光線は直線だから、レンズの曲線と光線が交わったら曲線を微分し傾きを求めて、
光線が出てくる角度を屈折角の公式から求めればいいのでは。

交点とその傾きの求め方

二つの線の交点を求めるには、2式の連立方程式を解けば良い。

{
\begin{eqnarray}
\left\{ \begin{array}{ll} 
  y=x^2-4x+5 & (1.レンズの曲線) \\
  y=2x-3 & (2.入射する光線)
\end{array}\right.
\end{eqnarray}
}

{
\begin{align}
\therefore~~&x=2,~4
\end{align}
}


ここでx=2,~4のときの(1)式の微分を求めてみる

{
f'(x)=2x-4 \\ 
f'(2)=0  (傾き0) \\ 
f'(4)=4  (傾き4)
}

となる

傾きを角度(degree)に直す

傾きから角度を求めるためには、
tan\theta=傾き
を満たす\thetaを求めれば良い。


つまり、傾きが与えられている場合
Tan^{-1}(傾き)=\theta で求められる。*1

例)Tan^{-1}(1)=45 傾き1の角度は45°


ここでは傾き0と4の角度を求めたいので
Tan^{-1}(0)=0° \\ Tan^{-1}(4)=75.964...°
となるのだが、光の媒質に対する入射角iを求めるには、
光の角度-媒質の境界の角度 でいいと思う。


この例では直線を光線、曲線を媒質との境界線とする。
二つの角度差(入射角)は、
Tan^{-1}(4)-Tan^{-1}(2)=12.529...°

f:id:fujisan14153:20161201224609p:plain
 図)交点 (4, 5) における y=x^2-4x+5 の二次曲線と y=2x-3 の直線がなす角度は約12.5°

これでレンズの曲線と光線とがなす角度(入射角)を求めることができた。


次回はレンズの屈折をやっていこうと思います。

(2/13)追記 : ProcessingからNetBeansに変更したので、連載しません。

*1:本来は{\displaystyle\begin{equation}\frac{1}{tan\theta}\end{equation}}と区別するためArctan\thetaと表記すべきであるが、高校数学にならってTan^{-1}\thetaとした。

初めてのFORTRAN

先日、学校の授業で「FORTRAN」なるプログラミング言語を使った。
え、なにそれ...

FORTRANとは?

1956年に、IBMが開発した世界最初の科学技術計算用の高級言語*1
今から半世紀前ですと...?

ちなみにCOBOLよりも前です。それにBASICのもとになってるらしいよ...

まずはインストールから

fortranの最もメジャーなコンパイラは「gfortran」らしい。
インストールしたいって方はこちらを参考にしてください
あらきけいすけの雑記帳 様→http://d.hatena.ne.jp/arakik10/20160101/p1

gfortranの使い方

プログラムを書く

テキストエディタ(Windowsのメモ帳でOK)にてプログラムを書き拡張子を「.f90」に変更します。
このとき、ファイル名はアルファベットで始まるようにしてください。数字はNG。
一番下にプログラム例があります。

コンパイル

このプログラムを実行ファイル(*.exe)に直してくれるのがgfortranです!
先ほどのあらき様のブログの通りにやった方なら(*.bat)ファイルがあるはずです。
これを実行して、

gfortran (ファイル名).f90 -o (任意のファイル名).exe

と入力してEnter。「-o」はオプションで、好きなファイル名に変更できます。無い場合は「a.exe」というファイル名になります。

さらに

(ファイル名).exe

と書いて実行すると、プログラムが動きます。

プログラム例

!コメントアウトは文頭に「!」をつけます
PAI=3.141592
WRITE(6,*) '円の半径(mm)を入力してください'
READ(5,*) R
S=R**2*PAI
WRITE(6,*) '円の面積は',S,'(mm)です'
END

ファイル名を「test.f90」として保存します。
この文の詳しい解説はまた次回...

実行例

f:id:fujisan14153:20161108235542p:plain

*1:田辺誠・平山弘 (1994). 実践Fortran95プログラミング 共立出版 より

WindowsにBluetoothを接続したら音質が悪くなる時に試してほしいこと。

先日、寝ながらボイチャしたいなぁ
ってことで買ったのがこちら!!!

多摩電子工業 inG Bluetooth ステレオレシーバー TB308K

多摩電子工業 inG Bluetooth ステレオレシーバー TB308K

Bluetoothのレシーバー(受信専用)ですね。
イヤホンをつなげると音がワイヤレスに伝わるという...
ってこんなことは当記事を見ている方ならおわかりですよね。
というわけで本題。

Windowsにつなげると音質最悪!!!

僕のパソコンにはBluetooth機能がついていないので、USBにつなげるアダプターを購入。

こちらはパソコンから送る方。

いざインストールやら設定やら済ませて、試しに音楽でも聞いてみたところ...
電話みたいな音。ギターの音なんて割れ過ぎて聞こえないレベル。
iPhoneだと普通の音質で出てくれるのに...

ってことで設定を適当にいじったところ
出来ました。
前置き長くてすいません。

バイスマネージャーを開く。

※画像はWindows10です。(やり方はほぼ同じのはず...わからなかったらコメント下さい)
1.「Windows」キーを押しながら「X」キーを押す。
2.画面左下に一覧が表示されるので、「デバイスマネージャー」をクリック。
f:id:fujisan14153:20160927154228p:plain
Windows7:「スタート(画面左下のボタン)」→「コントロールパネル」→「ハードウェアとサウンド」→「デバイスとプリンター」の項目にある「デバイスマネージャー」をクリック。

設定する。

1.「サウンド、ビデオ、およびゲームコントローラー」をダブルクリック。
2.その下にいろいろ出てくるので、「Bluetoothハンズフリーオーディオデバイス」を右クリックする。
3.無効をクリック。
f:id:fujisan14153:20160927155713p:plain
4.パソコンを再起動。

再接続!

ここからは機種によって違ってきますが、標準的な方法について書きます。
1.つなげたいBluetoothの機器を、「ペアリングモード」にする(それぞれの説明書を読んでくださいw)
2.画面右下の、Bluetoothのアイコンをダブルクリック。(無い場合は、▲のボタンをクリック)
f:id:fujisan14153:20160927160021p:plain
3.つなげたい機種をダブルクリック。
4.「ヘッドフォン」のアイコンを右クリック。
f:id:fujisan14153:20160927160049p:plain
5.「接続」をクリック

おそらくこれで音質はよくなると思います。
では!

UnityでSAO風のゲームを作ってみたい(素材あるよ~)

先日、「Unity5 入門」という本を買いました。

Unity5入門 最新開発環境による簡単3D&2Dゲーム制作

Unity5入門 最新開発環境による簡単3D&2Dゲーム制作

こちらに、ゲームを実際に作ってみるという内容があったので、作ってみました。
ここで、ふと思いました。Sword Art Onlineを作りたいなぁ...と。
まぁ実際には無理でしょうから、とりあえずテストとしてSAO風のUI(User Interface)を作ってみました。

まずは、フォントを変えよう!

海外の方、darkblackswords氏が無料で配布しているこちらを使わせていただきます。
http://darkblackswords.deviantart.com/art/Sword-Art-Online-Font-342305125
それにしても、Win10ではフォントのインストールが簡単になりましたね...
ファイルをダブルクリックでインポートボタン押すだけですもんね...
Before↓
f:id:fujisan14153:20160904162442p:plain
After↓
f:id:fujisan14153:20160904162517p:plain
フォントを変えただけでもうSAO風になりました。

死んだら...やはりあれでしょう!

実はこのゲーム、ステージから落ちると最初に戻るという仕様です。
これだけだと寂しいので、例のあれ「You are dead」表示させたいですよね!
GIMPで頑張って作りました(初めて使った...)
↓良かったらダウンロードして使ってください。png形式ですので、背景が透けます!
f:id:fujisan14153:20160904163413p:plain
↓ついでに「Congratulations!!」の素材もどうぞ。(白いので見えませんが、あります)
f:id:fujisan14153:20160904163607p:plain

「You are dead」と「Congratulations!!」は、アニメと同様、アニメーションを使って表示させています。(拡大しながら出てくるって言えば伝わるかな...詳しくは動画を。)
スクリプトはこちら

using UnityEngine;
using System.Collections;

public class DeadAnime : MonoBehaviour
{
    float uisize = 0;
    public float step = 0.05f;

    void Update()
    {
        uisize = uisize + step;
        if (uisize <= 1f)
        {
            transform.localScale = new Vector3(uisize, uisize, 1);
        }
    }
}

※変数「step」は、アニメーションの速度の数値ですが、テストのためにpublicで宣言しています。
いらない方はfloat step = 0.05f;だけでいいです。

最後に、動画をどうぞ!(Twitter)


では。

「assembly2」のインポートが大変だった-freecad

FreeCADの拡張機能「Assembly2」のインポートが難しすぎたので、対策を書いておこうと。
※この記事に書いてあることは、すべて自己責任でお願いします。
大したことはしてませんが、深いところのファイルをいじくるので、一応...

ダウンロード

こちらのサイトに飛びます↓
https://github.com/hamish2014/FreeCAD_assembly2
緑のボタン「Clone or download」をクリックし、「Download ZIP」をクリックして、ダウンロードします。
f:id:fujisan14153:20160831213209p:plain

インストール

ファイルを解凍すると、
「FreeCAD_assembly2-master」的なフォルダが出てくるので、

C:\Program Files(x86)\FreeCAD 0.16\Mod

の中に「Assembly2」という空のフォルダを新規作成し、その中に先ほど解凍したフォルダの中身をすべてぶち込みます。
f:id:fujisan14153:20160831214354p:plain
ーとりあえず公式では、これでインポートできると書いてあります。
FreeCADを立ち上げてみて、ワークベンチ(表示>ワークベンチ)にAssembly2が入っているか確認してください。

入っていない場合

①自分のOSに合っているか。
  64bit版か32bit版を間違えていないかどうか。

②(編集タブ>設定>マクロ>マクロのパス)のところを、

C:\Users\***\AppData\Roaming\FreeCAD\Mod

にしてください。***にはあなたのWindowsのユーザーネームが入ります。

③先ほど入力した場所に、エクスプローラーで「Mod」という名前の空のフォルダを作ります。
f:id:fujisan14153:20160831221244p:plain
AppDataは隠しフォルダになっていますので、
エクスプローラーの「表示」タブより、「隠しファイル」にチェックを入れてください。
※セキュリティ上、「隠しファイル」のチェックは作業が終わったら外してください
f:id:fujisan14153:20160831223927p:plain
さらに、この「Mod」フォルダの中にも「Assembly2」の名前で空のフォルダを作り、
「FreeCAD_assembly2-master」の中身をすべてぶち込みます。

C:\Program Files (x86)\FreeCAD 0.16\bin\Lib\site-packages

この場所にある「numpy」フォルダを削除
f:id:fujisan14153:20160831222744p:plain

https://drive.google.com/open?id=0Bx4ovywGcBkYcExlQmVKZTl2UDA&authuser=0
こちらから、numpyフォルダをダウンロード。
(個人のファイルのため、リンク切れになる可能性が高い)
解凍し、先ほどの場所に新しいnumpyフォルダを丸ごと移す。
以上。

FreeCADを再起動して、ワークベンチにAssemblyがあるか確かめてください。
僕の場合は、これで解決しました。
解決しなかった方は...ごめんなさい。