main() blog

プログラムやゲーム、旅、愛する家族について綴っていきます。

【Unity】Unityで覚えるC#(不定期更新)

はじめに

Unityを始めるにあたりそもそもC#も触っていなかったので基本的な言語仕様や構文等のスタディの備忘録を付けておきます。 C#固有、Unity固有の何かがあればそれもメモしていきます。

基本のデータ型

C#本来のsystem名前空間の組み込みデータ型。

範囲(ビット)
byte 符号なし整数 8 0 ~ 255
sbtyte 符号付き整数 8 -128 ~ 127
int 符号付き整数 32 -2147483648 ~ 2147483647
uint 符号なし整数 32 0 ~ 4294967295
short 符号付き整数 16 -32768 ~ 32767
ushort 符号なし整数 16 0 ~ 65535
long 符号付き整数 64 -922337203685477508 ~ 922337203685477507
ulong 符号なし整数 64 0 ~ 18446744073709551615
float 単精度浮動小数点型 32 -3.402823e38 ~ 3.402823e38
double 倍精度浮動小数点型 64 -1.79769313486232e308 ~ 1.79769313486232e308
char 単一Unicode文字 16 テキストで使用される Unicode 記号
bool 論理ブール型 8 true または false
object 他すべてのの型の基本型
string 文字列

例)

