表示テーマ
PrimitiveRenderer Component
Plane、Ring、Sphere、Cylinderなどの形状をモデルAssetなしで描画します。
設定する手順
- 形状を選び、形状パラメータとMaterialを設定します。
- SceneViewまたはGameViewで結果を確認します。
- 編集中のSceneまたはPrefabを保存します。
項目の説明
| 項目 | C#名 | 型 | 操作 | 定義時の初期値 | 意味 |
|---|---|---|---|---|---|
| RenderingLayerMask | RenderingLayerMask | uint | 読取・変更 | 1u | このRendererを表示するCameraのCullingMaskと照合するbit集合です。 |
| マテリアル | Material | Material? | 読取・変更 | {} | 描画に使うMaterial参照です。既定MaterialはEngine側から解決されます。 |
| Layer | Layer | int | 読取・変更 | 0 | 描画するLayer番号です。 |
| Order | Order | int | 読取・変更 | 0 | 同じLayer内の並び順です。 |
| 表示 | Visible | bool | 読取・変更 | true | 通常描画に表示するかを指定します。 |
| BlendMode | BlendMode | BlendMode | 読取・変更 | BlendMode::Normal | 背景への色の混ぜ方です。加算などの方式を選びます。 |
| Queue | Queue | RenderPhase | 読取・変更 | RenderPhase::Opaque | 同じ描画区分内の並び順です。 |
| Type | Type | PrimitiveType | 読取・変更 | PrimitiveType::Plane | 形状または動作の種類です。 |
| RenderSpace | RenderSpace | PrimitiveRenderSpace | 読取・変更 | PrimitiveRenderSpace::World3D | World3DとScreen2Dの描画空間を選びます。 |
| 大きさ | Plane.Size | Vector2 | 読取・変更 | Vector2::AnyInit(1.0f) | 形状の幅・高さ・奥行きです。TransformのScaleも掛かります。 |
| 基準点 | Plane.Pivot | Vector2 | 読取・変更 | Vector2::AnyInit(0.5f) | 形状の原点または投影中心をずらします。 |
| Plane.Axis | Plane.Axis | PrimitivePlaneAxis | 読取・変更 | PrimitivePlaneAxis::XY | 形状・回転・関節などの基準軸です。 |
| 分割X | Plane.DivideX | int | 読取・変更 | 1 | 横方向の分割数です。 |
| 分割Y | Plane.DivideY | int | 読取・変更 | 1 | 縦方向の分割数です。 |
| 大きさ | CrossPlane.Size | Vector2 | 読取・変更 | Vector2::AnyInit(1.0f) | 形状の幅・高さ・奥行きです。TransformのScaleも掛かります。 |
| 基準点 | CrossPlane.Pivot | Vector2 | 読取・変更 | Vector2::AnyInit(0.5f) | 形状の原点または投影中心をずらします。 |
| 枚数 | CrossPlane.Count | int | 読取・変更 | 2 | 交差させるPlaneの枚数です。 |
| 外周半径 | Ring.OuterRadius | float | 読取・変更 | 1.0f | Ringの外半径です。 |
| 内周半径 | Ring.InnerRadius | float | 読取・変更 | 0.5f | Ringの内半径です。外半径以下にします。 |
| 開始角 | Ring.StartAngle | float | 読取・変更 | 0.0f | 円弧などの開始角度です。 |
| 終了角 | Ring.EndAngle | float | 読取・変更 | 360.0f | 円弧などの終了角度です。 |
| 分割数 | Ring.Divide | int | 読取・変更 | 16 | 円周方向の分割数です。 |
| 上面半径 | Cylinder.TopRadius | float | 読取・変更 | 1.0f | Cylinder上端の半径です。 |
| 中心半径 | Cylinder.CenterRadius | float | 読取・変更 | 1.0f | Cylinder中央の半径です。 |
| 下面半径 | Cylinder.BottomRadius | float | 読取・変更 | 1.0f | Cylinder下端の半径です。 |
| 上面Weight | Cylinder.TopRadiusWeight | float | 読取・変更 | 0.0f | 上端から中央への半径の補間形状です。 |
| 下面Weight | Cylinder.BottomRadiusWeight | float | 読取・変更 | 0.0f | 下端から中央への半径の補間形状です。 |
| 上面色 | Cylinder.TopColor | Color4 | 読取・変更 | Color4::White() | Cylinder上側の頂点色です。 |
| 中心色 | Cylinder.CenterColor | Color4 | 読取・変更 | Color4::White() | Cylinder中央の頂点色です。 |
| 底面色 | Cylinder.BottomColor | Color4 | 読取・変更 | Color4::White() | Cylinder下側の頂点色です。 |
| 高さ | Cylinder.Height | float | 読取・変更 | 2.0f | 形状の高さです。 |
| 展開角 | Cylinder.MaxAngle | float | 読取・変更 | 360.0f | 関節の回転角度の上限です。 |
| 円周分割 | Cylinder.RadialDivide | int | 読取・変更 | 16 | 円周方向の分割数です。 |
| 高さ分割 | Cylinder.HeightDivide | int | 読取・変更 | 8 | 高さ方向の分割数です。 |
| Cylinder.Cap | Cylinder.Cap | PrimitiveCylinderCap | 読取・変更 | PrimitiveCylinderCap::Both | Cylinderの上端・下端を閉じるかを選びます。 |
| Cylinder.UVMode | Cylinder.UVMode | PrimitiveCylinderUVMode | 読取・変更 | PrimitiveCylinderUVMode::None | 形状に対するUVの割り当て方式です。 |
| 半径 | Sphere.Radius | float | 読取・変更 | 1.0f | 形状または効果の半径です。 |
| 経度分割 | Sphere.LongitudeDivide | int | 読取・変更 | 24 | Sphereの経度方向の分割数です。 |
| 緯度分割 | Sphere.LatitudeDivide | int | 読取・変更 | 16 | Sphereの緯度方向の分割数です。 |
| 半径 | Hemisphere.Radius | float | 読取・変更 | 1.0f | 形状または効果の半径です。 |
| 経度分割 | Hemisphere.LongitudeDivide | int | 読取・変更 | 24 | Sphereの経度方向の分割数です。 |
| 緯度分割 | Hemisphere.LatitudeDivide | int | 読取・変更 | 8 | Sphereの緯度方向の分割数です。 |
| 底面のフタ | Hemisphere.BottomCap | bool | 読取・変更 | true | 半球の底を面で閉じます。 |
| 大きさ | Cube.Size | Vector3 | 読取・変更 | Vector3::AnyInit(1.0f) | 形状の幅・高さ・奥行きです。TransformのScaleも掛かります。 |
| 基準点 | Cube.Pivot | Vector3 | 読取・変更 | Vector3::AnyInit(0.5f) | 形状の原点または投影中心をずらします。 |
| RenderFlags | RenderFlags | MeshRenderFlags | 読取・変更 | MeshRenderFlags::Default | 照明・影・IBL・反射などを受けるかのbit設定です。 |
| デカールを受ける | receiveDecals | bool | 読取・変更 | true | Decalの投影を受け付けます。 |
Inspectorの設定と使い方
「Editor / C#」は両方から変更できる設定、「Editorのみ」は公開C# APIのない編集操作です。「Editor表示のみ」は計算結果や統計などの確認欄です。「C#のみ」は、このInspectorに編集欄のない操作です。
| 設定・操作 | 編集場所 | C#の入口 | 意味・使い方 |
|---|---|---|---|
| 表示レイヤーと描画順 | Editor / C# | RenderingLayerMask / Layer / Order | RenderingLayerMaskはCameraのCullingMaskと照合する表示先のbitです。LayerとOrderは描画の並び順で、衝突タイプとは別です。 |
| Material・個別パラメータ | Editor / C# | Material / MaterialInstance | Materialは共有Asset、MaterialInstanceはこのRendererの上書きです。色・Texture・発光などの公開Parameterを個別に変え、ほかの物体のMaterial設定を変えずに点滅や色違いを作れます。 |
| ブレンドモード・キュー | Editor / C# | BlendMode / Queue | 透明度をどう合成するかと、どの描画段階へ送るかを指定します。Alphaを下げるだけで透過描画になるとは限らないため、Materialの表面方式と合わせます。 |
| 形状・描画空間 | Editor / C# | Type / RenderSpace / receiveDecals | Plane・CrossPlane・Ring・Cylinder・Sphere・Hemisphere・Cubeから選びます。World3DとScreen2Dで座標の意味が異なります。描画形状を選んでもPhysicsの当たり形状は追加されません。 |
| Plane・CrossPlane | Editor / C# | Plane / CrossPlane | Planeは大きさ・基準点・軸・X/Y分割、CrossPlaneは大きさ・基準点・板の枚数を指定します。板の向きはCameraやLightに対して確認します。 |
| Ring | Editor / C# | Ring | 外周と内周の半径、開始角・終了角、分割数で輪や扇形を作ります。角度は度で指定し、内周を0にすると穴のない形へ近づきます。 |
| Cylinder | Editor / C# | Cylinder | 上面・中心・下面半径とWeight、3つの色、高さ、展開角、円周・高さ分割、フタ、UV方式を指定します。円錐台や部分的な円柱にも使えます。 |
| Sphere・Hemisphere・Cube | Editor / C# | Sphere / Hemisphere / Cube | Sphere系は半径と経度・緯度分割、Hemisphereは底面のフタも指定します。Cubeは大きさと基準点です。分割数を増やすほど形状生成と描画の負荷が増えます。 |
初期値はEngineのComponent定義時の値で、C++表記を含みます。C#へ貼り付ける実行例ではありません。既存Sceneの保存値や既定Assetがある場合はそちらが優先されます。数値の編集範囲はInspectorで制限される場合があります。
C#から使う
操作型はPrimitiveRendererです。 GameObjectから取得する基本操作はGameObjectの操作を参照してください。以下には基本プロパティだけでなく、公開関数・追加の設定API・継承した共通操作も掲載します。
実用例:このRendererだけ色を変える
PrimitiveRendererの個別Material設定へ色を適用します。ほかの物体が使う共有Material Assetの変更ではありません。
cs
using NEMEngine;
public sealed class MaterialTint : MonoBehaviour {
void Start() {
// 色を変えるRendererを取得
var renderer = GetComponent<PrimitiveRenderer>();
if (renderer == null) return;
// 共有Assetを変えず、この物体だけ上書き
bool applied = renderer.MaterialInstance.SetColor(
MaterialParameterNames.BaseColor, new Color4(0.2f, 0.8f, 1.0f, 1.0f));
// Materialが指定Parameterを持つか確認
if (!applied) Debug.LogWarning("ベースカラーの設定を確認してください");
}
}選択値(Enum)
| 型・各値の詳説 | 使える値 |
|---|---|
| BlendMode | Add / Multiply / Normal / Screen / Subtract |
| MeshRenderFlags | CastReflection / CastShadow / Default / Lighting / None / ReceiveIBL / ReceiveReflection / ReceiveShadow |
| PrimitiveCylinderCap | Both / Bottom / None / Top |
| PrimitiveCylinderUVMode | None / Radial |
| PrimitivePlaneAxis | XY / XZ / YZ |
| PrimitiveRenderSpace | Screen2D / World3D |
| PrimitiveType | CrossPlane / Cube / Cylinder / Hemisphere / Plane / Ring / Sphere |
| RenderPhase | EditorOverlay / Opaque / PostProcessUI / ScreenUI / Transparent |
PrimitiveRenderer
| 宣言・詳説 | 種類・操作 | 役割 |
|---|---|---|
public BlendMode BlendMode | プロパティ(読取・変更) | 背景への色の混ぜ方です。加算などの方式を選びます。 |
public PrimitiveRenderer.CrossPlaneAccessor CrossPlane | プロパティ(読取専用) | 交差する板の枚数・寸法などの設定です。 |
public PrimitiveRenderer.CubeAccessor Cube | プロパティ(読取専用) | Cubeの寸法・原点設定です。 |
public PrimitiveRenderer.CylinderAccessor Cylinder | プロパティ(読取専用) | Cylinderの半径・高さ・分割数・頂点色の設定です。 |
public static PrimitiveRenderer FromEntity(GameObject gameObject) | 関数 | 既にComponentを持つGameObjectから操作用の参照を作ります。Componentを追加する操作ではありません。 |
public Color4 GetColor() | 関数 | 現在のマテリアル color を取得する。 |
public PrimitiveRenderer.HemisphereAccessor Hemisphere | プロパティ(読取専用) | 半球の半径・分割数・底面の設定です。 |
public int Layer | プロパティ(読取・変更) | 描画するLayer番号です。 |
public Material? Material | プロパティ(読取・変更) | 描画に使うMaterial参照です。既定MaterialはEngine側から解決されます。 |
public MaterialInstance MaterialInstance | プロパティ(読取専用) | このRendererだけに適用するMaterial Parameterです。共有Materialの変更とは区別します。 |
public int Order | プロパティ(読取・変更) | 同じLayer内の並び順です。 |
public PrimitiveRenderer.PlaneAccessor Plane | プロパティ(読取専用) | 無限平面との衝突を有効にします。 |
public RenderPhase Queue | プロパティ(読取・変更) | 同じ描画区分内の並び順です。 |
public MeshRenderFlags RenderFlags | プロパティ(読取・変更) | 照明・影・IBL・反射などを受けるかのbit設定です。 |
public PrimitiveRenderSpace RenderSpace | プロパティ(読取・変更) | World3DとScreen2Dの描画空間を選びます。 |
public uint RenderingLayerMask | プロパティ(読取・変更) | このRendererを表示するCameraのCullingMaskと照合するbit集合です。 |
public PrimitiveRenderer.RingAccessor Ring | プロパティ(読取専用) | Ringの内外半径・角度・分割数の設定です。 |
public void SetColor(Color3 color) | 関数 | 色Parameterを設定します。 |
public void SetColor(Color4 color) | 関数 | マテリアル color を上書きする。 |
public PrimitiveRenderer.SphereAccessor Sphere | プロパティ(読取専用) | Sphere形状の半径と分割数などの設定です。 |
public PrimitiveType Type | プロパティ(読取・変更) | 形状または動作の種類です。 |
public bool Visible | プロパティ(読取・変更) | 通常描画に表示するかを指定します。 |
public static int componentTypeID | プロパティ(読取専用) | 組み込みComponentの接続識別子です。通常のゲームコードではGetComponentで取得します。 |
public bool receiveDecals | プロパティ(読取・変更) | Decalの投影を受け付けます。 |
PrimitiveRenderer.CrossPlaneAccessor
| 宣言・詳説 | 種類・操作 | 役割 |
|---|---|---|
public int Count | プロパティ(読取・変更) | 交差させるPlaneの枚数です。 |
public Vector2 Pivot | プロパティ(読取・変更) | 形状の原点または投影中心をずらします。 |
public Vector2 Size | プロパティ(読取・変更) | 形状の幅・高さ・奥行きです。TransformのScaleも掛かります。 |
PrimitiveRenderer.CubeAccessor
| 宣言・詳説 | 種類・操作 | 役割 |
|---|---|---|
public Vector3 Pivot | プロパティ(読取・変更) | 形状の原点または投影中心をずらします。 |
public Vector3 Size | プロパティ(読取・変更) | 形状の幅・高さ・奥行きです。TransformのScaleも掛かります。 |
PrimitiveRenderer.CylinderAccessor
| 宣言・詳説 | 種類・操作 | 役割 |
|---|---|---|
public Color4 BottomColor | プロパティ(読取・変更) | Cylinder下側の頂点色です。 |
public float BottomRadius | プロパティ(読取・変更) | Cylinder下端の半径です。 |
public float BottomRadiusWeight | プロパティ(読取・変更) | 下端から中央への半径の補間形状です。 |
public PrimitiveCylinderCap Cap | プロパティ(読取・変更) | Cylinderの上端・下端を閉じるかを選びます。 |
public Color4 CenterColor | プロパティ(読取・変更) | Cylinder中央の頂点色です。 |
public float CenterRadius | プロパティ(読取・変更) | Cylinder中央の半径です。 |
public float Height | プロパティ(読取・変更) | 形状の高さです。 |
public int HeightDivide | プロパティ(読取・変更) | 高さ方向の分割数です。 |
public float MaxAngle | プロパティ(読取・変更) | 関節の回転角度の上限です。 |
public int RadialDivide | プロパティ(読取・変更) | 円周方向の分割数です。 |
public Color4 TopColor | プロパティ(読取・変更) | Cylinder上側の頂点色です。 |
public float TopRadius | プロパティ(読取・変更) | Cylinder上端の半径です。 |
public float TopRadiusWeight | プロパティ(読取・変更) | 上端から中央への半径の補間形状です。 |
public PrimitiveCylinderUVMode UVMode | プロパティ(読取・変更) | 形状に対するUVの割り当て方式です。 |
PrimitiveRenderer.HemisphereAccessor
| 宣言・詳説 | 種類・操作 | 役割 |
|---|---|---|
public bool BottomCap | プロパティ(読取・変更) | 半球の底を面で閉じます。 |
public int LatitudeDivide | プロパティ(読取・変更) | Sphereの緯度方向の分割数です。 |
public int LongitudeDivide | プロパティ(読取・変更) | Sphereの経度方向の分割数です。 |
public float Radius | プロパティ(読取・変更) | 形状または効果の半径です。 |
PrimitiveRenderer.PlaneAccessor
| 宣言・詳説 | 種類・操作 | 役割 |
|---|---|---|
public PrimitivePlaneAxis Axis | プロパティ(読取・変更) | 形状・回転・関節などの基準軸です。 |
public int DivideX | プロパティ(読取・変更) | 横方向の分割数です。 |
public int DivideY | プロパティ(読取・変更) | 縦方向の分割数です。 |
public Vector2 Pivot | プロパティ(読取・変更) | 形状の原点または投影中心をずらします。 |
public Vector2 Size | プロパティ(読取・変更) | 形状の幅・高さ・奥行きです。TransformのScaleも掛かります。 |
PrimitiveRenderer.RingAccessor
| 宣言・詳説 | 種類・操作 | 役割 |
|---|---|---|
public int Divide | プロパティ(読取・変更) | 円周方向の分割数です。 |
public float EndAngle | プロパティ(読取・変更) | 円弧などの終了角度です。 |
public float InnerRadius | プロパティ(読取・変更) | Ringの内半径です。外半径以下にします。 |
public float OuterRadius | プロパティ(読取・変更) | Ringの外半径です。 |
public float StartAngle | プロパティ(読取・変更) | 円弧などの開始角度です。 |
PrimitiveRenderer.SphereAccessor
| 宣言・詳説 | 種類・操作 | 役割 |
|---|---|---|
public int LatitudeDivide | プロパティ(読取・変更) | Sphereの緯度方向の分割数です。 |
public int LongitudeDivide | プロパティ(読取・変更) | Sphereの経度方向の分割数です。 |
public float Radius | プロパティ(読取・変更) | 形状または効果の半径です。 |
継承する共通操作:Component
継承する共通操作:Object
使用時の注意
World3DとScreen2Dを区別します。厚みのない形状は表裏から見えるため、法線の向きは視点にも関係します。
Play中の変更は実行用Worldへ反映します。Scene編集のUndoと実行中の値の変更は別です。保存方法は編集と実行時変更を参照してください。