Blender勉強会 Step 3に行ってきた。
Blender勉強会に行ってきた。
https://togebu.doorkeeper.jp/events/57339
今までスカルプトはとっつきづらいと思ってやってこなかったので 良い機会だなと思って参加した。東ゲ部、初参加でした。
@kurosaurusさんによるスカルプト講座
www.slideshare.net
ブラシのショートカットやDyntopo、Multiresolutionの使い方を学んだ。 スカルプトとは関係ないけど、「ビュー>レンズ」で画角を弄れるの知らなかったので学びだった。
@tomB_saikayaさんの講座
即興でskinモディファイアから手を作る方法やZBrushのtrimブラシ?っぽいブラシを作成する方法について解説していただいた。
skinモディファイアから手を作る方法では、頂点を枝分かれさせるときにメッシュが思った通りにならない場合があるけど、その場合はその枝分かれしている頂点を「ルーズとしてマーク」してあげるといいみたい。
trimブラシっぽいブラシを作成する方法はScrape/Peaksを複製して「エリア平面」を「ビュー平面」に変更し、左のロックをオンにすると良い。
もくもくで作ったもの
スカルプト解説の際に作ってた何か。
skinモディファイアから手を作る方法を解説している際に作ってた手。
犬。
感想
初めてBlenderというかCG関係の勉強会に来たけど非常に学びになったし、刺激になった。 スカルプトは今まで使ってこなかったけど、少し慣れたので使えるところでは積極的に使っていきたいと思う。 東ゲ部Blender勉強会に参加して良かったし、非常に楽しかった。 講師の@kurosaurusさん、即興で解説していただいた@tomB_saikayaさん、スタッフのみなさんありがとうございました!
武器をアタッチする方法
武器をActorにアタッチする方法について少し調べたのでメモ。
アタッチする方法
端的に言うとattachToComponentを使えば良い。
これを使うことでParentのSocket NameにTargetのActorをアタッチすることができる。
Targetへの値の渡し方は次の2種類あると思う(他にもあるのかな)。
- Add static mesh componentの戻り値を使う
- Spawn Actorの戻り値を使う
1.の方法はもんしょの巣穴blog [UE4] 武器切り替えで解説している方法。2.の方法はHow do I attach an Actor Blueprint to a socket in a Character Blueprint? - UE4 AnswerHub で解説している方法。
どちらがどういうメリット・デメリットがあるのかはまだわかってない。あまり違いはないのかもしれない。
短いけど、今日はこれで。
Blenderで作ったモデルをUE4にインポート
Blenderで上図のようなモデルを作ったのでUE4に持ってきた時のメモ。
バージョン
Blender 2.77a
Unreal Engine 4.14.2
Export
Blenderで作ったモデルをfbxでエクスポート。設定は特にいじってないつもり。アニメーションはつけてないので、アニメーションの設定は
見ていない。
Import
fbxをUE4にインポート。
ここも特に設定はいじってないつもり。
詳しくはらりほまさんのBlender to UE4 (ver.2016) | rarilogを見た方が良いと思います。
インポートした結果がこちら。お腹周りの影が気になるので解消したい。
マップにおいて見た。やはり影が気になる。
インポート時の設定のNormal Import MethodをCompute NormalsからImport Normals and Tangentsに変更してみたら影が消えた。
まだSmooth情報もない気がする。気のせいかもしれないけど。
もう少し調べてみたいと思う。
感想
FBXのExport/Importの設定がまだよく分かっておらず、こうすべきみたいな情報が まだ得られていない。色々試してみる必要がありそう。
Yokohama.vim #8に行って来た。
Yokohama.vimに初参加して来ました。
@gu4さんによる挨拶
最初にYokohama.vimとVimの軌跡の比較をしていた。 スライドに記載していたはずのYokohama.vimの軌跡が残念ながら消えてたらしい :( Yokohama.vim #0は2010年から続いているみたい。 Yokohama.vim.osaka? #7には自分は大阪(Osaka.vim #6)から参加していたなぁとか思ってた。
そういえば10/29(土)にOsaka.vim #8があるそうです。関西の方は是非!
次にアイスブレイクとして、自己組織化ゲームをした。 指示役と移動役という役割を持った二人一組で行うゲーム。 指示役が「前」といえば、移動役が一歩前に歩くといった感じ。 複数のチームの中でどのチームが一番多く歩けるかというのがゲームに対するモチベーションだった。
今回はVimバージョンということで、指示役が行う指示はhjklだった。 自分の相手は@h0k0r0biさんで、指示役をやらせていただいた。 指示を出すとき、慣れるまでhが左でlが右ということがすっと出てこなかった。 Vim上でカーソルを移動する際におそらくhとかlとかを考えずに指が覚えているからだろうなぁと思った。 このゲームではhjkl以外のmapを使用可能だった。自分たちは特に使用しなかったけど ゲーム中に「gg」とか聞こえて来た気がする。
改めて@h0k0r0biさんありがとうございました。
@Watson_DNAさんの発表
TeXとVim scriptのクイックソートを比較していた。 TeXもVim scriptも遅いねという感じだった。
@Linda_ppさんの発表
すごいということしかわからなかったのだけれど、CコンパイラをVim scriptで作成したいという話だったと思う。すごい。
@thincaさんによるVim 8.0の機能の説明
:help version-8.0の内容を@thincaさんが解説するという急遽開催されたもの。 色々便利なものがあったけど、まだ自分は全然把握できていないので復習をする必要がありそう。
したこと
特に何もせずに話を聞いたり、少しもくもくしたり、TweetVimを始めたりしていた。
所感
Yokohama.vimは初参加だったけど、わいのわいのした感じで楽しかった。 ただ、vimrc読書会でお会いする方々に話しかけたい気もしたけど、人見知りなので話しかけれなかったのが残念だった(これは自分の問題だけれども)。 また参加する時にはお邪魔したいと思います。
Vim 8.0にした。
先々週9/12にVim 8がリリースされたので、だいぶ遅れたがVim 8をインストールした。 今回はソースコードビルドに挑戦してみたので、そのメモを書きます。 何気にソースコードビルドは初挑戦(お恥ずかしいことに今までVim 7.4.729を使っていた...)。
やり方
git clone https://github.com/vim/vim.git
あとは、READMEに従ってビルドするだけです。
自分はOS XユーザなのでREADMEdir/README_mac.txt
を見ながら実施。
make sudo make install
これでvim/src
以下にVimの実行ファイルが出来ます。
あとは、VimにPATHを通すだけです。
例えば、~
にVimをcloneしたのであれば.bashrc
とかに
export PATH=~/vim/src/:$PATH
とすれば良いかと思います。
感想
TaPL 演習4.2.2
問題
arithの実装におけるeval関数の定義を、大ステップスタイルに変えよ。
答案
もう少しうまく書きたい。
let rec eval1' t = try match t with TmIf(_, t1, t2, t3) -> ( let t1' = eval1'(t1) in match t1' with TmTrue(_) -> let v2 = eval1'(t2) in v2 | TmFalse(_) -> let v3 = eval1'(t3) in v3 | _ -> raise NoRuleApplies) | TmSucc(fi, t1) when isnumericval t1 -> TmSucc(fi, eval1'(t1)) | TmPred(_, t1) -> ( let t1' = eval1'(t1) in match t1' with TmZero(_) -> t1' | TmSucc(_, nv1) when isnumericval nv1 -> nv1 | _ -> raise NoRuleApplies) | TmIsZero(_, t1) -> ( let t1' = eval1'(t1) in match t1' with TmZero(_) -> TmTrue(dummyinfo) | TmSucc(_, nv1) when isnumericval nv1 -> TmFalse(dummyinfo) | _ -> raise NoRuleApplies) | _ -> raise NoRuleApplies with NoRuleApplies -> t
感想
軽く試した感じは、ちゃんと動いてる。ただ正確に動くかどうかはCoq等で証明すべきなんだろうな。
あとは関数名をeval'
とかにすべきだったかも。