diff --git a/src/rendering/cubismclippingmanager.ts b/src/rendering/cubismclippingmanager.ts index b3f6f7f..8d05a11 100644 --- a/src/rendering/cubismclippingmanager.ts +++ b/src/rendering/cubismclippingmanager.ts @@ -580,8 +580,16 @@ export abstract class CubismClippingManager< partIndex: number, childDrawableIndexList: Array ): void { - const childDrawObjects = - model.getPartsHierarchy()[partIndex].childDrawObjects; + const partsHierarchy = model.getPartsHierarchy(); + // NoParentIndex は -1。非整数や範囲外のインデックスでは階層を参照しない。 + if ( + !Number.isInteger(partIndex) || + partIndex < 0 || + partIndex >= partsHierarchy.length + ) { + return; + } + const childDrawObjects = partsHierarchy[partIndex].childDrawObjects; childDrawableIndexList.push(...childDrawObjects.drawableIndices); for (let i = 0; i < childDrawObjects.offscreenIndices.length; ++i) {