public class Hoge
{
    // コンストラクタ.
    public Hoge()
    {
        Debug.Log("### 基本のデータ型\n");

        byte by = 0;
        sbyte sby = 0;
        int i = 0;
        uint ui = 0;
        short s = 0;
        ushort us = 0;
        long l = 0;
        ulong ul = 0;
        float f = 0.0f;
        double d = 0.0;
        char c = 'a';
        bool b = true;
        string str = "aaa";

        Debug.Log("  byte : " + by + "\n");

        // 書式指定での出力.
        Debug.Log( string.Format("  uint : 0x{0:X}\n", ui );    // unity4.6まで.
        Debug.LogFormat(" uint : 0x{0:X}\n", ui );              // unity5から.

        // {0}は引数の番号?.
        // 可変引数で複数の引数がある場合は{0},{1}で指定していく?.
        Debug.LogFormat(" int:[{0}] uint:[{1}]\n", i, ui );
    }
}

var

auto変数みたいなもの? メソッドスコープ内で宣言される変数に使用することができる。

func()
{
    // string型で宣言しなくてもstringとして扱われる.
    var name = "山田太郎";
}

MS的には右辺の代入の型が明示的な場合は極力varを使うことをMSDNのコーディング規約にも書かれている。

foreach

C#でのforeachの書き方。

int[] = new int[10];

foreach(int v in array)
{
    Debug.LogFormat("  {0}", v);
}

// varでも書ける.
foreach(var v in array)
{
    Debug.LogFormat("  {0}", v);
}

配列

func()
{
    // ↓NG
    // C,C++の様な書き方.
    int arry[ 10 ];
    // ↓OK
    int[] arry = new int[10];
  // 初期値を入れる.
    int[] arry = new int[10]{1,2,3,4,5,6,7,8,9,10};
    // ↓NG
    // サイズが指定されている場合は要素数を入れないとエラーになる.
    int[] arry = new int[10]{1,2,3,4,5};
    // サイズが無ければ初期化の要素数が配列の要素数となる.
    int[] arry = new int[]{1,2,3,4,5}

    arry[ 0 ] = 1;

    for( int i = 0; i < arry.Lehgth; i++ )
    {
        Debug.LogFormat("  [{0}]:{1}\n", i, arry[i]);
    }

    // foreachでの書き方.
    foreach( int v in arry )
    {
        Debug.LogFormat("  {0}\n", v );
    }
}

可変長配列

STLvectorみたいなものです。 List<>というのがあります。 これはC#で用意されているものです。

using System.Collections.Generic;  // List<>のnamespace

func()
{
    List<int> list = new List<int>();

    // 追加.
    list.Add(10);
    list.Add(20);
    list.Add(30);
    list.Add(40);

    // 挿入.
    list.Insert(2, 100);

    Debug.LogFormat("count : [{0}]\n", list.Count);

    // 配列の様にアクセスできるみたい...
    for( int i = 0; i < list.Count; i++ )
    {
        Debug.LogFormat("   [{0}] : [{1}]\n", i, list[i]);
    }

    foreach( int v in list)
    {
        Debug.LogFormat("   [{0}]\n", v);
    }

    // sort.
    list.Sort();
    foreach( int v in arry )
    {
        Debug.LogFormat("  [{0}]\n", v );
    }
}

連想配列

STLのmapの様なものです。 Dictionary<>というのがあります。 keyとvalを指定して指定したkeyでvalを引っ張ってくることができます。

using System.Collections.Generic;

func()
{
    Dictionary<int,string> dic = new Dictionary<int,string>();

    dic.Add(1,"Hoge1");
    dic.Add(2,"Hoge2");

    dic[3] = "Hoge3";

    Debug.LogFormat("  val:[{0}]", dic[1]);

    // キーの列挙.
    foreach(var key in dic.Keys)
    {
        Debug.LogFormat("  key:[{0}]", key);
    }

    // 要素の列挙.
    foreach(var val in dic.Values)
    {
        Debug.LogFormat("  val:[{0}]", val);
    }

    // キーと要素の列挙.
    foreach(KeyValuePair<int,string> pair in dic)
    {
        Debug.LogFormat("  [{0}] : [{1}]", pair.Key, pair.Value);
    }
}

define定義

[Unity] 全体に反映されるマクロ(シンボル)を定義する

・プラットフォーム依存コンパイル Unityで用意されているプラットフォームごとの#defineディレクティブ。

“#if"のディレクティブは使えるらしい…

“#define"定義はファイルの先頭で行わないとダメ?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

#define _ENABLE_HOGE

public class Main : MonoBehaviour {

以下の様なエラーが出ました。

Assets/Scripts/Main.cs(6,0): error CS1032: Cannot define or undefine preprocessor symbols after first token in file

ファイルの先頭に持っていったらエラーは出なくなりました。

#define _ENABLE_HOGE

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Main : MonoBehaviour {

if文(制御構文)

C#ではif文は必ずbooleanになっていないとダメです。

enum Attr
{
    None = 0,
    Fire = 0x1 << 0,    // 火属性.
    Water = 0x1 << 1,   // 水属性.
    Earth = 0x1 << 2,   // 土属性.
    Light = 0x1 << 3,   // 光属性.
    Dark = 0x1 << 4,    // 闇属性.
}

func()
{
    int i = 0;

    // ↓ダメ.
    // 数値ではエラーになる.
    if( i )
    {
    }

    // ↓OK
    if( i == 0 )
    {
    }

  // ビット演算だと判定が冗長になってしまう...
    Attr attr = Attr.None;

    attr = Attr.Fire;

    // ↓NG
    // ビット演算ではboolにならない.
    if( attr & Attr.Fire )
    {
    }

    // ↓OK
    if( (attr & Attr.Fire) == Attr.Fire )
    {
        Debug.Log("### 火属性.\n");
    }

    attr = Attr.Water | Attr.Light;
    if( (attr & (Attr.Water | Attr.Light)) == (Attr.Water | Attr.Light) )
    {
        Debug.Log("### 水&光属性.\n");
    }

    // 良いかどうかは置いておいて次の様な書き方でも判定できる.
    if( (attr & (Attr.Water | Attr.Light) != 0 )
    {
        Debug.Log("### 水&光属性.\n");
    }
}

【Unity】HasFlag 関数を Unity でも使用できるようにする拡張メソッド

swithc文

func()
{
    int val = 1;

    switch(i)
    {
        case 0:
            break;
        case 1:
            break;
        default:
            break;
    }
}

文字列も値として扱うことができる。

func()
{
    string val = "TEST001";

    switch(val)
    {
        case "TEST001":
            break;
        case "TEST002":
            break;
        default:
            break;
    }
}

C#におけるクラス

クラスがメンバーに持てるもの

  • フィールド 変数。 通常あまり生のメンバー変数を公開するものではないが、Unityの場合パブリックフィールドにしないとインスペクターに表示されない。

  • メソッド/コンストラクタ/デストラクタ 関数。 コンストラクタとデストラクタは少し特殊な関数。

  • プロパティ アクセサの簡易表記法。

  • インデクサー オブジェクトを配列のように扱えるようにするための機能。

  • イベント 処理の一部を外部に委譲したり、何かのタイミングを通知するための機能。

  • コンストラクタ オブジェクトの初期化処理を行うためのメソッド。 ただし、UnityはMonoBehaviourを継承したクラスがコンストラクタを実装することを推奨していません。 Awake/Startを使いましょう。

  • デストラクタ オブジェクトの破棄処理を行ためのメソッド。 C#ではGCが動いていて明示的な破棄はしなくてよいので、通常は意識する必要はありません。 C#で破棄のタイミングを管理したいクラスはIDisposableを継承して、Dispose()メソッドを実装し、using文と合わせて使います。 ただ、Dispose()の実装は慣れていないと難しい…

  • クラスメンバーとインスタンスメンバー

  • クラス修飾子 ・sealed sealed修飾子を付けたクラスは継承できなくなります。

  • メンバーフィールド修飾子 ・const ・readonly

  • メンバーメソッド修飾子 ・virtual ・override ・extern

  • 属性(アトリビュート

自分でクラスを定義してみます。

public class Hoge
{
    public Hoge()
    {
        Debug.Log("### Hoge::Hoge()");
    }

    // デストラクタ.
    // publicを付けるとビルドエラーになる.
    ~Hoge()
    {
        Debug.Log("### Hoge::~Hoge()");
    }

    public int x = 0;

    public void SetY(int i)
    {
        y = i;
    }

    public int GetY()
    {
        return y;
    }

    private int y = -1;
    private int z = 0;
}

func()
{
    Hoge hoge = new Hoge();

    hoge.SetY(10);

    Debug.LogFormat("  x:[{0}]", hoge.x);
    Debug.LogFormat("  z:[{0}]", hoge.GetY());
}

Unityのinspectorに表示してみます。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TestAttribute : MonoBehaviour {

    // publicはinspectorに表示される.
    public int test_int = 10;    // 初期値も反映される.
    public float test_float = 20.0f;
    public string test_string = "test";
    public GameObject test_gameobject;
    public ElementAttr test_enum;

    // privateは表示されない.
    private int _test_int;

    // Use this for initialization
    void Start () {
        
    }
    
    // Update is called once per frame
    void Update () {
        
    }
}
  • 表示結果

変数名の先頭の小文字は勝手に大文字に変換されるようです。

unity_000.png

プロパティ

C#(VB)固有の言語仕様。 アクセサの簡易表記。

プロパティ

public class Hoge
{
    // プロパティ.
    // 自動プロパティ.
    public int X { get; set; }

    public int Z
    {
        // setアクセサ(setterとも言う).
        set
        {
            // valueという名前の変数に代入された値が入る.
            if(!(value >= 0 && value <= 10))
            {
                Debug.Assert(false);
                return;
            }
            
            z = value;
        }

        // getアクセサ(getterとも言う).
        get
        {
            return z;
        }
    }

    private int z = 0;
}

func()
{
    Hoge hoge = new Hoge();

    // プロパティ.
    hoge.X = 100;

    Debug.LogFormat("  X:[{0}]", hoge.X);

    // エラーが拾える.
    hoge.Z = 100;

    Debug.LogFormat("  Z:[{0}]", hoge.Z);

    hoge.Z = 10;

    Debug.LogFormat("  Z:[{0}]", hoge.Z);
}

属性(アトリビュート

属性(attribute)とはクラスやメンバーに追加情報を与えるもの。

C#の言語仕様についてはこちらを参考に。 ・属性

Unityで使う場合はこちらを参考に。 ・UnityのAttribute(属性)についてまとめてメモる。Unity/C# - Inspector表示の変更①

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TestAttribute : MonoBehaviour {

    // publicはinspectorに表示される.
    public int test_int = 10;    // 初期値も反映される.
    public float test_float = 20.0f;
    public string test_string = "test";
    public GameObject test_gameobject;
    public ElementAttr test_enum;

    [Range(0.0f, 10.0f)]
    public float test_float_range = 5.0f;
    public float test_float2;    // ← ここにはattributeは適用されない.

    [Header("----")]

    // ↓privateもinspectorに表示することができる.
    [SerializeField]
    private int test_int_private;

    [Multiline(2)]
    public string test_multiline;

    [TextArea(2, 5)]
    public string test_textarea;

    // privateは表示されない.
    private int _test_int;

    // Use this for initialization
    void Start () {
        
    }
    
    // Update is called once per frame
    void Update () {
        
    }
}
  • 表示結果

unity_001.png

構造体

public struct Point
{
    public int x;
    public int y;

    public Point(int x, int y)
    {
        this.x = x;
        this.y = y;
    }
}

func()
{
    Point point = new Point(10, 20);

    Debug.LogFormat("  x:[{0}] y:[{1}]");
}

インターフェイス

記述中…

キャスト、型情報の利用

-キャストすべきかasするべきか-

  • キャスト
TestClass test = (TestClass)obj;
TestClass test = obj as TestClass;

キャストとは逆に「変換先の型」が右側に来ます。 参照型にしか使用できません。 値型(struct等)には使用できません。 変換できなかった場合はnullが返ります。

キャストを試してみます。

func()
{
    int i;
    float f;

    // OK.
    f = i;

    // ↓コンパイルエラーになる.
    i = f;

    // 明示的なキャストが必要.
    i = (int)f;
}
Assets/Scripts/Main.cs(453,8): error CS0266: Cannot implicitly convert type `float' to `int'. An explicit conversion exists (are you missing a cast?)
public class A {}
public class B {}
public class D : B {}

public interface I1 {}
public interface I2 {}
public class E : I1, I2 {}

{
    D d = new D();
    B b = d;    // キャストは不要.
}

{
    E e = new E();
    I1 i1 = e;    // キャストは不要.
    I2 i2 = e;
}

{
    B b = new D();
    D d = (D)b;    // 明示的なキャストが必要.
}

{
    A a = new A();
    B b = (B)a;    // コンパイルエラー.
}
Assets/Scripts/Main.cs(490,13): error CS0030: Cannot convert type `Main.A' to `Main.B'

as演算子を試してみます。

{
    A a = new A();
    // ↓これだとコンパイルエラーになる.
    //B b = a as B;
    // object型にキャストしてからだと大丈夫.
    B b = (object)a as B;

    if(b == null)
    {
        // 変換できないとnullが返る.
    }
}
{
    I1 i1 = new E();
    I2 i2 = i1 as I2;
    E e = i2 as E;
}

パーシャルクラス、パーシャルメソッド

記述中…

拡張メソッド

既存のクラスに機能を追加する方法です。

public static class 適当なクラス名
{
    public static void Method( this 拡張したいクラス self )
    {
    }
}

例えばstringに拡張メソッドを追加する場合は以下の様に記述します。

public static class StringExt
{
    public static void ExtMethod( this string self )
    {
    }
}

func()
{
    string str;

    str = "aaa";

    str.ExtMethod();
}

リフレクション

記述中…

ジェネリック

いわゆるテンプレート。 List<>もDictionay<>もジェネリックで記述されている。

ジェネリック

// ジェネリッククラス.
class GenericClass<T>
{
    T item;

    public void SetItem(T v)
    {
        item = v;
    }

    public T GetItem()
    {
        return item;
    }
}

func()
{
    // ジェネリック.
    GenericClass<int> i = new GenericClass<int>();

    i.SetItem(5);
    Debug.LogFormat("  i:[{0}]", i.GetItem());

    GenericClass<float> f = new GenericClass<float>();

    f.SetItem(10.0f);
    Debug.LogFormat("  f:[{0}]", f.GetItem());
}

デリゲート

記述中…

イベント

記述中…

ラムダ式

記述中…

LINQ

記述中…

コルーチン

記述中…

デザインパターン

記述中…

コーディング規約

記述中…

参考

Unityで覚えるC#

MSDN : C# プログラミング ガイドMSDN : C# のコーディング規則 (C# プログラミング ガイド)MSDN : ジェネリック型の型パラメーター (C# プログラミング ガイド) MSDN : 名前に関するガイドライン

Unityでよく使うデザインパターン

20年前の映画のパンフレットを大量処分(´;Д;`)

色々と家のモノが増えてきているので整理してました。

 

その中に20年くらい前に観に行った映画のパンフレットが出てきました。

 

妻に見せたところ「いらなんじゃない?」と一言。

 

自分の私物はどんどん処分。

妻のものは増えてるのに...

 

断捨離です!

だ・ん・しゃ・り!

と自分に言い聞かせて涙をこらえて処分します...

といっても段ボールひと箱程度ですが...

 

 

社会人なりたての20年くらい前は単館系の映画によく行っていたものです。

当時はまだネットで情報が簡単に得られるような時代ではなかったので、雑誌の「ぴあ」や「東京Walker」などで情報を得ていました。

そのなかでも単館系は小さい写真とタイトルのみというのが大半で、その写真を見て(ジャケ買い状態で)観に行くかどうかを判断していたものです。

 

懐かしいのでいくつか紹介します。

 

 

 

 

※写真はブログに載せるために撮ったものではないのできれいに撮れていなかったり、子供が入っていたりしています。

 

 

フルモンティ

 

f:id:takezoh_1127:20170615083250j:image

 

フル・モンティ - Wikipedia

 

1997年(日本公開)

トレインスポッティング好きな友人と観に行った作品です。

主人公のロバート・カーライルトレインスポッティングではすぐにブチ切れるヤバイ奴を演じていましたが、この映画では同じダメさの中にも前向きに頑張る姿(と言っても男性ストリップですが)がものすごく好演でした。

 

ロバート・カーライルは最近ではドラマ『ワンス・アポン・ア・タイム』のミスター・ゴールド(ルンペルシュテルツキン)でも独特な存在感でした。 

 

一緒に観に行った友人とは1日で3本の映画をハシゴしたりしたなぁ。

渋谷でブルース・リーの『燃えよドラゴン』、フランス映画の『ティコ・ムーン』、銀座に移動して『トレインスポッティング』を鑑賞。

 

T2(トレインスポッティング2) はまだ観てません。

 

CUBE

 

f:id:takezoh_1127:20170615083105j:image

 

 

キューブ (映画) - Wikipedia

 

1998年(日本公開) 

最初は本当に単館上映でした。

六本木の映画館のみで上映されていました。

一緒に観に行った友人の感想は「ふーん」。

その後に口コミで広がり色々な映画館で上映されるようになりました。

 

映画自体は賛否あるようですが、設定といい低予算での制作といい口コミでの広がりといい、これぞ単館という作品だと思います。

 

サムライフィクション 

 

f:id:takezoh_1127:20170615083419j:image

 

SF サムライ・フィクション - Wikipedia

 

1998年

布袋が主演ということでトレスポ好きの友人(BOOWY好きでもある)と観に行った作品です。

 

洗濯機は俺にまかせろ

 

f:id:takezoh_1127:20170615083533j:image

 

洗濯機は俺にまかせろ | 映画-Movie Walker

 

1999年

中野のどこかの映画館に会社の同期で観に行った作品です。

 

 

ラン・ローラ・ラン

 

f:id:takezoh_1127:20170615083624j:image

 

ラン・ローラ・ラン - Wikipedia

 

1999年

これは一人で観に行ったんだっけ?

「ifもしも」の様にもう一度やり直せたらを何度も繰り返していく内容です。

DVDも買ったような気がしますが、どこに行ったんだろうか...

 

TUBE TALES

 

f:id:takezoh_1127:20170615083740j:image

 

チューブ・テイルズ - Wikipedia

 

1999年

9本の短編によるオムニバスで9人の監督がそれぞれ撮った作品です。

ユアン・マクレガーやジュウド・ロウが監督をしていたので観に行ったのかも...

 

ざわざわ下北沢

 

f:id:takezoh_1127:20170615083825j:image

 

ざわざわ下北沢 - Wikipedia

 

2000年

ひとりで観に行ったのか、妻と観に行ったのか記憶が定かでない...

ひとりで下北に行った記憶は劇団「サモ・アリナンズ」の舞台を観に行った時の記憶しかないし、妻と下北に行った記憶は1度しかないのでその時観たのかもしれないです。 

その時、オフの吹越満を見かけた記憶もあります。

 

風花

 

f:id:takezoh_1127:20170615083910j:image

 

風花 (2001年の映画) - Wikipedia

 

2000年

小泉今日子浅野忠信の舞台あいさつを見るべく、付き合い始めた頃の今の妻と雪降る渋谷の早朝に並びに行きました。

が、すでにものすごい行列。

結局舞台挨拶は見れず...

2回目の回で眠い目をこすりながら見た記憶しかないです。 

 

PARTY7

 

f:id:takezoh_1127:20170615083954j:image

 

PARTY7 - Wikipedia

 

2000年

ひとりで行ったのかな?

なんかスタイリッシュな映像を見せいたいだけだったのか、ノリだけで内容が無い感じだった記憶しかありません。

 

メメント

 

f:id:takezoh_1127:20170615084045j:image

 

メメント (映画) - Wikipedia

 

2000年

ひとりで観に行ったのかな... 

事件により妻失い記憶障害になった主人公。

短時間しか持たない記憶をメモやタトゥに残しながら復讐のために犯人を捜すという内容。

時間を遡っていくという手法が斬新だった記憶があります。

 

 

ブエナ・ビスタ・ソシアル・クラブ

 

f:id:takezoh_1127:20170615084148j:image

 

ブエナ・ビスタ・ソシアル・クラブ (映画) - Wikipedia

 

 

2000年

結構ロングランで上映されていたように記憶しているが、公開終了間際で近くで一番近くでも自由が丘の映画館でしか上映されていなかったので、自由が丘まで行って観ました。

 

 

es

 

f:id:takezoh_1127:20170615084244j:image

 

es (映画) - Wikipedia

 

 

2001年

ひとりで観に行ったのかな?

高額の報酬が得られる実験として集められた男女20人が看守役と主人役に分かれて疑似刑務所で演じるという実際にあった話をもとに作成された作品。

映画自体の評価は低くないと思いますが、なんかとても後味が悪かった記憶しかありません。

 

 

Jam Films

 

f:id:takezoh_1127:20170615084333j:image

 

Jam Films - Wikipedia

 

2002年

色々な監督のショートフィルムのオムニバス。

今にしてみたら監督もキャストもかなり豪華だと思います。

岩井俊二監督と飯田譲治監督の作品を目当てに観に行った記憶がありますが、どれも楽しかった印象があります。

 

COMPANY MAN

 

f:id:takezoh_1127:20170615084419j:image

 

カンパニー・マン - Wikipedia

 

2002年

『CUBE』の監督が手掛けた作品という事で観に行きました。

 内容は...あまり記憶に残っていないです。

 

 

おばあちゃんの家

 

f:id:takezoh_1127:20170615084505j:image

 

おばあちゃんの家 - 作品 - Yahoo!映画

 

2002年

この頃は韓国一人旅に行ったりしていて、イ・ヨンエの『ラスト・プレゼント』 を一人で観に行って号泣してしまい、そんな流れで観に行った映画です。

とにかくわがままな子供に対して無償の愛を与え続けるおばあちゃんの姿がなんとも言えないです。

確かこのおばあさんは素人をキャスティングしたんだったような…

 

 

 

KILL BILL

 

f:id:takezoh_1127:20170615084718j:image

 

2003年

会社の連中で観に行った作品です。 

映画オタクのタランティーノ監督が日本映画にかなりの影響を受けたオマージュとして受け止めて、「くだらねー(良い意味で)」とか言いながらみんなで鑑賞しましました。

 

そういえばこのころは水野晴郎の「シベリア超特急」の2か3あたりを同じメンバーで観に行った記憶があります。

そのときも映画館の中で爆笑しながら鑑賞した記憶があります。

 

バンドワゴン

 

f:id:takezoh_1127:20170615084831j:image

 

バンドワゴン - 作品 - Yahoo!映画

 

1996年?

名作のミュージカル映画は沢山出てきますがこっちの情報はあまり無いようです…

一癖も二癖もある愛すべきキャラクターが繰り広げるロードムービーで結構楽しかった記憶があります。

今ネットで見てみるとそれなりに評価が高いようです。

サントラを買った記憶もありますがどこへいったのやら... 

 

 

 

 

これ以外にもハリウッド系やジブリなどのパンフが大量にありましたが写真すらとらずにごめんなさいしてしまいました。

 

かなり記憶も曖昧なので機会があったら観直してみたいと思います。

 

というか20年経ってるんだという作品もあります。

今観ても新鮮な作品もあると思います。

気になる作品がありましたら是非観てみてください。

 

 

【おでかけ】今日はおゆみ野のフリマの日

今日はおゆみ野のフリマに行ってきました。

 

f:id:takezoh_1127:20170612205808j:image

 

おゆみ野ミスターマックスの敷地内で開催しているフリマです。

 

このフリマは妻が好きな雑貨の作家さんと花屋さんと出会ったフリマで、出店する日はなるべく顔を出すようにしています。

 

普段は手作り系や雑貨系の出店は少なく、それ以外のお店は古着や生活雑貨、どこぞで仕入れてきたキャラクターグッズやおもちゃ、トレーディングカードなどいわゆるフリマのお店が大半を占めています。

今回のフリマでは古道具系や手作り系などいくつか出店があり、いつもより賑わっていました。

 

f:id:takezoh_1127:20170612205833j:image

 

妻はいつものお店で早速物色を始めています。

雑貨のお店は今回は女の子クジが無いみたい。ちょっと残念そう。

 

自分も何か掘り出し物はないか一応は一通り見て回ります。

 

すると以前行ったイベント「カフェノタビ」で出店していた「トネリコ舎」という雑貨屋さんが来ていました。

 

f:id:takezoh_1127:20170612205902j:image

 

下の子がフェーブ(フランスでお菓子に入れる陶器のおもちゃ)を熱心に選んで卵のオブジェを買ったお店です。

 

 

www.main-function.com

 

また、下の子がフェーブを熱心に見始めています。

お店の人に声をかけてみましたが向こうは覚えていないようでした。 

ちなみに妻のことは覚えていてくれていたらしく、なんか普通に話していました。

 

今回はあまりお気に召したものが無かったらしく、ちょっと見たらすぐに次に行ってしまいました。

下の子はそうそうに飽きてしまってそのままゲームセンターに直行。

 

メリーゴーランドや電車の乗り物で満足していたようです。

途中から上の子も参戦して二人で遊んでいました。

 

f:id:takezoh_1127:20170612205947j:image

 

妻はしこたま買い物をして(毎回なんでそんなに買うものがあるんだと思いつつ)フリマを後に。

 

上の子の宿泊学習が近いので100円ショップで細かい雑貨を買っていると、下の子が持ってきたおもちゃが「たまご」。

「どうしても買うんだ」と聞かないので購入。

なんか割るとなかにおもちゃが入っているらしく、割ってみると中から出てきたのは...

 

f:id:takezoh_1127:20170612210017j:image

 

ブヨブヨしたヒヨコ?でした。

 

 

おゆみ野のフリマも機会がありましたら是非足を運んでみてください。

 

素敵な雑貨や花に出会えるかもしれません。

 

※今日の収穫

 

f:id:takezoh_1127:20170614002701j:image 

岩井俊二の名作『打ち上げ花火、下から見るか? 横から見るか?』がアニメーション映画で復活!

フジテレビのドラマ「ifもしも」で放映され、テレビドラマにも関わらず日本映画監督協会新人賞を受賞した岩井俊二出世作です。

f:id:takezoh_1127:20170608010119j:plain

その『打ち上げ花火』が23年の時を経てアニメーション映画として復活!

uchiagehanabi.jp

小学生の典道と祐介は仲の良い友達だが、実は二人とも同級生のなずなのことが好きだった。しかしなずなの両親が離婚し、彼女が母親に引き取られて二学期から転校することになっているとは、二人には知るよしもなかった。 親に反発したなずなは、プールで競争する典道と祐介を見て、勝った方と駆け落ちしようと密かに賭けをする。 勝ったのは祐介か? 典道か? 勝負のあとから、異なる二つの物語が展開する。

https://ja.m.wikipedia.org/wiki/打ち上げ花火、下から見るか?_横から見るか?

12歳という年齢設定で妙に大人っぽいなずな(奥菜恵)。
それとは対照的にいかにも子供っぽい典道(山崎裕太)と祐介(反田孝幸)。
昇龍拳波動拳!」とかいいながらじゃれ合っている男の子たち、ちょっと背伸びがしたくて子供っぽい遊びはしないよという主人公。

思春期の入り口が見事に描かれていています。
これを見ると子供の頃の淡い思い出を思い出させてくれて感傷に浸ったりしてしまいます。

妙に大人っぽい女の子っていたよなぁ。
奥菜恵みたいに激烈可愛いかどうかは別として。

本当に好きで20年くらい前にロケ地巡りをして灯台飯岡駅を見て回ったりしてものです。

年に1度は観たくなって夜中にこっそり観てたりします。
妻と結婚した時に一緒に鑑賞したが反応はイマイチでしたが…

細田守監督の「おおかみこどもの雨と雪」で打ち上げ花火のセリフが使われていてビックリ!
パクッじゃなくオマージュですよね。
気になる方はそちらもチェックしてみてはいかがでしょうか。

8/18の映画の公開が楽しみです!

それから2年前に公開された「花とアリス殺人事件」のイベントで生の岩井見ました!

www.main-function.com

映画もオススメですので、ぜひ観てください!

また観たくなる季節がやってきます。

sonyが作った『toio』が気になる!

sonyが作ったおもちゃ『toio』

first-flight.sony.com

まずは紹介動画をご覧ください。


toio 「トイオ・コレクション」紹介動画


toio 「工作生物 ゲズンロイド」紹介動画

これだけでも欲しい!欲しくなります!

これがあればロボコンだって、ピタゴラ装置っぽい遊びだって、なんか色々遊べそうな気がします。

頭固くなってるからなぁ。
うちの子供に与えてみたいものだ。
というのを口実に買ってしまうか。

こういうおもちゃで遊べるんだから今の子供たちは実に羨ましい。

自分が子供の頃のおもちゃといえば、MZ-80だったり、

www.main-function.com

学生の頃はAKI-80でアセンブラで遊んでみたり、

akizukidenshi.com

社会人になってからはLEGOマインドストームを買ってみたり、

ラズベリーパイはまだ買ってないけど…

LEGOマインドストームは買ったものの結局押入れの奥で眠ってるんだけどね。

『CoderDojo 千葉』に参加しました!

 

今日はCoderDojo千葉に参加しました。 

 

f:id:takezoh_1127:20170605194944j:image

 

CoderDojo とはアイルランドから始まったムーブメントです。
ボランティアと小中学生が一緒になり、プログラミングにはげむ「道場」です。

 

coderdojo.jp

 

メンターと呼ばれるボランティアの人がいますが、基本的には手取り足取りは教えません。

自分で課題を見つけて分からないことがあればメンターに聞く、ただしメンターも全ての教えるのではなく、一緒に考えるというポリシーとのころです。 

 

以前、たまたまこのイベントを知って今回初めて参加してみました。

 

千葉での活動は30回を超えていてすでにまる3年は活動しているそうです。

千葉の活動は広がっているらしく、千葉をはじめ、柏、市川、若葉、木更津などで行われているようです。

 

メンター(ボランティア)の方が3名ほどいて、親子での参加が6組ほどいました。

 

はじめての人向けにスクラッチでのプログラムを教えてくれます。

でもさすが子供ですね。

ちょっと教えたら勝手に色々弄り始める子もいました。

 

何回も参加していて、すでに出来る子は隣のテーブルで勝手にプログラミングをしています。

分からなかったら親やメンターさんに聞いて自分で作っていきます。

 

午前は2時間で終わりでしたが、子供たちも楽しんでていたようです。

 

今日は午前の部のみの参加でしたが、

午後はマインクラフトをjavaでmodプログラムのような事もするそうです。

 

f:id:takezoh_1127:20170605005230j:image

 

仕事ではところでプログラムの機会に触れるというのは中々刺激的です。

あと子供が作るものって大人じゃ思いつかないようなこともするのでゲーム作りの刺激にもなります。

 

とりあえず午前の部で作ったゲームを公開しておきます。

 

scratch.mit.edu

 

なんかきっちり作ろうとしてそんなに面白くない感じです。

子供が作ったのを見ると動きがガクガクしていたりしていますが、なんか勢いを感じる作品に仕上がったりしています。

動きがおかしいのは気にしないのです。

自分の場合はなんか動きがおかしいと結局不具合を探してしまいます。

 

次回からは自分もメンターとして参加します。

自分の子供も興味があれば連れて行きたいんだけどなぁ。

 

市原にはまだDojoが無いので、そのうち市原でもやってみようかと思います。